From dfbd71094d76fddde72a557965ea427398fd2239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=AE=E6=98=8A?= Date: Fri, 15 May 2026 05:43:50 +0000 Subject: [PATCH 1/2] feat: add GoReleaser configuration and GitHub Actions release workflow - Add .goreleaser.yaml with cross-compilation targets for linux, darwin, and windows (amd64, arm64) - Configure build from ./cmd/html-server with version info ldflags - Add checksum generation and archive configuration - Add .github/workflows/release.yml for automated releases on tag push - Use self-hosted runner with Go 1.24 Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release.yml | 33 ++++++++++++++++++++ .goreleaser.yaml | 57 +++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 .github/workflows/release.yml create mode 100644 .goreleaser.yaml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c51d415 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,33 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + goreleaser: + runs-on: self-hosted + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.24' + cache: true + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + distribution: goreleaser + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..3b2b786 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,57 @@ +project_name: static-html + +before: + hooks: + - go mod tidy + - go generate ./... + +builds: + - env: + - CGO_ENABLED=0 + goos: + - linux + - darwin + - windows + goarch: + - amd64 + - arm64 + dir: ./cmd/html-server + binary: static-html + ldflags: + - -s -w + - -X main.version={{.Version}} + - -X main.commit={{.Commit}} + - -X main.date={{.Date}} + main: . + +archives: + - format: tar.gz + name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" + format_overrides: + - goos: windows + format: zip + files: + - LICENSE* + - README* + - CHANGELOG* + +checksum: + name_template: 'checksums.txt' + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + - '^ci:' + +release: + github: + owner: | + {{ .Env.GITHUB_REPOSITORY_OWNER }} + name: | + {{ .Tag }} + draft: false + prerelease: auto + mode: replace From 0fb669cdf2e11d1edfe775e61ed6c1101193f4eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=AE=E6=98=8A?= Date: Fri, 15 May 2026 05:57:08 +0000 Subject: [PATCH 2/2] fix: address PR review feedback - Add version.go in cmd/html-server with version variables - Remove go generate hook from .goreleaser.yaml - Remove github block from release config - Pin goreleaser-action to v2.6.1 - Use go-version-file instead of hardcoded go-version Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release.yml | 4 ++-- .goreleaser.yaml | 6 ------ cmd/html-server/version.go | 3 +++ 3 files changed, 5 insertions(+), 8 deletions(-) create mode 100644 cmd/html-server/version.go diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c51d415..8c20166 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,14 +20,14 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.24' + go-version-file: go.mod cache: true - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 with: distribution: goreleaser - version: latest + version: v2.6.1 args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 3b2b786..17a7dfb 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -3,7 +3,6 @@ project_name: static-html before: hooks: - go mod tidy - - go generate ./... builds: - env: @@ -47,11 +46,6 @@ changelog: - '^ci:' release: - github: - owner: | - {{ .Env.GITHUB_REPOSITORY_OWNER }} - name: | - {{ .Tag }} draft: false prerelease: auto mode: replace diff --git a/cmd/html-server/version.go b/cmd/html-server/version.go new file mode 100644 index 0000000..3e28323 --- /dev/null +++ b/cmd/html-server/version.go @@ -0,0 +1,3 @@ +package main + +var version, commit, date string