You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ts...@apache.org on 2022/08/26 13:33:39 UTC

[camel-k] branch main updated: fix(build): make package-artifacts to be aware of staging repo

This is an automated email from the ASF dual-hosted git repository.

tsato pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/main by this push:
     new 21491d254 fix(build): make package-artifacts to be aware of staging repo
21491d254 is described below

commit 21491d254f0b761d95bcd5d69c9f7ed97763ee9d
Author: Tadayoshi Sato <sa...@gmail.com>
AuthorDate: Fri Aug 26 18:51:06 2022 +0900

    fix(build): make package-artifacts to be aware of staging repo
---
 script/Makefile                   |  4 +-
 script/maven_overlay.sh           | 67 ++++++++++++++++++--------------
 script/package_maven_artifacts.sh | 80 +++++++++++++++++++++++++++++++++------
 3 files changed, 109 insertions(+), 42 deletions(-)

diff --git a/script/Makefile b/script/Makefile
index 66c2c46e0..26351673b 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -379,7 +379,7 @@ check-platform:
 maven-overlay:
 	@echo "####### Preparing maven dependencies bundle..."
 	mkdir -p build/_maven_overlay
-	./script/maven_overlay.sh $(RUNTIME_VERSION) build/_maven_overlay $(STAGING_RUNTIME_REPO) $(CAMEL_K_RUNTIME_DIR)
+	./script/maven_overlay.sh -s "$(STAGING_RUNTIME_REPO)" -d "$(CAMEL_K_RUNTIME_DIR)" $(RUNTIME_VERSION) build/_maven_overlay
 
 kamel-overlay:
 	@echo "####### Copying kamel CLI to output build directory..."
@@ -469,7 +469,7 @@ package-examples:
 
 package-artifacts:
 	# useful for development purpose only in order to include any local development runtime dependency
-	./script/package_maven_artifacts.sh $(RUNTIME_VERSION) $(CAMEL_K_RUNTIME_DIR)
+	./script/package_maven_artifacts.sh -s "$(STAGING_RUNTIME_REPO)" -d "$(CAMEL_K_RUNTIME_DIR)" $(RUNTIME_VERSION)
 
 release: clean codegen set-module-version set-version build-resources check-licenses build images images-push cross-compile package-examples git-tag
 
diff --git a/script/maven_overlay.sh b/script/maven_overlay.sh
index e02786fa8..c8b25f571 100755
--- a/script/maven_overlay.sh
+++ b/script/maven_overlay.sh
@@ -18,8 +18,22 @@
 location=$(dirname $0)
 rootdir=$(realpath ${location}/../)
 
+while getopts "d:s:" opt; do
+  case "${opt}" in
+    d)
+      local_runtime_dir="${OPTARG}"
+      ;;
+    s)
+      staging_repo="${OPTARG}"
+      ;;
+    *)
+      ;;
+  esac
+done
+shift $((OPTIND-1))
+
 if [ "$#" -lt 2 ]; then
-  echo "usage: $0 <Camel K runtime version> <output directory> [<staging repository>] [<local Camel K runtime project directory>]"
+  echo "usage: $0 [-s <staging repository>] [-d <local Camel K runtime project directory>] <Camel K runtime version> <output directory>"
   exit 1
 fi
 
@@ -30,42 +44,37 @@ fi
 
 runtime_version=$1
 output_dir=$2
-staging_repo=${3:-}
-local_runtime_dir=${4:-}
 
 if [ -n "$staging_repo" ]; then
     if  [[ $staging_repo == http:* ]] || [[ $staging_repo == https:* ]]; then
         options="${options} -s ${rootdir}/settings.xml"
         cat << EOF > ${rootdir}/settings.xml
 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
-   <profiles>
-     <profile>
-       <id>camel-k-staging</id>
-       <repositories>
-         <repository>
-           <id>camel-k-staging-releases</id>
-           <name>Camel K Staging</name>
-           <url>${staging_repo}</url>
-           <releases>
-             <enabled>true</enabled>
-             <updatePolicy>never</updatePolicy>
-           </releases>
-           <snapshots>
-             <enabled>false</enabled>
-           </snapshots>
-         </repository>
-       </repositories>
-     </profile>
-   </profiles>
-   <activeProfiles>
-     <activeProfile>camel-k-staging</activeProfile>
-   </activeProfiles>
+  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
+  <profiles>
+    <profile>
+      <id>camel-k-staging</id>
+      <repositories>
+        <repository>
+          <id>camel-k-staging-releases</id>
+          <name>Camel K Staging</name>
+          <url>${staging_repo}</url>
+          <releases>
+            <enabled>true</enabled>
+            <updatePolicy>never</updatePolicy>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+    </profile>
+  </profiles>
+  <activeProfiles>
+    <activeProfile>camel-k-staging</activeProfile>
+  </activeProfiles>
 </settings>
 EOF
-    else
-        local_runtime_dir="${staging_repo}"
-        staging_repo=""
     fi
 fi
 
diff --git a/script/package_maven_artifacts.sh b/script/package_maven_artifacts.sh
index 43ba65e73..3b170bc8c 100755
--- a/script/package_maven_artifacts.sh
+++ b/script/package_maven_artifacts.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -16,27 +16,83 @@
 # limitations under the License.
 
 location=$(dirname $0)
+rootdir=$(realpath ${location}/../)
+
+while getopts "d:s:" opt; do
+  case "${opt}" in
+    d)
+      local_runtime_dir="${OPTARG}"
+      ;;
+    s)
+      staging_repo="${OPTARG}"
+      ;;
+    *)
+      ;;
+  esac
+done
+shift $((OPTIND-1))
 
 if [ "$#" -lt 1 ]; then
-    echo "usage: $0 <Camel K runtime version> [<local Camel K runtime project directory>]"
+    echo "usage: $0 [-s <staging repository>] [-d <local Camel K runtime project directory>] <Camel K runtime version>"
     exit 1
 fi
 
+options=""
+if [ "$CI" = "true" ]; then
+  options="--batch-mode"
+fi
+
 camel_k_destination="$PWD/build/_maven_output"
 camel_k_runtime_version=$1
+maven_repo=${staging_repo:-https://repo1.maven.org/maven2}
+
+if [ -n "$staging_repo" ]; then
+    if  [[ $staging_repo == http:* ]] || [[ $staging_repo == https:* ]]; then
+        options="${options} -s ${rootdir}/settings.xml"
+        cat << EOF > ${rootdir}/settings.xml
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
+  <profiles>
+    <profile>
+      <id>camel-k-staging</id>
+      <repositories>
+        <repository>
+          <id>camel-k-staging-releases</id>
+          <name>Camel K Staging</name>
+          <url>${staging_repo}</url>
+          <releases>
+            <enabled>true</enabled>
+            <updatePolicy>never</updatePolicy>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+    </profile>
+  </profiles>
+  <activeProfiles>
+    <activeProfile>camel-k-staging</activeProfile>
+  </activeProfiles>
+</settings>
+EOF
+    fi
+fi
 
-if [ -z "$2" ]; then
-    is_snapshot=$(echo "$1" | grep "SNAPSHOT")
-    if [ "$is_snapshot" = "$1" ]; then
+if [ -z "${local_runtime_dir}" ]; then
+    is_snapshot=$(echo "${camel_k_runtime_version}" | grep "SNAPSHOT")
+    if [ "$is_snapshot" = "${camel_k_runtime_version}" ]; then
         echo "You're trying to package SNAPSHOT artifacts. You probably wants them from your local environment, try calling:"
         echo "$0 <Camel K runtime version> <local Camel K runtime project directory>"
         exit 3
     fi
 
     # Take the dependencies officially released
-    wget https://repo1.maven.org/maven2/org/apache/camel/k/apache-camel-k-runtime/$1/apache-camel-k-runtime-$1-source-release.zip -O $PWD/build/apache-camel-k-runtime-$1-source-release.zip
-    unzip -q -o $PWD/build/apache-camel-k-runtime-$1-source-release.zip -d $PWD/build
-    mvn -q -f $PWD/build/apache-camel-k-runtime-$1/pom.xml \
+    wget ${maven_repo}/org/apache/camel/k/apache-camel-k-runtime/${camel_k_runtime_version}/apache-camel-k-runtime-${camel_k_runtime_version}-source-release.zip -O $PWD/build/apache-camel-k-runtime-${camel_k_runtime_version}-source-release.zip
+    unzip -q -o $PWD/build/apache-camel-k-runtime-${camel_k_runtime_version}-source-release.zip -d $PWD/build
+    mvn -q \
+        $options \
+        -f $PWD/build/apache-camel-k-runtime-${camel_k_runtime_version}/pom.xml \
         dependency:copy-dependencies \
         -DincludeScope=runtime \
         -Dmdep.copyPom=true \
@@ -45,15 +101,17 @@ if [ -z "$2" ]; then
     rm -rf $PWD/build/apache-camel-k-runtime*
 else
     # Take the dependencies from a local development environment
-    camel_k_runtime_source=$2
-    camel_k_runtime_source_version=$(mvn -f $camel_k_runtime_source/pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)
+    camel_k_runtime_source=${local_runtime_dir}
+    camel_k_runtime_source_version=$(mvn $options -f $camel_k_runtime_source/pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)
 
     if [ "$camel_k_runtime_version" != "$camel_k_runtime_source_version" ]; then
         echo "Misaligned version. You're building Camel K project using $camel_k_runtime_version but trying to bundle dependencies from local Camel K runtime $camel_k_runtime_source_version"
         exit 2
     fi
 
-    mvn -q -f $camel_k_runtime_source/pom.xml \
+    mvn -q \
+        $options \
+        -f $camel_k_runtime_source/pom.xml \
     dependency:copy-dependencies \
         -DincludeScope=runtime \
         -Dmdep.copyPom=true \