Skip to content

Check and autobump available maven #15

Check and autobump available maven

Check and autobump available maven #15

name: Check and autobump available maven
on:
schedule:
- cron: '0 20 * * 5' # Every Friday at 8 PM UTC - before Build workflow
workflow_dispatch:
env:
mvn_list: ${{ vars.MVN_LIST }}
jobs:
check-autobump-available-maven:
name: Check and autobump Maven versions
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
token: ${{ secrets.SWF_TOKEN }}
- name: Autobump latest maven versions
run: |
git config --global user.email "exo-swf@exoplatform.com"
git config --global user.name "eXo Software Factory"
echo "Fetching latest versions of Maven (${mvn_list}):"
echo "### Maven Versions List:" >> $GITHUB_STEP_SUMMARY
for major_mvn_version in ${mvn_list//,/ }; do
latestversion=$(curl -fsSL -X GET "https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/" | grep -o 'href=".*">' | sed -e "s/href=\"//g" | sed -e 's/">//g' | tail -n +2 | tr -d '/' | grep -P "^${major_mvn_version}" | awk '{print $1}' | tr -d '"' | sort --version-sort | tail -1)
if [ -z "${latestversion}" ]; then
echo "Error: Cannot find latest version for Maven ${major_mvn_version}! Abort!"
exit 1
fi
echo " - Maven ${major_mvn_version}: ${latestversion}"
echo " - Maven ${major_mvn_version}: ${latestversion}" >> $GITHUB_STEP_SUMMARY
grep -irl "ENV MAVEN_VERSION=${major_mvn_version}" --include=Dockerfile | \
xargs -r sed -Ei "s/^ENV MAVEN_VERSION=.*/ENV MAVEN_VERSION=${latestversion}/"
git add -u
git diff-index --quiet HEAD || git commit -m "Autobump maven ${major_mvn_version} to ${latestversion}"
done
echo "Done"
git push origin HEAD