Skip to content

Commit c97c9b6

Browse files
committed
ci: add release actions
1 parent 5797b1d commit c97c9b6

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

.github/workflows/release.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
matrix:
13+
goos: [linux, windows, darwin]
14+
goarch: [amd64, arm64]
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Set up Go
21+
uses: actions/setup-go@v5
22+
with:
23+
go-version: "1.23"
24+
25+
- name: Build binaries
26+
run: |
27+
mkdir -p dist
28+
GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} \
29+
go build -o dist/coldwire-server-${{ matrix.goos }}-${{ matrix.goarch }}
30+
31+
- name: Upload artifacts
32+
uses: actions/upload-artifact@v4
33+
with:
34+
name: binaries
35+
path: dist/*
36+
37+
release:
38+
runs-on: ubuntu-latest
39+
needs: build
40+
steps:
41+
- name: Checkout code
42+
uses: actions/checkout@v4
43+
44+
- name: Download build artifacts
45+
uses: actions/download-artifact@v4
46+
with:
47+
name: binaries
48+
path: dist
49+
50+
- name: Compute SHA256 checksums
51+
run: |
52+
echo "## Checksums" > dist/CHECKSUMS.md
53+
for f in dist/*; do
54+
sha256sum "$f" >> dist/CHECKSUMS.md
55+
done
56+
cat dist/CHECKSUMS.md
57+
58+
- name: Extract latest changelog section
59+
id: changelog
60+
run: |
61+
latest_notes=$(awk '/^## \[v/{if (found) exit; found=1; next} found {print}' CHANGELOG.md)
62+
echo "LATEST_NOTES<<EOF" >> $GITHUB_ENV
63+
echo "$latest_notes" >> $GITHUB_ENV
64+
echo "EOF" >> $GITHUB_ENV
65+
66+
- name: Publish GitHub Release
67+
run: |
68+
gh release create "$GITHUB_REF_NAME" dist/* \
69+
--title "Release $GITHUB_REF_NAME" \
70+
--notes "$LATEST_NOTES"
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## [v0.1]
2+
### Added
3+
- Initial release for Coldwire's federated server Go implementation
4+
- User storage with support for SQLite, MySQL, MariaDB options.
5+
- Data storage with support for SQLite, MySQL, MariaDB, Redis options
6+

0 commit comments

Comments
 (0)