From 98f80ac5d04dd4da914c4556407d7325c393e289 Mon Sep 17 00:00:00 2001 From: "opensearch-trigger-bot[bot]" <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 15:58:00 -0800 Subject: [PATCH] Add build script to onboard to OpenSearch release (#45) (#49) (cherry picked from commit d1d2a0495872070cadd7ac8dc2a5be138f1e4ad7) Signed-off-by: Daniel Widdis Signed-off-by: github-actions[bot] Co-authored-by: github-actions[bot] Co-authored-by: Dhrubo Saha --- build.gradle | 2 +- formatter/formatting.gradle | 2 +- scripts/build.sh | 72 +++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100755 scripts/build.sh diff --git a/build.gradle b/build.gradle index 9b55b0b..f158f40 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ buildscript { build_version_qualifier = System.getProperty("build.version_qualifier", "") version_tokens = opensearch_version.tokenize('-') - opensearch_build = version_tokens[0] + opensearch_build = version_tokens[0] + '.0' if (build_version_qualifier) { opensearch_build += "-${build_version_qualifier}" } diff --git a/formatter/formatting.gradle b/formatter/formatting.gradle index 805a35a..e2ae9df 100644 --- a/formatter/formatting.gradle +++ b/formatter/formatting.gradle @@ -34,7 +34,7 @@ spotless { trimTrailingWhitespace() endWithNewline() - indentWithSpaces() + leadingTabsToSpaces() } format("license", { licenseHeaderFile("${rootProject.file("formatter/license-header.txt")}", "package "); diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..2720876 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# Copyright OpenSearch Contributors. +# SPDX-License-Identifier: Apache-2.0 + +set -ex + +function usage() { + echo "Usage: $0 [args]" + echo "" + echo "Arguments:" + echo -e "-v VERSION\t[Required] OpenSearch version." + echo -e "-q QUALIFIER\t[Optional] Version qualifier." + echo -e "-s SNAPSHOT\t[Optional] Build a snapshot, default is 'false'." + echo -e "-p PLATFORM\t[Optional] Platform, ignored." + echo -e "-a ARCHITECTURE\t[Optional] Build architecture, ignored." + echo -e "-o OUTPUT\t[Optional] Output path, default is 'artifacts'." + echo -e "-h help" +} + +while getopts ":h:v:q:s:o:p:a:" arg; do + case $arg in + h) + usage + exit 1 + ;; + v) + VERSION=$OPTARG + ;; + q) + QUALIFIER=$OPTARG + ;; + s) + SNAPSHOT=$OPTARG + ;; + o) + OUTPUT=$OPTARG + ;; + p) + PLATFORM=$OPTARG + ;; + a) + ARCHITECTURE=$OPTARG + ;; + :) + echo "Error: -${OPTARG} requires an argument" + usage + exit 1 + ;; + ?) + echo "Invalid option: -${arg}" + exit 1 + ;; + esac +done + +if [ -z "$VERSION" ]; then + echo "Error: You must specify the OpenSearch version" + usage + exit 1 +fi + +[[ ! -z "$QUALIFIER" ]] && VERSION=$VERSION-$QUALIFIER +[[ "$SNAPSHOT" == "true" ]] && VERSION=$VERSION-SNAPSHOT +[ -z "$OUTPUT" ] && OUTPUT=artifacts + +./gradlew build -x test -Dopensearch.version=$VERSION -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +./gradlew publishMavenJavaPublicationToMavenLocal -Dopensearch.version=$VERSION -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +./gradlew publishMavenJavaPublicationToStagingRepository -Dopensearch.version=$VERSION -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +mkdir -p $OUTPUT/maven/org/opensearch +cp -r ./build/local-staging-repo/org/opensearch/. $OUTPUT/maven/org/opensearch +