Skip to content

Daily Maven Verify on All Branches #19

Daily Maven Verify on All Branches

Daily Maven Verify on All Branches #19

name: Daily Maven Verify on All Branches
on:
schedule:
- cron: '0 0 * * *' # Runs daily at midnight UTC
workflow_dispatch: # Allows manual triggering of the workflow
jobs:
# Get the list of branches dynamically
get-branches:
runs-on: ubuntu-latest
outputs:
branches: ${{ steps.get-branches.outputs.branches }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all branches and history
- name: Get list of branches
id: get-branches
run: |
# List all branches except HEAD and remove origin/ prefix
git fetch --all
branches=$(git branch -r | grep -v '\->' | grep -v HEAD | grep 'origin/sample-code' | sed 's/origin\///')
formatted_branches=$(echo $branches | jq -R -s -c 'split("\n") | map(select(. != ""))')
echo "branches=$formatted_branches" >> $GITHUB_ENV
echo "::set-output name=branches::$formatted_branches"
echo "Branches: ${{ needs.get-branches.outputs.branches }}"
# Run Maven verify on each branch in parallel
verify-branches:
needs: get-branches
runs-on: ubuntu-latest
strategy:
matrix:
branch: ${{ fromJson(needs.get-branches.outputs.branches) }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
- name: Run Maven Verify
run: |
echo "Processing branch: ${{ matrix.branch }}"
mvn clean verify
if [ $? -ne 0 ]; then
echo "Maven verify failed on branch: ${{ matrix.branch }}"
else
echo "Maven verify succeeded on branch: ${{ matrix.branch }}"
fi