Skip to content

Commit 58414a2

Browse files
authored
Merge pull request #2 from xenOs76/feature/add_goreleaser_action
add GoReleaser and Govulncheck actions
2 parents d215141 + bb3da43 commit 58414a2

File tree

4 files changed

+134
-1
lines changed

4 files changed

+134
-1
lines changed

.github/workflows/release.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: release
2+
on:
3+
push:
4+
tags:
5+
- '*'
6+
permissions:
7+
contents: write
8+
jobs:
9+
goreleaser:
10+
runs-on: ubuntu-latest
11+
env:
12+
DOCKER_CLI_EXPERIMENTAL: "enabled"
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
- name: Set up QEMU
19+
uses: docker/setup-qemu-action@v1
20+
- name: Login to GitHub Container Registry
21+
uses: docker/login-action@v3
22+
with:
23+
registry: ghcr.io
24+
username: ${{ github.actor }}
25+
password: ${{ secrets.GH_GORELEASER_TOKEN }}
26+
- name: Set up Go
27+
uses: actions/setup-go@v5
28+
with:
29+
go-version: 1.24
30+
- name: Run GoReleaser
31+
uses: goreleaser/goreleaser-action@v6
32+
with:
33+
version: '~> 2.9'
34+
args: release --clean
35+
workdir: src
36+
env:
37+
GITHUB_TOKEN: ${{ secrets.GH_GORELEASER_TOKEN }}

.github/workflows/vulncheck.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
on: [push]
2+
jobs:
3+
govulncheck_job:
4+
runs-on: ubuntu-latest
5+
name: Run govulncheck
6+
steps:
7+
- id: govulncheck
8+
uses: golang/govulncheck-action@v1
9+
with:
10+
go-version-input: 1.24
11+
go-package: ./...
12+
work-dir: src

shell.nix

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,8 @@ pkgs.mkShell {
1212

1313
CGO_ENABLED = 0;
1414

15-
shellHook = '''';
15+
shellHook = ''
16+
echo "Exporting GITHUB_TOKEN..."
17+
export GITHUB_TOKEN=$(cat ~/.config/goreleaser/github_token || echo NOT_FOUND)
18+
'';
1619
}

src/.goreleaser.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
2+
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
3+
version: 2
4+
project_name: ledlighter
5+
dist: ../dist/
6+
env_files:
7+
gitlab_token: ~/nope
8+
gitea_token: ~/nope
9+
release:
10+
github:
11+
owner: xenos76
12+
name: ledlighter
13+
before:
14+
hooks:
15+
- go mod tidy
16+
- go test
17+
builds:
18+
- env:
19+
- CGO_ENABLED=0
20+
goos:
21+
- linux
22+
- darwin
23+
goarch:
24+
- amd64
25+
- arm64
26+
ldflags:
27+
- -s -w -X main.appVersion={{.Version}} -X main.buildDate={{.Date}}
28+
archives:
29+
- formats: ["zip", "tar.gz"]
30+
name_template: >-
31+
{{ .ProjectName }}_ {{- title .Os }}_ {{- if eq .Arch "amd64" }}x86_64 {{- else }}{{ .Arch }}{{ end }} {{- if .Arm }}v{{ .Arm }}{{ end }}
32+
dockers:
33+
- image_templates:
34+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-amd64"
35+
use: buildx
36+
skip_push: false
37+
build_flag_templates:
38+
- "--pull"
39+
- "--platform=linux/amd64"
40+
- --label=org.opencontainers.image.title={{ .ProjectName }}
41+
- --label=org.opencontainers.image.description={{ .ProjectName }}
42+
- --label=org.opencontainers.image.url=https://github.com/xenOs76/{{ .ProjectName }}
43+
- --label=org.opencontainers.image.source=https://github.com/xenOs76/{{ .ProjectName }}
44+
- --label=org.opencontainers.image.version={{ .Version }}
45+
- --label=org.opencontainers.image.created={{ .Date }}
46+
- --label=org.opencontainers.image.revision={{ .FullCommit }}
47+
- --label=org.opencontainers.image.licenses=MIT
48+
goarch: amd64
49+
dockerfile: "../Dockerfile.goreleaser"
50+
- image_templates:
51+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-arm64"
52+
use: buildx
53+
skip_push: false
54+
build_flag_templates:
55+
- "--pull"
56+
- "--platform=linux/arm64"
57+
- --label=org.opencontainers.image.title={{ .ProjectName }}
58+
- --label=org.opencontainers.image.description={{ .ProjectName }}
59+
- --label=org.opencontainers.image.url=https://github.com/xenOs76/{{ .ProjectName }}
60+
- --label=org.opencontainers.image.source=https://github.com/xenOs76/{{ .ProjectName }}
61+
- --label=org.opencontainers.image.version={{ .Version }}
62+
- --label=org.opencontainers.image.created={{ .Date }}
63+
- --label=org.opencontainers.image.revision={{ .FullCommit }}
64+
- --label=org.opencontainers.image.licenses=MIT
65+
goarch: arm64
66+
dockerfile: "../Dockerfile.goreleaser"
67+
docker_manifests:
68+
- name_template: "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}"
69+
image_templates:
70+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-amd64"
71+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-arm64"
72+
- name_template: "ghcr.io/xenos76/{{ .ProjectName }}:latest"
73+
image_templates:
74+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-amd64"
75+
- "ghcr.io/xenos76/{{ .ProjectName }}:{{ .Tag }}-arm64"
76+
changelog:
77+
sort: asc
78+
filters:
79+
exclude:
80+
- "^docs:"
81+
- "^test:"

0 commit comments

Comments
 (0)