Skip to content

Commit a3bae58

Browse files
authored
chore(ci): Permission-based ephemeral Docker build (#4232)
1 parent 51f82df commit a3bae58

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

.github/workflows/platform-pull-request.yml

+21-5
Original file line numberDiff line numberDiff line change
@@ -55,45 +55,61 @@ jobs:
5555
}
5656
ignored_types: '[]'
5757

58+
check-permissions:
59+
name: Check actor permissions
60+
runs-on: ubuntu-latest
61+
outputs:
62+
can-write: ${{ steps.check.outputs.require-result }}
63+
steps:
64+
- uses: actions-cool/check-user-permission@main
65+
id: check
66+
with:
67+
require: write
68+
5869
docker-build-unified:
5970
if: github.event.pull_request.draft == false
71+
needs: check-permissions
6072
name: Build Unified Image
6173
uses: ./.github/workflows/.reusable-docker-build.yml
6274
with:
75+
ephemeral: ${{ !needs.check-permissions.outputs.can-write }}
6376
target: oss-unified
6477
image-name: flagsmith
65-
ephemeral: ${{ github.event.pull_request.author_association != 'MEMBER' }}
6678

6779
docker-build-api:
6880
if: github.event.pull_request.draft == false
81+
needs: check-permissions
6982
name: Build API Image
7083
uses: ./.github/workflows/.reusable-docker-build.yml
7184
with:
85+
ephemeral: ${{ !needs.check-permissions.outputs.can-write }}
7286
target: oss-api
7387
image-name: flagsmith-api
74-
ephemeral: ${{ github.event.pull_request.author_association != 'MEMBER' }}
7588

7689
docker-build-frontend:
7790
if: github.event.pull_request.draft == false
91+
needs: check-permissions
7892
name: Build Frontend Image
7993
uses: ./.github/workflows/.reusable-docker-build.yml
8094
with:
95+
ephemeral: ${{ !needs.check-permissions.outputs.can-write }}
8196
target: oss-frontend
8297
image-name: flagsmith-frontend
83-
ephemeral: ${{ github.event.pull_request.author_association != 'MEMBER' }}
8498

8599
docker-build-e2e:
86100
if: github.event.pull_request.draft == false
101+
needs: check-permissions
87102
name: Build E2E Image
88103
uses: ./.github/workflows/.reusable-docker-build.yml
89104
with:
105+
ephemeral: ${{ !needs.check-permissions.outputs.can-write }}
90106
file: frontend/Dockerfile.e2e
91107
image-name: flagsmith-e2e
92-
ephemeral: ${{ github.event.pull_request.author_association != 'MEMBER' }}
93108
scan: false
94109

95110
docker-build-private-cloud:
96-
if: github.event.pull_request.draft == false && github.event.pull_request.author_association == 'MEMBER'
111+
if: github.event.pull_request.draft == false && needs.check-permissions.outputs.can-write
112+
needs: check-permissions
97113
name: Build Private Cloud Image
98114
uses: ./.github/workflows/.reusable-docker-build.yml
99115
with:

0 commit comments

Comments
 (0)