From 5d31856a25fb5b7520a390b98202d741c75600a0 Mon Sep 17 00:00:00 2001 From: Scott Winkler Date: Mon, 18 Mar 2024 00:56:39 -0700 Subject: [PATCH] fix: cgo goreleaser alt solution (#2613) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Test Plan * [ ] acceptance tests * [ ] … ## References * --- .github/README.md | 85 +++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 30 ++++++------- .goreleaser.yml | 8 +++- 3 files changed, 104 insertions(+), 19 deletions(-) create mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000000..e2fbb85339 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,85 @@ +# Run Locally + +First install [act](https://github.com/nektos/act). + +```bash +brew install act +``` + +And you need to have a container runtime. For example, [Docker Desktop](https://www.docker.com/products/docker-desktop/) or [Colima](https://github.com/abiosoft/colima) + + +```bash +brew install colima +colima start +``` + +## Generate GPG Key + +You need a local GPG key. If you don't have one, you can generate one following the instructions [here](https://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework/providers-plugin-framework-release-publish) + +Next, ensure you have secrets that would have been set on the environment of the GitHub repo locally puto in a `.secrets` file. Example: + +```bash +GITHUB_TOKEN="ghp_Y26ot7vs2Zldl1PjUisTPI2qm3tqx32ubCef" +GPG_PASSPHRASE="12345678" +GPG_PRIVATE_KEY="-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +XB9qyVLh+018OvKWPdnRMQ== +=0qkj +-----END PGP PUBLIC KEY BLOCK-----" + +``` + +## Run specific workflow + +```bash +act -W '.github/workflows/build.yml' -P macos-latest=-self-hosted +``` diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 04b887d905..b5654e5f31 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,10 +5,10 @@ on: tags: - '*' -name: release-please +name: release jobs: release-please: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - uses: actions/github-script@v6 id: configure-changelog @@ -20,16 +20,15 @@ jobs: {type: "chore", section: "🔧 **Misc**", hidden: false}, {type: "fix", section: "🐛 **Bug fixes:**", hidden: false}, ] - return JSON.stringify(changelogTypes) # See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow # For why we need to generate a token and not use the default - - name: Generate token - id: generate_token - uses: chanzuckerberg/github-app-token@v1.1.4 + - name: Create token + id: create-token + uses: actions/create-github-app-token@v1 with: - app_id: ${{ secrets.CZI_RELEASE_PLEASE_APP_ID }} - private_key: ${{ secrets.CZI_RELEASE_PLEASE_PK }} + app-id: ${{ secrets.CZI_RELEASE_PLEASE_APP_ID }} + private-key: ${{ secrets.CZI_RELEASE_PLEASE_PK }} - name: Import GPG key id: import_gpg @@ -39,33 +38,30 @@ jobs: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - name: release please + - name: Release please uses: google-github-actions/release-please-action@v3 id: release with: release-type: simple bump-minor-pre-major: true changelog-types: ${{ steps.configure-changelog.outputs.result }} - token: ${{ steps.generate_token.outputs.token }} + token: ${{ steps.create-token.outputs.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # we need to fetch all history and tags # so we build the proper version with: fetch-depth: 0 - if: ${{ steps.release.outputs.release_created }} - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: go-version-file: ./go.mod - if: ${{ steps.release.outputs.release_created }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 with: version: latest - args: release --rm-dist --verbose + args: release --clean --verbose env: - GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + GITHUB_TOKEN: ${{ steps.create-token.outputs.token }} GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} - if: ${{ steps.release.outputs.release_created }} diff --git a/.goreleaser.yml b/.goreleaser.yml index 13126c9b21..d3399efd29 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,6 +1,11 @@ builds: - env: - - CGO_ENABLED=0 + - >- + {{- if or (eq .Os "windows") (eq .Os "darwin") -}} + CGO_ENABLED=1 + {{- else -}} + CGO_ENABLED=0 + {{- end -}} goos: - windows - linux @@ -12,7 +17,6 @@ builds: - '386' flags: - -trimpath - ignore: binary: '{{ .ProjectName }}_v{{ .Version }}' archives: