Skip to content

Check for Updates

Check for Updates #5

name: Check for Updates
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
jobs:
verify_commit:
runs-on: ubuntu-latest
outputs:
RUN_BUILD: ${{ steps.verify_commit.outputs.RUN_BUILD }}
steps:
- uses: actions/checkout@v3
- id: verify_commit
run: |
if git log --since='24 hours ago' --oneline | grep '.'; then
echo "RUN_BUILD=true" >> $GITHUB_OUTPUT
else
echo "RUN_BUILD=false" >> $GITHUB_OUTPUT
fi
trigger_build:
runs-on: ubuntu-latest
needs: verify_commit
if: ${{ needs.verify_commit.outputs.RUN_BUILD == 'true' }}
steps:
- name: Trigger Nightly Build Workflow
run: |
curl -X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
https://api.github.com/repos/${{ github.repository }}/actions/workflows/nightly-build.yml/dispatches \
-d '{"ref":"main"}'
check_status:
runs-on: ubuntu-latest
needs: [ verify_commit, trigger_build ]
if: ${{ needs.verify_commit.outputs.RUN_BUILD == 'false' }}
steps:
- name: Check last workflow status
id: check_status
run: |
workflow_filename="nightly-build.yml"
last_workflow=$(curl -L -H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/$workflow_filename/runs?per_page=1" | jq -r '.workflow_runs[0]')
conclusion=$(echo $last_workflow | jq -r '.conclusion')
echo "conclusion=$conclusion" >> $GITHUB_ENV
- name: Print and handle the status
run: |
echo "The status of the last workflow run is: ${{ env.conclusion }}"
if [ "${{ env.conclusion }}" != "success" ]; then
echo "The last workflow did not succeed. Failing this workflow."
exit 1
else
echo "The last workflow succeeded. This workflow will succeed."
fi