update(blog)!: Biometrics article #2189
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 🛠️ Build PR Preview | |
| on: | |
| pull_request: | |
| concurrency: | |
| group: ${{github.event.pull_request.head.ref}} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| metadata: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| submodules: ${{ steps.submodules-fork.outputs.submodules || steps.submodules-main.outputs.submodules }} | |
| privileged: ${{ steps.submodules-fork.outputs.privileged || steps.submodules-main.outputs.privileged }} | |
| env: | |
| ACTIONS_SSH_KEY: ${{ secrets.ACTIONS_SSH_KEY }} | |
| steps: | |
| - name: Save PR metadata | |
| run: | | |
| mkdir -p ./metadata | |
| echo ${{ github.event.number }} > ./metadata/NR | |
| echo ${{ github.event.pull_request.head.sha }} > ./metadata/SHA | |
| - name: Set submodules for fork | |
| if: env.ACTIONS_SSH_KEY == '' | |
| id: submodules-fork | |
| run: | | |
| echo 'submodules={"repo":["brand","i18n"]}' >> "$GITHUB_OUTPUT" | |
| echo "privileged=false" >> "$GITHUB_OUTPUT" | |
| echo "false" > ./metadata/PRIVILEGED | |
| - name: Set submodules for main repo | |
| if: env.ACTIONS_SSH_KEY != '' | |
| id: submodules-main | |
| run: | | |
| echo 'submodules={"repo":["brand","i18n","mkdocs-material-insiders"]}' >> "$GITHUB_OUTPUT" | |
| echo "privileged=true" >> "$GITHUB_OUTPUT" | |
| echo "true" > ./metadata/PRIVILEGED | |
| - name: Upload metadata as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: metadata | |
| path: metadata | |
| submodule: | |
| needs: metadata | |
| strategy: | |
| matrix: ${{ fromJson(needs.metadata.outputs.submodules) }} | |
| uses: privacyguides/.github/.github/workflows/download-repo.yml@main | |
| with: | |
| repo: ${{ matrix.repo }} | |
| privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }} | |
| secrets: | |
| ACTIONS_SSH_KEY: ${{ secrets.ACTIONS_SSH_KEY }} | |
| build_english: | |
| needs: [submodule, metadata] | |
| strategy: | |
| matrix: | |
| lang: [en] | |
| fail-fast: true | |
| uses: ./.github/workflows/build.yml | |
| with: | |
| ref: ${{github.event.pull_request.head.ref}} | |
| repo: ${{github.event.pull_request.head.repo.full_name}} | |
| lang: en | |
| continue-on-error: false | |
| privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }} | |
| strict: true | |
| build_i18n: | |
| if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build i18n') }} | |
| needs: [submodule, metadata] | |
| strategy: | |
| matrix: | |
| lang: [es, fr, he, it, nl, ru, zh-Hant] | |
| fail-fast: false | |
| uses: ./.github/workflows/build.yml | |
| with: | |
| ref: ${{github.event.pull_request.head.ref}} | |
| repo: ${{github.event.pull_request.head.repo.full_name}} | |
| lang: ${{ matrix.lang }} | |
| continue-on-error: true | |
| privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }} | |
| strict: true | |
| build_blog: | |
| if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build blog') }} | |
| needs: [submodule, metadata] | |
| uses: ./.github/workflows/build-blog.yml | |
| with: | |
| ref: ${{github.event.pull_request.head.ref}} | |
| repo: ${{github.event.pull_request.head.repo.full_name}} | |
| continue-on-error: true | |
| privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }} | |
| build_videos: | |
| if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build videos') }} | |
| needs: [submodule, metadata] | |
| uses: ./.github/workflows/build-videos.yml | |
| with: | |
| ref: ${{github.event.pull_request.head.ref}} | |
| repo: ${{github.event.pull_request.head.repo.full_name}} | |
| continue-on-error: true | |
| privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }} | |
| combine_build: | |
| needs: [build_english, build_i18n, build_blog, build_videos] | |
| if: | | |
| (always() && !cancelled() && !failure()) && | |
| needs.build_english.result == 'success' && | |
| (needs.build_i18n.result == 'success' || needs.build_i18n.result == 'skipped') && | |
| (needs.build_blog.result == 'success' || needs.build_blog.result == 'skipped') && | |
| (needs.build_videos.result == 'success' || needs.build_videos.result == 'skipped') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| pattern: site-build-* | |
| merge-multiple: true | |
| - run: | | |
| for file in *.tar.gz; do tar -zxf "$file"; done | |
| ls -la site/ | |
| - name: Upload Site | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: site-build-combined | |
| path: site | |
| retention-days: 5 | |
| cleanup: | |
| if: ${{ always() }} | |
| needs: [build_english, build_i18n, build_blog, build_videos] | |
| uses: privacyguides/.github/.github/workflows/cleanup.yml@main |