blob: 5953c8512f654038b699969a5ea2875982e4d24d [file] [log] [blame]
#!/bin/bash
set -e
SEMVER="^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)(-SNAPSHOT)$"
DRY_RUN="false"
display_usage() {
cat <<EOF
Synch with the latest released version of Camel Quarkus
Usage: ./script/sync_cq.sh
--dry-run Show the changes without applying them to the project
--help This help message
Example: ./script/sync_cq.sh --dry-run
EOF
}
main() {
parse_args $@
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
if ! [[ $VERSION =~ $SEMVER ]]; then
echo "❗ Version must match major.minor.patch(-SNAPSHOT) semantic version: $1"
exit 1
fi
VERSION_FULL="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}"
VERSION_MM="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
pushd /tmp
rm -rf camel-quarkus
git clone https://github.com/apache/camel-quarkus.git
pushd camel-quarkus
CQ_VERSION=$(git tag | grep $VERSION_MM | sort -n | tail -n 1)
if [ "$CQ_VERSION" == "$VERSION_FULL" ]; then
echo "INFO: there is no new version released, bye!"
exit 0
fi
git checkout $CQ_VERSION
# Get all variables in the new Camel Quarkus release
CAMEL_MM=$(grep -oPm1 "(?<=<camel.major.minor>)[^<]+" pom.xml)
CAMEL_P=$(grep -oPm1 "(?<=<camel.version>)[^<]+" pom.xml)
CAMEL_VERSION="$CAMEL_MM${CAMEL_P#"\${camel.major.minor}"}"
QUARKUS_VERSION=$(grep -oPm1 "(?<=<quarkus.version>)[^<]+" pom.xml)
echo "Next Camel Quarkus version is $CQ_VERSION"
echo "Next Camel version is $CAMEL_VERSION"
echo "Next Quarkus version is $QUARKUS_VERSION"
popd
popd
if [ "$DRY_RUN" == "true" ]; then
exit 0
fi
mvn versions:set -DnewVersion="$CQ_VERSION-SNAPSHOT" -DgenerateBackupPoms=false
mvn versions:set -DnewVersion="$CQ_VERSION-SNAPSHOT" -f support/camel-k-runtime-bom/pom.xml -DgenerateBackupPoms=false
# We also need to align the following properties
# camel-version
mvn versions:update-parent "-DparentVersion=[$CAMEL_VERSION]" -DgenerateBackupPoms=false
# camel-quarkus-version
mvn versions:set-property -Dproperty="camel-quarkus-version" -DnewVersion="$CQ_VERSION" -DgenerateBackupPoms=false
# quarkus-version
mvn versions:set-property -Dproperty="quarkus-version" -DnewVersion="$QUARKUS_VERSION" -DgenerateBackupPoms=false
# quarkus-platform-version
mvn versions:set-property -Dproperty="quarkus-platform-version" -DnewVersion="$QUARKUS_VERSION" -DgenerateBackupPoms=false
}
parse_args(){
while [ $# -gt 0 ]
do
arg="$1"
case $arg in
-h|--help)
display_usage
exit 0
;;
--dry-run)
DRY_RUN="true"
;;
*)
echo "❗ unknown argument: $1"
display_usage
exit 1
;;
esac
shift
done
}
main $*