Skip to content

Commit accbdc2

Browse files
authored
Merge pull request #6 from OpenCHAMI/releases
Add support for releases based on Fabrica releases
2 parents a417bb6 + 01e8255 commit accbdc2

3 files changed

Lines changed: 244 additions & 0 deletions

File tree

.github/workflows/release.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# SPDX-FileCopyrightText: 2026 Copyright © 2026 OpenCHAMI a Series of LF Projects, LLC
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
name: Release
6+
7+
on:
8+
push:
9+
tags:
10+
- 'v*.*.*'
11+
12+
permissions:
13+
contents: write
14+
packages: write
15+
16+
jobs:
17+
goreleaser:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Set up Go
26+
uses: actions/setup-go@v5
27+
with:
28+
go-version: '1.23'
29+
30+
- name: Set up QEMU
31+
uses: docker/setup-qemu-action@v3
32+
33+
- name: Set up Docker Buildx
34+
uses: docker/setup-buildx-action@v3
35+
36+
- name: Login to GitHub Container Registry
37+
uses: docker/login-action@v3
38+
with:
39+
registry: ghcr.io
40+
username: ${{ github.actor }}
41+
password: ${{ secrets.GITHUB_TOKEN }}
42+
43+
- name: Run GoReleaser
44+
uses: goreleaser/goreleaser-action@v6
45+
with:
46+
distribution: goreleaser
47+
version: '~> v2'
48+
args: release --clean
49+
env:
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.goreleaser.yaml

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# SPDX-FileCopyrightText: Copyright © 2026 OpenCHAMI a Series of LF Projects, LLC
2+
#
3+
# SPDX-License-Identifier: MIT
4+
# GoReleaser configuration for fru-tracker
5+
6+
version: 2
7+
8+
before:
9+
hooks:
10+
- go mod download
11+
12+
builds:
13+
- id: fru-tracker-server
14+
main: ./cmd/server
15+
binary: fru-tracker-server
16+
env:
17+
- CGO_ENABLED=0
18+
goos:
19+
- linux
20+
- darwin
21+
goarch:
22+
- amd64
23+
- arm64
24+
ldflags:
25+
- -s -w
26+
- -X main.version={{.Version}}
27+
- -X main.commit={{.Commit}}
28+
- -X main.date={{.Date}}
29+
flags:
30+
- -trimpath
31+
32+
- id: fru-tracker-collector
33+
main: ./cmd/collector
34+
binary: fru-tracker-collector
35+
env:
36+
- CGO_ENABLED=0
37+
goos:
38+
- linux
39+
- darwin
40+
goarch:
41+
- amd64
42+
- arm64
43+
ldflags:
44+
- -s -w
45+
- -X main.version={{.Version}}
46+
- -X main.commit={{.Commit}}
47+
- -X main.date={{.Date}}
48+
flags:
49+
- -trimpath
50+
51+
archives:
52+
- id: fru-tracker
53+
builds:
54+
- fru-tracker-server
55+
- fru-tracker-collector
56+
name_template: >-
57+
{{ .ProjectName }}_
58+
{{- .Version }}_
59+
{{- .Os }}_
60+
{{- if eq .Arch "amd64" }}x86_64
61+
{{- else if eq .Arch "386" }}i386
62+
{{- else }}{{ .Arch }}{{ end }}
63+
files:
64+
- README.md
65+
66+
checksum:
67+
name_template: 'checksums.txt'
68+
algorithm: sha256
69+
70+
snapshot:
71+
version_template: "{{ incpatch .Version }}-next"
72+
73+
changelog:
74+
sort: asc
75+
filters:
76+
exclude:
77+
- '^docs:'
78+
- '^test:'
79+
- '^ci:'
80+
- '^chore:'
81+
- Merge pull request
82+
- Merge branch
83+
84+
dockers:
85+
- id: fru-tracker-amd64
86+
ids: [fru-tracker-server, fru-tracker-collector]
87+
goos: linux
88+
goarch: amd64
89+
image_templates:
90+
- "ghcr.io/openchami/fru-tracker:{{ .Version }}-amd64"
91+
- "ghcr.io/openchami/fru-tracker:latest-amd64"
92+
dockerfile: Dockerfile
93+
use: buildx
94+
build_flag_templates:
95+
- "--platform=linux/amd64"
96+
- "--label=org.opencontainers.image.created={{.Date}}"
97+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
98+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
99+
- "--label=org.opencontainers.image.version={{.Version}}"
100+
- "--label=org.opencontainers.image.source={{.GitURL}}"
101+
- "--label=org.opencontainers.image.licenses=MIT"
102+
103+
- id: fru-tracker-arm64
104+
ids: [fru-tracker-server, fru-tracker-collector]
105+
goos: linux
106+
goarch: arm64
107+
image_templates:
108+
- "ghcr.io/openchami/fru-tracker:{{ .Version }}-arm64"
109+
- "ghcr.io/openchami/fru-tracker:latest-arm64"
110+
dockerfile: Dockerfile
111+
use: buildx
112+
build_flag_templates:
113+
- "--platform=linux/arm64"
114+
- "--label=org.opencontainers.image.created={{.Date}}"
115+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
116+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
117+
- "--label=org.opencontainers.image.version={{.Version}}"
118+
- "--label=org.opencontainers.image.source={{.GitURL}}"
119+
- "--label=org.opencontainers.image.licenses=MIT"
120+
121+
docker_manifests:
122+
- name_template: "ghcr.io/openchami/fru-tracker:{{ .Version }}"
123+
image_templates:
124+
- "ghcr.io/openchami/fru-tracker:{{ .Version }}-amd64"
125+
- "ghcr.io/openchami/fru-tracker:{{ .Version }}-arm64"
126+
127+
- name_template: "ghcr.io/openchami/fru-tracker:latest"
128+
image_templates:
129+
- "ghcr.io/openchami/fru-tracker:latest-amd64"
130+
- "ghcr.io/openchami/fru-tracker:latest-arm64"
131+
132+
release:
133+
github:
134+
owner: openchami
135+
name: fru-tracker
136+
draft: false
137+
prerelease: auto
138+
mode: append
139+
header: |
140+
## fru-tracker {{ .Version }}
141+
142+
**Release Date:** {{ .Date }}
143+
144+
### Installation
145+
146+
#### Binaries
147+
Download the appropriate binary for your platform from the assets below.
148+
149+
#### Docker
150+
```bash
151+
docker pull ghcr.io/openchami/fru-tracker:{{ .Version }}
152+
```
153+
154+
#### Go Install
155+
```bash
156+
go install [github.com/openchami/fru-tracker/cmd/server](https://github.com/openchami/fru-tracker/cmd/server)@{{ .Tag }}
157+
go install [github.com/openchami/fru-tracker/cmd/collector](https://github.com/openchami/fru-tracker/cmd/collector)@{{ .Tag }}
158+
```
159+
160+
footer: |
161+
---
162+
**Full Changelog**: https://github.com/openchami/fru-tracker/compare/{{ .PreviousTag }}...{{ .Tag }}

Dockerfile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Copyright © 2026 OpenCHAMI a Series of LF Projects, LLC
2+
# SPDX-FileCopyrightText: Copyright © 2026 OpenCHAMI a Series of LF Projects, LLC
3+
#
4+
# SPDX-License-Identifier: MIT
5+
6+
FROM alpine:latest
7+
8+
# Install runtime dependencies
9+
RUN apk add --no-cache \
10+
ca-certificates \
11+
git \
12+
bash
13+
14+
# Create non-root user
15+
RUN addgroup -g 1000 fru && \
16+
adduser -D -u 1000 -G fru fru
17+
18+
WORKDIR /home/fru
19+
20+
# Copy pre-built binaries from GoReleaser
21+
COPY fru-tracker-server /usr/local/bin/fru-tracker-server
22+
COPY fru-tracker-collector /usr/local/bin/fru-tracker-collector
23+
24+
# Set ownership
25+
RUN chown -R fru:fru /home/fru
26+
27+
# Switch to non-root user
28+
USER fru
29+
30+
# Set entrypoint
31+
ENTRYPOINT ["/usr/local/bin/fru-tracker-server"]
32+
CMD ["serve"]

0 commit comments

Comments
 (0)