# Release : sur tag vX.Y.Z, compile les 6 cibles et publie la release GitHub # avec les binaires (mêmes noms d'assets que les releases manuelles historiques) # ET le fichier SHA256SUMS que `jean update` (v0.4.6+) vérifie avant d'installer. # ⚠️ NE PAS uploader de binaires à la main en plus : ce workflow écrase les # assets du même nom (softprops remplace), et des sommes qui ne correspondent # plus aux binaires font échouer `jean update` (vécu sur v0.4.7). name: release on: push: tags: ["v*"] permissions: contents: write jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: build 6 cibles run: | mkdir -p dist for t in darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 windows/arm64; do os=${t%/*}; arch=${t#*/}; ext=""; [ "$os" = windows ] && ext=".exe" GOOS=$os GOARCH=$arch CGO_ENABLED=0 \ go build -trimpath -ldflags="-s -w" -o "dist/jean-$os-$arch$ext" ./cmd/jean done (cd dist && sha256sum jean-* > SHA256SUMS) ls -l dist && cat dist/SHA256SUMS - name: publier la release uses: softprops/action-gh-release@v2 with: files: dist/* generate_release_notes: true