diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2a2db00..0911e96 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,13 +16,39 @@ jobs: uses: actions/setup-go@v1 with: go-version: 1.23.x + - name: Run GoReleaser (dry run) + run: | + docker run \ + --rm \ + -e CGO_ENABLED=1 \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v `pwd`:/go/src/${PACKAGE_NAME}\ + -v `pwd`/sysroot:/sysroot \ + -w /go/src/${PACKAGE_NAME} \ + ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ + --clean --skip=validate --skip=publish + - name: Setup release environment + run: |- + echo 'GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}}' > .release-env + echo 'HOMEBREW_TAP_GITHUB_TOKEN=${{secrets.GH_PAT}}' > .release-env + echo 'AUR_GITHUB_TOKEN=${{secrets.AUR_SSH_PRIVATE_KEY}}' > .release-env - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v4 - with: - distribution: goreleaser - version: v2.6.1 - args: release --clean env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.GH_PAT }} - AUR_GITHUB_TOKEN: ${{ secrets.AUR_SSH_PRIVATE_KEY }} + PACKAGE_NAME: github.com/lets-cli/lets + GOLANG_CROSS_VERSION: v1.23 + run: | + if [ ! -f ".release-env" ]; then + echo ".release-env is required for release"; + exit 1; + fi + + docker run \ + --rm \ + -e CGO_ENABLED=1 \ + --env-file .release-env \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v `pwd`:/go/src/${PACKAGE_NAME}\ + -v `pwd`/sysroot:/sysroot \ + -w /go/src/${PACKAGE_NAME} \ + ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ + release --clean diff --git a/.goreleaser.yml b/.goreleaser.yml index 1922536..75b9170 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -9,19 +9,49 @@ release: prerelease: auto builds: -- env: - - CGO_ENABLED=1 - goos: - - linux - - darwin - goarch: - - amd64 - - arm64 - ignore: - - goos: linux - goarch: arm64 - ldflags: - - -X main.version={{.Version}} + - id: darwin-amd64 + main: . + goos: + - darwin + goarch: + - amd64 + env: + - PKG_CONFIG_SYSROOT_DIR=/sysroot/macos/amd64 + - PKG_CONFIG_PATH=/sysroot/macos/amd64/usr/local/lib/pkgconfig + - CC=o64-clang + - CXX=o64-clang++ + flags: + - -mod=readonly + ldflags: + - -s -w -X main.version={{.Version}} + - id: darwin-arm64 + main: . + goos: + - darwin + goarch: + - arm64 + env: + - PKG_CONFIG_SYSROOT_DIR=/sysroot/macos/arm64 + - PKG_CONFIG_PATH=/sysroot/macos/arm64/usr/local/lib/pkgconfig + - CC=oa64-clang + - CXX=oa64-clang++ + flags: + - -mod=readonly + ldflags: + - -s -w -X main.version={{.Version}} + - id: linux-amd64 + main: . + goos: + - linux + goarch: + - amd64 + env: + - CC=x86_64-linux-gnu-gcc + - CXX=x86_64-linux-gnu-g++ + flags: + - -mod=readonly + ldflags: + - -s -w -X main.version={{.Version}} archives: - formats: [tar.gz]