Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: cgo goreleaser alt solution #2613

Merged
merged 4 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions .github/README.md
Original file line number Diff line number Diff line change
@@ -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-----

mQINBGXynhABEADCKMXkE/xrrYj0FlY03hgUcs/mZiGN6QaMDVOgG/gN7maqj1Y1
+/U82InzZ4pdhWb5WQ0bty6VBjC3rfHj6lxJcts2JfYJ/z2E85ukg7T5DAo/+bd9
GezHB9ucsTOgxgHpibFlBGQQToXFamPmbuYLBzW/x1M1cGOF2pBTKCoqJX/TlKJq
RYvfeqBTJtGY+2LcJE7I3CwWtuUDDaSa84RHM8SdL/kJACLT8d9878fnefya/bO8
6MYJD7qgz4C/5IpriyfdqErFfj4OUwyavJs6CKyvvGBFH5633+2MKG7pAq5p2FVT
mM0tVZA/TI8SLGNdUnEryKnNzgCfK/7/KAGHB2w4VpRltDcK5/FwmDBafTG2r3va
sP6SwQ3KhH1Z+8UTo0lWGVgkJwv/InRe+pdZNZCNI1n/wdjKFBjmxKn5qxRaHWi0
NXkWBrNy78jWti8l2R2zEbRLqaKox9oGX5RuYLM2T+UWh2xbKXOYy6BbkPRj6ywz
aHbWTp+MgaQxWdnEw9sUlktTRnJmZgGjyi5tVjfqEu0iRCNFRDk4m4VpqJi0MuBG
8iUTiFWxqdr4nmCIeQQm4Tfes47ZylaltyTAICa6TnGsg64e3IzaJMmTwu1F0EVq
sJHpUlUUMH8PBPAp2JlA0X8jsIVqikHdyPrIamrGEULYCMKJRMQRWJJGpQARAQAB
tDFUZXJyYWZvcm0gU25vd2ZsYWtlIDxzY290dC53aW5rbGVyQHNub3dmbGFrZS5j
b20+iQJRBBMBCAA7FiEEcYb8B6Io8oL+9zPs8Byk2iOpnuMFAmXynhACGwMFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ8Byk2iOpnuOA2w/+Ii7yhNGV0/5r
Ck+T0eAQR0Ub/+NG3XUxdHuNijtGtMplJyJYRAxjZYgXj0mDrfaMAxSHYYKG26DA
nU+NZ1mM9SQyuFPIaFMZn5KMYlB2iu5A38AeBvEvvbru59ilvB98zLOmyMnfB1Qg
bllEW46W/wz9Q3LsoyY+c/GzAGwdS6Lsd9xCrqTl1ogsbuaSuQLqXs24YS/I5KBz
hdaQKa6dqmjNdMSdNjzfpuPLkCKyG6owxtKm6fKKI6UdZyEpC75qjWFJSlossWEN
mw+pKhNYhc2SW1+9uA4mC4PTiafTLYhI3+yW6jsbbH7455w2hHxHZlKXqYNQ1gP0
bFeiNiO62aJ/y05rZByz+LFi4q9aDUdSYNAdTKaxOFuF0BGmhUYhlcTxXH+hqkjp
t6TdSkFYZ0VRzCuGQkDD071kmYOae4TXtYHbBvmWoQt7QyijmRxF8JMFl0kGq3zV
Z4c7tBVO0/yPUlYwiR18Sa+RNZoXVPpuAl4yt3WhdmXxEfNOHmuG1Ra2Zyzrwm9S
YQXazDo1kIhD7hueHieau1UYkc4XIwSj71PmWJY+YYiiuXEp32ybi/SEAaZHP6LX
GphU6a5fS4K4QUtVK2WnRHAycOP+XbGxkI7NJOJmoO+uGD1IpPnh5+d/RvaXHsI0
3+Svrt1AJMJ3bL7j5EMd/fPvx7vIHzS5Ag0EZfKeEAEQAJNXYPld8rUaV3a0s/I8
+GpT2rwWJZqWs091dNQ9f5B59paDzM5hD0iseP0Gl7+HEHiNLEDLh8WhxCdFzWOA
WZOxGy3qodLrmQSsZRgLPdK/kRf/14Dxs1S3MYzwvriBQ4qIrbAkdvC3LG2d9dkh
jC5DTdCM9KsP5ei3RPjmv2Fu1zHNkZsh3EzueheNqxhoFgJObpv9X8jtntymC6WD
1qBdzXnvscziIT+RS+H4O1Acr9ErWK8sy6Ry37LyJn8yaY+yXxthifQaKzoSOsu9
v5XjkSfp7Mj/hrMm76Idj6A9UPVhCOSPCGKS4GL2iVhUdgduUCgXuIk9GznFkDnA
xI/lhUaH0Qcvy166ys/rn9FeqVTIVaGhO2eL7Y5wJddbpaWhvOOZyobag8VpjP3Q
CCTYOvpZpZlZYUldBJ04f25kK3rdzpBaEKDaJUrs8/dkG4Ur0rM/kkHmENNYSR2L
d934dXxfY0ops1QuKjTUmLdG1w9tBwkfwEgc3TnsrIFziq2/FCcbcMknIJvmziUK
VlPg2Z3ko7of/cM4WXx85Vs3inKSdfgr9OWN7e1NP8HbARukLDosi97Fm2t2SYB0
UBgfRRQIB6wb1LJmxRnpaezczJiJDQDwNWguv/tE96l4L5pxHag+2JXlDNTnPdmX
15AFDfHrfgUh81mc/YPnODkVABEBAAGJAjYEGAEIACAWIQRxhvwHoijygv73M+zw
HKTaI6me4wUCZfKeEAIbDAAKCRDwHKTaI6me4/JvD/936iNSqT7GpAdYQOKyDb46
CyPzJAzeaTtxw6XzX+KGckzBtuJrmx1U0Xhc1gQNNTqgASlkGAl786x0SjJVxEzv
nvEbBhKfj6HMb/Udo2K4/A2K5xvcJlu6ymG94SIAIQOy7D34dio4Mx09B5AqcSv3
Nd62PuBTI2co4VY+VYdHtnjcgoCaHQM216l1W+b28PQg2ljIW8CTL/LN/DrNtcWy
NjQ2F9kEv8k6tb7x8UEmg4evb30LMcsCnKehnN0gi2c09mvhRRmi3df1oNL3j6uR
O1d8bxiI1R8OniAc3BIgHG8g/XCFQoTZLnwyPP7fQyO7IW0GTDWHHtz/nzXYMPJK
8dUKJHIYuXeHxal9dS5iruHxOpH1pGpQkWUIbR86WAndqkfjlu0R0BNXmdjzUASM
u/ncvgW2vfqzP7GbMa4kTioWqY3l/qw++icu62lu6HC43mcQv6REn3mBx6lNxbEo
KKfZrMfYeH+qyA4Ku4BveUlgG/jLxU7dN4f/KNLx0uvbYa9lHCv0vfQ22TYGL1Qp
8HDhIXxr7BH9OeoR752tpoWiGwmMvI/0bsKfdZnFAJ96yviet/08bLfGzgSTm9g6
NIpjNPWPjNbidFOEI6ZXYVSKF8UQzkfrhlCppeIRDaak92k4YZRQs9OLLCOzo4UK
XB9qyVLh+018OvKWPdnRMQ==
=0qkj
-----END PGP PUBLIC KEY BLOCK-----"

```

## Run specific workflow

```bash
act -W '.github/workflows/build.yml' -P macos-latest=-self-hosted
```
30 changes: 13 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 }}
8 changes: 6 additions & 2 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -12,7 +17,6 @@ builds:
- '386'
flags:
- -trimpath
ignore:
binary: '{{ .ProjectName }}_v{{ .Version }}'

archives:
Expand Down
Loading