Implement fix for issue 6183 #13453
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: Platform Pull Requests | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| paths-ignore: | |
| - docs/** | |
| - infrastructure/** | |
| jobs: | |
| permissions-check: | |
| name: Check actor permissions | |
| runs-on: depot-ubuntu-latest | |
| outputs: | |
| can-write: ${{ steps.check.outputs.require-result }} | |
| steps: | |
| - uses: actions-cool/check-user-permission@main | |
| id: check | |
| with: | |
| require: write | |
| conventional-commit-label: | |
| if: needs.permissions-check.outputs.can-write == 'true' | |
| name: Add Conventional Commit labels | |
| needs: permissions-check | |
| runs-on: depot-ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - name: Auto-label PR with Conventional Commit title | |
| uses: kramen22/conventional-release-labels@v1 | |
| with: | |
| type_labels: | | |
| { | |
| "feat": "feature", | |
| "fix": "fix", | |
| "infra": "infrastructure", | |
| "ci": "ci-cd", | |
| "docs": "docs", | |
| "deps": "dependencies", | |
| "perf": "performance", | |
| "refactor": "refactor", | |
| "test": "testing", | |
| "chore": "chore" | |
| } | |
| ignored_types: '[]' | |
| docker-prepare-report-comment: | |
| if: github.event.pull_request.draft == false && needs.permissions-check.outputs.can-write == 'true' | |
| name: Prepare Docker report comment | |
| needs: permissions-check | |
| runs-on: depot-ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| sparse-checkout: .github/ | |
| sparse-checkout-cone-mode: false | |
| - uses: ./.github/actions/docker-build-report-to-pr | |
| docker-build-unified: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build Unified Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: oss-unified | |
| image-name: flagsmith | |
| ephemeral: ${{ needs.permissions-check.outputs.can-write == 'false' }} | |
| comment: ${{ needs.docker-prepare-report-comment.result == 'success' }} | |
| docker-build-api: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build API Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: oss-api | |
| image-name: flagsmith-api | |
| ephemeral: ${{ needs.permissions-check.outputs.can-write == 'false' }} | |
| comment: ${{ needs.docker-prepare-report-comment.result == 'success' }} | |
| docker-build-frontend: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build Frontend Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: oss-frontend | |
| image-name: flagsmith-frontend | |
| ephemeral: ${{ needs.permissions-check.outputs.can-write == 'false' }} | |
| comment: ${{ needs.docker-prepare-report-comment.result == 'success' }} | |
| docker-build-api-test: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build API Test Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: api-test | |
| image-name: flagsmith-api-test | |
| ephemeral: ${{ needs.permissions-check.outputs.can-write == 'false' }} | |
| comment: ${{ needs.docker-prepare-report-comment.result == 'success' }} | |
| scan: false | |
| docker-build-e2e: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build E2E Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| file: frontend/Dockerfile.e2e | |
| image-name: flagsmith-e2e | |
| ephemeral: ${{ needs.permissions-check.outputs.can-write == 'false' }} | |
| comment: ${{ needs.docker-prepare-report-comment.result == 'success' }} | |
| scan: false | |
| docker-build-private-cloud: | |
| if: github.event.pull_request.draft == false && needs.permissions-check.outputs.can-write == 'true' | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build Private Cloud Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: private-cloud-unified | |
| image-name: flagsmith-private-cloud | |
| comment: true | |
| secrets: | |
| secrets: | | |
| github_private_cloud_token=${{ secrets.GH_PRIVATE_ACCESS_TOKEN }} | |
| docker-build-split-testing: | |
| if: github.event.pull_request.draft == false && needs.permissions-check.outputs.can-write == 'true' | |
| needs: [permissions-check, docker-prepare-report-comment] | |
| name: Build Split Testing Image | |
| uses: ./.github/workflows/.reusable-docker-build.yml | |
| with: | |
| target: private-cloud-unified | |
| image-name: flagsmith-private-cloud-split-testing | |
| build-args: | | |
| WITH=saml,auth-controller,ldap,workflows,licensing,split-testing | |
| secrets: | |
| secrets: | | |
| github_private_cloud_token=${{ secrets.GH_PRIVATE_ACCESS_TOKEN }} | |
| run-e2e-tests: | |
| if: github.event.pull_request.draft == false && !cancelled() | |
| needs: [permissions-check, docker-build-api, docker-build-e2e] | |
| uses: ./.github/workflows/.reusable-docker-e2e-tests.yml | |
| with: | |
| runs-on: ${{ matrix.runs-on }} | |
| e2e-image: ${{ needs.docker-build-e2e.outputs.image }} | |
| api-image: ${{ needs.docker-build-api.outputs.image }} | |
| args: --meta-filter category=oss | |
| secrets: | |
| GCR_TOKEN: ${{ needs.permissions-check.outputs.can-write == 'true' && secrets.GITHUB_TOKEN || '' }} | |
| SLACK_TOKEN: ${{ needs.permissions-check.outputs.can-write == 'true' && secrets.SLACK_TOKEN || '' }} | |
| strategy: | |
| matrix: | |
| runs-on: [depot-ubuntu-latest-16, depot-ubuntu-latest-arm-16] | |
| run-e2e-tests-private-cloud: | |
| if: github.event.pull_request.draft == false && !cancelled() && needs.permissions-check.outputs.can-write == 'true' | |
| needs: [permissions-check, docker-build-private-cloud, docker-build-e2e] | |
| uses: ./.github/workflows/.reusable-docker-e2e-tests.yml | |
| with: | |
| runs-on: ${{ matrix.runs-on }} | |
| e2e-image: ${{ needs.docker-build-e2e.outputs.image }} | |
| api-image: ${{ needs.docker-build-private-cloud.outputs.image }} | |
| args: --meta-filter category=enterprise | |
| secrets: | |
| GCR_TOKEN: ${{ needs.permissions-check.outputs.can-write == 'true' && secrets.GITHUB_TOKEN || '' }} | |
| SLACK_TOKEN: ${{ needs.permissions-check.outputs.can-write == 'true' && secrets.SLACK_TOKEN || '' }} | |
| strategy: | |
| matrix: | |
| runs-on: [depot-ubuntu-latest-16, depot-ubuntu-latest-arm-16] |