diff --git a/.github/workflows/release-goreleaser.yml b/.github/workflows/release-goreleaser.yml index 59645ce4..bc50f35f 100644 --- a/.github/workflows/release-goreleaser.yml +++ b/.github/workflows/release-goreleaser.yml @@ -34,10 +34,10 @@ jobs: npm ci npm run build - - name: Install Cross-Compilation Tools - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu + - name: Install Cross-Compilation Tools (Zig) + uses: goto-bus-stop/setup-zig@v2 + with: + version: 0.13.0 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 @@ -47,9 +47,4 @@ jobs: args: release --clean env: GITHUB_TOKEN: ${{ secrets.CPMP_TOKEN }} - # Cross-compile env vars - CC_linux_amd64: gcc - CXX_linux_amd64: g++ - CC_linux_arm64: aarch64-linux-gnu-gcc - CXX_linux_arm64: aarch64-linux-gnu-g++ - CGO_ENABLED: 1 + # CGO settings are handled in .goreleaser.yaml via Zig diff --git a/.goreleaser.yaml b/.goreleaser.yaml index cefd23cd..59c700c7 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -3,12 +3,14 @@ version: 2 project_name: cpmp builds: - - id: cpmp + - id: linux dir: backend main: ./cmd/api binary: cpmp env: - CGO_ENABLED=1 + - CC=zig cc -target {{ if eq .Arch "amd64" }}x86_64{{ else }}aarch64{{ end }}-linux-gnu + - CXX=zig c++ -target {{ if eq .Arch "amd64" }}x86_64{{ else }}aarch64{{ end }}-linux-gnu goos: - linux goarch: @@ -20,8 +22,62 @@ builds: - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.GitCommit={{.Commit}} - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.BuildTime={{.Date}} + - id: windows + dir: backend + main: ./cmd/api + binary: cpmp + env: + - CGO_ENABLED=1 + - CC=zig cc -target x86_64-windows-gnu + - CXX=zig c++ -target x86_64-windows-gnu + goos: + - windows + goarch: + - amd64 + ldflags: + - -s -w + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.Version={{.Version}} + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.GitCommit={{.Commit}} + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.BuildTime={{.Date}} + + - id: darwin + dir: backend + main: ./cmd/api + binary: cpmp + env: + - CGO_ENABLED=1 + - CC=zig cc -target {{ if eq .Arch "amd64" }}x86_64{{ else }}aarch64{{ end }}-macos-gnu + - CXX=zig c++ -target {{ if eq .Arch "amd64" }}x86_64{{ else }}aarch64{{ end }}-macos-gnu + goos: + - darwin + goarch: + - amd64 + - arm64 + ldflags: + - -s -w + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.Version={{.Version}} + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.GitCommit={{.Commit}} + - -X github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version.BuildTime={{.Date}} + archives: - format: tar.gz + id: nix + builds: + - linux + - darwin + name_template: >- + {{ .ProjectName }}_ + {{- .Version }}_ + {{- .Os }}_ + {{- .Arch }} + files: + - LICENSE + - README.md + + - format: zip + id: windows + builds: + - windows name_template: >- {{ .ProjectName }}_ {{- .Version }}_ @@ -33,6 +89,8 @@ archives: nfpms: - id: packages + builds: + - linux package_name: cpmp vendor: CaddyProxyManagerPlus homepage: https://github.com/Wikid82/CaddyProxyManagerPlus