Skip to content

Commit de8972b

Browse files
committed
ci: add new CI for binary and image releases
1 parent 37b60c4 commit de8972b

File tree

5 files changed

+166
-0
lines changed

5 files changed

+166
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
test-build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
- name: Set up Go
20+
uses: actions/setup-go@v5
21+
with:
22+
go-version: stable
23+
# More assembly might be required: Docker logins, GPG, etc.
24+
# It all depends on your needs.
25+
- name: Run GoReleaser
26+
uses: goreleaser/goreleaser-action@v6
27+
with:
28+
# either 'goreleaser' (default) or 'goreleaser-pro'
29+
distribution: goreleaser
30+
# 'latest', 'nightly', or a semver
31+
version: "~> v2"
32+
args: release --clean
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
release-please:
14+
runs-on: ubuntu-latest
15+
outputs:
16+
release_created: ${{ steps.release.outputs.release_created }}
17+
tag_name: ${{ steps.release.outputs.tag_name }}
18+
steps:
19+
- uses: googleapis/release-please-action@v4.4.0
20+
id: release
21+
with:
22+
token: ${{ secrets.GITHUB_TOKEN }}
23+
release-type: go
24+
config-file: release-please-config.json
25+
manifest-file: .release-please-manifest.json
26+
27+
release:
28+
runs-on: ubuntu-latest
29+
needs: [release-please]
30+
if: needs.release-please.outputs.release_created
31+
permissions:
32+
contents: write
33+
packages: write
34+
steps:
35+
- uses: actions/checkout@v4
36+
with:
37+
fetch-depth: 0
38+
- run: git fetch --force --tags
39+
- name: Docker Login
40+
uses: docker/login-action@v2
41+
with:
42+
registry: ghcr.io
43+
username: ${{ github.actor }}
44+
password: ${{ secrets.GITHUB_TOKEN }}
45+
- uses: actions/setup-go@v5
46+
with:
47+
go-version-file: "go.mod"
48+
- name: Run GoReleaser
49+
uses: goreleaser/goreleaser-action@v6
50+
with:
51+
version: "~> v2"
52+
args: release --clean
53+
env:
54+
REGISTRY: ghcr.io
55+
IMAGE_NAME: ${{ github.repository }}
56+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.goreleaser.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
version: 2
2+
3+
builds:
4+
- binary: imds-credential-server
5+
goos:
6+
- darwin
7+
- linux
8+
goarch:
9+
- amd64
10+
- arm64
11+
12+
kos:
13+
- repositories: [ghcr.io/blairdrummond/imds-credential-server]
14+
tags:
15+
- "{{.Version}}"
16+
- latest
17+
bare: true
18+
preserve_import_paths: false
19+
platforms:
20+
- linux/amd64
21+
- linux/arm64

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "1.5.0"
3+
}

release-please-config.json

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"release-type": "go",
3+
"packages": {
4+
".": {
5+
"changelog-path": "CHANGELOG.md",
6+
"release-type": "go",
7+
"bump-minor-pre-major": false,
8+
"bump-patch-for-minor-pre-major": false,
9+
"draft": false,
10+
"prerelease": false,
11+
"extra-files": [
12+
{
13+
"type": "go",
14+
"path": "main.go",
15+
"glob": "main.go"
16+
}
17+
]
18+
}
19+
},
20+
"changelog-sections": [
21+
{ "type": "feat", "section": "Features", "hidden": false },
22+
{ "type": "fix", "section": "Bug Fixes", "hidden": false },
23+
{ "type": "perf", "section": "Performance Improvements", "hidden": false },
24+
{ "type": "revert", "section": "Reverts", "hidden": false },
25+
{ "type": "docs", "section": "Documentation", "hidden": false },
26+
{ "type": "style", "section": "Styles", "hidden": false },
27+
{ "type": "chore", "section": "Miscellaneous Chores", "hidden": false },
28+
{ "type": "refactor", "section": "Code Refactoring", "hidden": false },
29+
{ "type": "test", "section": "Tests", "hidden": false },
30+
{ "type": "build", "section": "Build System", "hidden": false },
31+
{ "type": "ci", "section": "Continuous Integration", "hidden": false }
32+
],
33+
"commit-search-depth": 100,
34+
"signoff": false,
35+
"include-v-in-tag": true,
36+
"include-component-in-tag": false,
37+
"pull-request-title-pattern": "chore${scope}: release${component} ${version}",
38+
"pull-request-header": ":robot: I have created a release",
39+
"separate-pull-requests": false,
40+
"group-pull-request-title-pattern": "chore: release ${version}",
41+
"labels": ["autorelease: pending"],
42+
"release-labels": ["autorelease: tagged"],
43+
"extra-labels": ["release-please"],
44+
"skip-github-release": false,
45+
"skip-github-pull-request": false,
46+
"sequential-calls": false,
47+
"bootstrap-sha": null,
48+
"last-release-sha": null,
49+
"always-update": {
50+
"README.md": true
51+
}
52+
}

0 commit comments

Comments
 (0)