11name : Push
22
33on :
4- push :
4+ pull_request :
5+ types :
6+ - closed
57 branches :
68 - master
7- paths :
8- - ' **'
9- - ' !.markdownlint.yaml'
10- - ' !.vale.ini'
11- - ' !Dockerfile-docs'
12- - ' !docs-nginx.conf'
13- - ' !docs/**'
14- - ' !theme_common'
15- - ' !theme_override'
169
1710env :
1811 DOCKER_FILE_PATH : Dockerfile
2518jobs :
2619 build :
2720 name : Build
28- if : " ! contains(toJSON( github.event.commits.*.message), '[skip-ci]') "
21+ if : github.event.pull_request.merged == true
2922 runs-on : ubuntu-latest
3023
3124 steps :
8174 - name : Test
8275 run : make test
8376
84- - name : Generate Tag
85- id : generate_tag
86- uses :
anothrNick/[email protected] 87- env :
88- GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
89- WITH_V : true
90- DEFAULT_BUMP : patch
91- DRY_RUN : true
92-
9377 - name : Set up QEMU
9478 uses : docker/setup-qemu-action@v3
9579
@@ -117,7 +101,7 @@ jobs:
117101 cache-to : type=inline
118102 platforms : linux/amd64,linux/arm,linux/arm64
119103 tags : |
120- ${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}
104+ ${{ env.DOCKER_IMAGE_REPOSITORY }}:merge- ${{ github.event.number }}
121105 labels : |
122106 org.opencontainers.image.source=${{ github.event.repository.clone_url }}
123107 org.opencontainers.image.created=${{ steps.prep.outputs.created }}
@@ -132,11 +116,11 @@ jobs:
132116 push : true
133117 build-args : |
134118 BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }}
135- BUILDER_IMAGE=${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}
119+ BUILDER_IMAGE=${{ env.DOCKER_IMAGE_REPOSITORY }}:merge- ${{ github.event.number }}
136120 cache-to : type=inline
137121 platforms : linux/amd64,linux/arm64
138122 tags : |
139- ${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}-ubi
123+ ${{ env.DOCKER_IMAGE_REPOSITORY }}:merge- ${{ github.event.number }}-ubi
140124 labels : |
141125 org.opencontainers.image.source=${{ github.event.repository.clone_url }}
142126 org.opencontainers.image.created=${{ steps.prep.outputs.created }}
@@ -164,7 +148,7 @@ jobs:
164148 cache-to : type=inline
165149 platforms : linux/amd64,linux/arm,linux/arm64
166150 tags : |
167- ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}
151+ ${{ env.GHCR_IMAGE_REPOSITORY }}:merge- ${{ github.event.number }}
168152 labels : |
169153 org.opencontainers.image.source=${{ github.event.repository.clone_url }}
170154 org.opencontainers.image.created=${{ steps.prep.outputs.created }}
@@ -179,11 +163,44 @@ jobs:
179163 push : true
180164 build-args : |
181165 BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }}
182- BUILDER_IMAGE=${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}
166+ BUILDER_IMAGE=${{ env.GHCR_IMAGE_REPOSITORY }}:merge- ${{ github.event.number }}
183167 cache-to : type=inline
184168 platforms : linux/amd64,linux/arm64
185169 tags : |
186- ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }}-ubi
170+ ${{ env.GHCR_IMAGE_REPOSITORY }}:merge-${{ github.event.number }}-ubi
171+ labels : |
172+ org.opencontainers.image.source=${{ github.event.repository.clone_url }}
173+ org.opencontainers.image.created=${{ steps.prep.outputs.created }}
174+ org.opencontainers.image.revision=${{ github.sha }}
175+
176+ - uses : dorny/paths-filter@v3
177+ id : filter
178+ with :
179+ filters : |
180+ docs:
181+ - '.markdownlint.yaml'
182+ - '.vale.ini'
183+ - 'Dockerfile-docs'
184+ - 'docs-nginx.conf'
185+ - 'docs/**'
186+ - 'README.md'
187+ - 'theme_common'
188+ - 'theme_override'
189+
190+ # run only if 'docs' files were changed
191+ - name : Build and Push Docker Image for Docs to ghcr registry
192+ if : steps.filter.outputs.docs == 'true'
193+ uses : docker/build-push-action@v5
194+ with :
195+ context : .
196+ file : Dockerfile-docs
197+ pull : true
198+ push : true
199+ build-args : BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }}
200+ cache-to : type=inline
201+ platforms : linux/amd64,linux/arm,linux/arm64
202+ tags : |
203+ ${{ env.GHCR_IMAGE_REPOSITORY }}/docs:merge-${{ github.event.number }}
187204 labels : |
188205 org.opencontainers.image.source=${{ github.event.repository.clone_url }}
189206 org.opencontainers.image.created=${{ steps.prep.outputs.created }}
@@ -193,90 +210,78 @@ jobs:
193210 # # Add steps to generate required artifacts for a release here(helm chart, operator manifest etc.)
194211 # #############################
195212
196- # Generate tag for operator without "v"
197- - name : Generate Operator Tag
198- id : generate_operator_tag
199- uses :
anothrNick/[email protected] 200- env :
201- GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
202- WITH_V : false
203- DEFAULT_BUMP : patch
204- DRY_RUN : true
213+ # Skip pushing plain manifests till we decide what to do with them
205214
206- # Update chart tag to the latest semver tag
207- - name : Update Chart Version
208- env :
209- VERSION : ${{ steps.generate_operator_tag.outputs.new_tag }}
210- run : make bump-chart
211-
212- - name : Helm Template
213- run : |
214- helm template reloader deployments/kubernetes/chart/reloader/ \
215- --set-string reloader.deployment.resources.limits.cpu=1 \
216- --set reloader.deployment.resources.limits.memory=128Mi \
217- --set reloader.deployment.resources.requests.cpu=10m \
218- --set reloader.deployment.resources.requests.memory=128Mi > deployments/kubernetes/reloader.yaml
215+ # - name: Helm Template
216+ # run: |
217+ # helm template reloader deployments/kubernetes/chart/reloader/ \
218+ # --set reloader.deployment.resources.limits.cpu=150m \
219+ # --set reloader.deployment.resources.limits.memory=512Mi \
220+ # --set reloader.deployment.resources.requests.cpu=10m \
221+ # --set reloader.deployment.resources.requests.memory=128Mi > deployments/kubernetes/reloader.yaml
219222
220- helm template reloader deployments/kubernetes/chart/reloader/ --output-dir deployments/kubernetes/manifests && mv deployments/kubernetes/manifests/reloader/templates/* deployments/kubernetes/manifests/ && rm -r deployments/kubernetes/manifests/reloader
221-
222- - name : Remove labels and annotations from manifests
223- run : make remove-labels-annotations
224-
225- # Publish helm chart
226- - name : Login to ghcr via helm
227- run : |
228- echo ${{secrets.GITHUB_TOKEN}} | helm registry login ghcr.io/stakater --username stakater-user --password-stdin
229-
230- - name : Publish Helm chart to ghcr.io
231- run : |
232- helm package ./deployments/kubernetes/chart/reloader --destination ./packaged-chart
233- helm push ./packaged-chart/*.tgz oci://ghcr.io/stakater/charts
234- rm -rf ./packaged-chart
235-
236- - name : Publish Helm chart to gh-pages
237- uses : stefanprodan/helm-gh-pages@master
238- with :
239- branch : master
240- repository : stakater-charts
241- target_dir : docs
242- token : ${{ secrets.STAKATER_GITHUB_TOKEN }}
243- charts_dir : deployments/kubernetes/chart/
244- charts_url : ${{ env.HELM_REGISTRY_URL }}
245- owner : stakater
246- linting : on
247- commit_username : stakater-user
248- 249-
250- # Commit back changes
251- - name : Log info about `.git` directory permissions
252- run : |
253- # Debug logging
254- echo "Disk usage: "
255- df -H
256-
257- echo ".git files not owned by current user or current group:"
258- find .git ! -user $(id -u) -o ! -group $(id -g) | xargs ls -lah
259-
260- - name : Commit files
261- run : |
262- git config --local user.email "[email protected] " 263- git config --local user.name "stakater-user"
264- git status
265- git add .
266- git commit -m "[skip-ci] Update artifacts" -a
267-
268- - name : Push changes
269- uses : ad-m/github-push-action@master
270- with :
271- github_token : ${{ secrets.STAKATER_GITHUB_TOKEN }}
272- branch : ${{ github.ref }}
273-
274- - name : Push Latest Tag
275- uses :
anothrNick/[email protected] 276- env :
277- GITHUB_TOKEN : ${{ secrets.STAKATER_GITHUB_TOKEN }}
278- WITH_V : true
279- DEFAULT_BUMP : patch
223+ # helm template reloader deployments/kubernetes/chart/reloader/ --output-dir deployments/kubernetes/manifests && mv deployments/kubernetes/manifests/reloader/templates/* deployments/kubernetes/manifests/ && rm -r deployments/kubernetes/manifests/reloader
224+
225+ # - name: Remove labels and annotations from manifests
226+ # run: make remove-labels-annotations
227+
228+ # Charts are to be pushed to a separate repo with a separate release cycle
229+
230+ # # Publish helm chart
231+ # - name: Login to ghcr via helm
232+ # run: |
233+ # echo ${{secrets.GITHUB_TOKEN}} | helm registry login ghcr.io/stakater --username stakater-user --password-stdin
234+
235+ # - name: Publish Helm chart to ghcr.io
236+ # run: |
237+ # helm package ./deployments/kubernetes/chart/reloader --destination ./packaged-chart
238+ # helm push ./packaged-chart/*.tgz oci://ghcr.io/stakater/charts
239+ # rm -rf ./packaged-chart
240+
241+ # - name: Publish Helm chart to gh-pages
242+ # uses: stefanprodan/helm-gh-pages@master
243+ # with:
244+ # branch: master
245+ # repository: stakater-charts
246+ # target_dir: docs
247+ # token: ${{ secrets.STAKATER_GITHUB_TOKEN }}
248+ # charts_dir: deployments/kubernetes/chart/
249+ # charts_url: ${{ env.HELM_REGISTRY_URL }}
250+ # owner: stakater
251+ # linting: on
252+ # commit_username: stakater-user
253+ 254+
255+ # # Commit back changes
256+ # - name: Log info about `.git` directory permissions
257+ # run: |
258+ # # Debug logging
259+ # echo "Disk usage: "
260+ # df -H
261+
262+ # echo ".git files not owned by current user or current group:"
263+ # find .git ! -user $(id -u) -o ! -group $(id -g) | xargs ls -lah
264+
265+ # - name: Commit files
266+ # run: |
267+ # git config --local user.email "[email protected] " 268+ # git config --local user.name "stakater-user"
269+ # git status
270+ # git add .
271+ # git commit -m "[skip-ci] Update artifacts" -a
272+
273+ # - name: Push changes
274+ # uses: ad-m/github-push-action@master
275+ # with:
276+ # github_token: ${{ secrets.STAKATER_GITHUB_TOKEN }}
277+ # branch: ${{ github.ref }}
278+
279+ # - name: Push Latest Tag
280+ # uses: anothrNick/[email protected] 281+ # env:
282+ # GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }}
283+ # WITH_V: true
284+ # DEFAULT_BUMP: patch
280285
281286 - name : Notify Slack
282287 uses : 8398a7/action-slack@v3
0 commit comments