Skip to content

Commit 7d50d13

Browse files
authored
Merge pull request #722 from stakater/manual-release
Manual release workflows
2 parents 70ab566 + 86f33de commit 7d50d13

File tree

12 files changed

+526
-208
lines changed

12 files changed

+526
-208
lines changed

.github/workflows/pull_request.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
uses: actions/checkout@v4
3838
with:
3939
ref: ${{github.event.pull_request.head.sha}}
40+
fetch-depth: 0
4041

4142
# Setting up helm binary
4243
- name: Set up Helm
@@ -54,6 +55,13 @@ jobs:
5455
check-latest: true
5556
cache: true
5657

58+
# Get highest tag and remove any suffixes with '-'
59+
- name: Get Highest tag
60+
id: highest_tag
61+
run: |
62+
highest=$(git tag -l --sort -version:refname | head -n 1)
63+
echo "tag=${highest%%-*}" >> $GITHUB_OUTPUT
64+
5765
- name: Install Dependencies
5866
run: |
5967
make install
@@ -139,7 +147,7 @@ jobs:
139147
push: false
140148
build-args: |
141149
BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }}
142-
BUILDER_IMAGE=${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }}
150+
BUILDER_IMAGE=${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.highest_tag.outputs.tag }}
143151
cache-to: type=inline
144152
platforms: linux/amd64,linux/arm64
145153
tags: |

.github/workflows/pull_request_docs.yaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Pull Request for Documentation Changes
22

33
on:
4-
pull_request_target:
4+
pull_request:
55
branches:
66
- master
77
paths:
@@ -20,12 +20,3 @@ jobs:
2020
MD_CONFIG: .github/md_config.json
2121
DOC_SRC: docs
2222
MD_LINT_CONFIG: .markdownlint.yaml
23-
build:
24-
uses: stakater/.github/.github/workflows/[email protected]
25-
with:
26-
DOCKER_FILE_PATH: Dockerfile-docs
27-
secrets:
28-
CONTAINER_REGISTRY_URL: ghcr.io/stakater/docs
29-
CONTAINER_REGISTRY_USERNAME: stakater-user
30-
CONTAINER_REGISTRY_PASSWORD: ${{ secrets.STAKATER_GITHUB_TOKEN }}
31-
SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }}

.github/workflows/push.yaml

Lines changed: 113 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
11
name: Push
22

33
on:
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

1710
env:
1811
DOCKER_FILE_PATH: Dockerfile
@@ -25,7 +18,7 @@ env:
2518
jobs:
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:
@@ -81,15 +74,6 @@ jobs:
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-
commit_email: [email protected]
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+
# commit_email: [email protected]
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

.github/workflows/push_docs.yaml

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)