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 }}