build: Release-Pipeline (scripts/release.sh + Gitea-Workflow) und flake.nix
- scripts/release.sh baut die sechs Targets (linux/darwin/windows × amd64/arm64) statisch mit CGO_ENABLED=0, -trimpath, Version und Commit per ldflags, und schreibt checksums.txt. Asset-Vertrag für das Fleet- Rollout: talk_<os>_<arch>[.exe]. Bewusst ohne GoReleaser — dasselbe Artefakt lokal, in CI und unter nix, ohne zusätzliches Werkzeug. - .gitea/workflows/release.yml: bei Tag v* Tests, Build, Gitea-Release mit Assets (actions/gitea-release-action, Repo-Token). - flake.nix: Paket (buildGoModule, ein Binary), App, Overlay, devShell, Formatter. Linux-Wrapper legt alsa-lib in den LD_LIBRARY_PATH (oto lädt ALSA per dlopen, spricht PulseAudio/PipeWire aber direkt in Go) und espeak-ng/libnotify in den PATH. Verifiziert: nix build .#talk, nix flake check, Snapshot-Build aller sechs Targets. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
9e2aa506a6
commit
423377bade
3 files changed
+146
No files matched your search
@@ -0,0 +1,40 @@
|
||||
# Release-Matrix: bei Tag v* → Tests → Artefakte für alle Plattformen →
|
||||
# Gitea-Release mit Assets talk_<os>_<arch>[.exe] + checksums.txt.
|
||||
name: release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # git describe braucht die Tags
|
||||
- name: Go einrichten
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
- name: Tests
|
||||
run: go vet ./... && go test ./...
|
||||
- name: Artefakte bauen
|
||||
run: scripts/release.sh "${{ github.ref_name }}"
|
||||
- name: Gitea-Release anlegen und Assets hochladen
|
||||
uses: https://gitea.com/actions/gitea-release-action@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tag_name: ${{ github.ref_name }}
|
||||
name: talk ${{ github.ref_name }}
|
||||
body: |
|
||||
Statische Binaries (CGO_ENABLED=0), Prüfsummen in `checksums.txt`.
|
||||
|
||||
Installation: passendes `talk_<os>_<arch>` laden, Prüfsumme vergleichen,
|
||||
als `talk` in den PATH legen, `talk doctor`. Der Daemon startet beim ersten
|
||||
Sprechbefehl von selbst.
|
||||
files: |-
|
||||
dist/talk_*
|
||||
dist/checksums.txt
|
||||
Reference in new issue
Block a user