diff --git a/.github/workflows/build_and_docs_to_dev.yml b/.github/workflows/build_and_docs_to_dev.yml new file mode 100644 index 0000000..db90870 --- /dev/null +++ b/.github/workflows/build_and_docs_to_dev.yml @@ -0,0 +1,62 @@ +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 }} \ No newline at end of file