Skip to content

Commit 63b4084

Browse files
committed
.github/workflows: Add a release workflow for creating draft releases
Add a GHA release workflow that's triggered on tags that's responsible for building and pushing multi-arch (i.e. manifestlist) OLM container images using goreleaser. Goreleaser will also create a draft release, and generate a changelog since the previous tag. Rendering the release quickstart manifests is done after goreleaser has created this draft release as there's no easy way to hook this functionality into goreleaser after the docker images/manifestlists have been pushed but before release artifacts are generated. Use the 'softprops/action-gh-release' to update the newly created draft release with these quickstart manifests as assets. Signed-off-by: timflannagan <[email protected]>
1 parent c7c4977 commit 63b4084

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

Diff for: .github/workflows/goreleaser.yaml

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: release
2+
on:
3+
pull_request:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v2
14+
with:
15+
fetch-depth: 0
16+
- name: Set up Go
17+
uses: actions/setup-go@v2
18+
with:
19+
go-version: 1.16
20+
21+
- name: Get the image tag
22+
run: |
23+
# Source: https://github.community/t/how-to-get-just-the-tag-name/16241/32
24+
if [[ $GITHUB_REF == refs/tags/* ]]; then
25+
echo IMAGE_TAG="${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
26+
fi
27+
28+
- name: Docker Login
29+
uses: docker/login-action@v1
30+
with:
31+
registry: quay.io
32+
username: ${{ secrets.QUAY_USERNAME }}
33+
password: ${{ secrets.QUAY_PASSWORD }}
34+
35+
- name: Run GoReleaser
36+
uses: goreleaser/goreleaser-action@v2
37+
with:
38+
version: latest
39+
args: release --rm-dist
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
42+
IMAGE_REPO: ${{ secrets.QUAY_USERNAME }}/olm
43+
PKG: github.com/operator-framework/operator-lifecycle-manager
44+
45+
- name: Generate quickstart release manifests
46+
run: make release ver=${{ env.IMAGE_TAG }} IMAGE_REPO=quay.io/${{ secrets.QUAY_USERNAME }}/olm
47+
48+
- name: Update release artifacts with rendered Kubernetes manifests
49+
uses: softprops/action-gh-release@v1
50+
with:
51+
name: ${{ env.IMAGE_TAG }}
52+
files: |
53+
deploy/upstream/quickstart/crds.yaml
54+
deploy/upstream/quickstart/olm.yaml
55+
draft: true
56+
token: ${{ secrets.GORELEASER_GITHUB_TOKEN }}

0 commit comments

Comments
 (0)