Check and autobump available maven #13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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@v6 | |
| 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 |