Skip to content

Commit 87b3625

Browse files
author
Mohamed Chiheb Ben Jemaa
authored
Add Github action to generate release (#90)
This PR Adds: * make targets to generate release artifacts. * release action.
1 parent 11a0d08 commit 87b3625

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

.github/workflows/release.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: release
2+
3+
on:
4+
push:
5+
# Sequence of patterns matched against refs/tags
6+
tags:
7+
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
8+
9+
permissions:
10+
contents: write # Allow to create a release.
11+
12+
jobs:
13+
build:
14+
name: create draft release
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Set env
18+
run: echo "RELEASE_TAG=${GITHUB_REF##refs/tags/}" >> "$GITHUB_ENV"
19+
- name: checkout code
20+
uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 1
23+
- name: Set up Go
24+
uses: actions/setup-go@v5
25+
with:
26+
go-version-file: go.mod
27+
- name: generate release artifacts
28+
run: |
29+
make release-manifests RELEASE_VERSION=${{ env.RELEASE_TAG }}
30+
- name: generate release templates
31+
run: |
32+
make release-templates
33+
- name: Release
34+
uses: softprops/action-gh-release@v2
35+
with:
36+
draft: true
37+
files: out/*
38+
generate_release_notes: true

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,7 @@ envfile
3737

3838
# test path for local test programs
3939
/cmd/test/**
40+
cluster.yaml
41+
42+
# release
43+
out/

Makefile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,28 @@ verify-gen: manifests generate ## Verify that the generated files are up to date
222222

223223
.PHONY: verify
224224
verify: verify-gen verify-tidy ## Run all verifications.
225+
226+
227+
##@ Release
228+
## --------------------------------------
229+
## Release
230+
## --------------------------------------
231+
232+
REPOSITORY ?= ghcr.io/ionos-cloud/cluster-api-provider-ionoscloud
233+
RELEASE_DIR ?= out
234+
RELEASE_VERSION ?= v0.0.1
235+
236+
.PHONY: release-manifests
237+
RELEASE_MANIFEST_SOURCE_BASE ?= config/default
238+
release-manifests: $(KUSTOMIZE) ## Create kustomized release manifest in $RELEASE_DIR (defaults to out).
239+
@mkdir -p $(RELEASE_DIR)
240+
cp metadata.yaml $(RELEASE_DIR)/metadata.yaml
241+
## change the image tag to the release version
242+
cd $(RELEASE_MANIFEST_SOURCE_BASE) && $(KUSTOMIZE) edit set image $(REPOSITORY):$(RELEASE_VERSION)
243+
## generate the release manifest
244+
$(KUSTOMIZE) build $(RELEASE_MANIFEST_SOURCE_BASE) > $(RELEASE_DIR)/infrastructure-components.yaml
245+
246+
.PHONY: release-templates
247+
release-templates: ## Generate release templates
248+
@mkdir -p $(RELEASE_DIR)
249+
cp templates/cluster-template*.yaml $(RELEASE_DIR)/

0 commit comments

Comments
 (0)