The prepare job now checks for commits in the last 24 hours before proceeding. If there are no changes, the firmware build and docs deploy are skipped, saving CI minutes. Manual triggers always run. Co-authored-by: Florian <1technophile@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
62 lines
2.0 KiB
YAML
62 lines
2.0 KiB
YAML
name: Build binaries, docs and publish to dev folder
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
|
|
jobs:
|
|
prepare:
|
|
runs-on: ubuntu-latest
|
|
if: github.repository_owner == '1technophile'
|
|
outputs:
|
|
short-sha: ${{ steps.short-sha.outputs.sha }}
|
|
has-changes: ${{ steps.check-changes.outputs.has-changes }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Check for recent changes
|
|
id: check-changes
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
echo "has-changes=true" >> $GITHUB_OUTPUT
|
|
echo "Manual trigger, skipping change check"
|
|
elif git log --since='24 hours ago' --oneline | grep -q .; then
|
|
echo "has-changes=true" >> $GITHUB_OUTPUT
|
|
echo "Changes found in the last 24 hours"
|
|
else
|
|
echo "has-changes=false" >> $GITHUB_OUTPUT
|
|
echo "No changes in the last 24 hours, skipping build"
|
|
fi
|
|
- uses: benjlevesque/short-sha@v2.1
|
|
if: steps.check-changes.outputs.has-changes == 'true'
|
|
id: short-sha
|
|
with:
|
|
length: 6
|
|
|
|
handle-firmwares:
|
|
needs: prepare
|
|
if: needs.prepare.outputs.has-changes == 'true'
|
|
name: Build and deploy development firmwares artefacts
|
|
uses: ./.github/workflows/task-build.yml
|
|
with:
|
|
enable-dev-ota: true
|
|
version-tag: ${{ needs.prepare.outputs.short-sha }}
|
|
artifact-retention-days: 1
|
|
|
|
handle-documentation:
|
|
needs: [prepare, handle-firmwares]
|
|
if: needs.prepare.outputs.has-changes == 'true'
|
|
name: Build and deploy development documentation
|
|
uses: ./.github/workflows/task-docs.yml
|
|
with:
|
|
mode: "dev"
|
|
version: ${{ needs.prepare.outputs.short-sha }}
|
|
url-prefix: "/dev/"
|
|
destination-dir: "dev"
|
|
run-pagespeed: true
|
|
pagespeed-url: 'https://docs.openmqttgateway.com/dev/'
|
|
secrets:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
pagespeed-apikey: ${{ secrets.APIKEY }} |