Skip to content

Daily Maven Verify on All Branches #17

Daily Maven Verify on All Branches

Daily Maven Verify on All Branches #17

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 | tr '\n' ',' | sed 's/,$//')
echo "formatted_branches=$formatted_branches" >> $GITHUB_ENV
# 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: 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