From 363a01a0a19f6ab4fb685abf8a0698cd73976bbf Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Thu, 5 Oct 2023 14:44:35 -0400 Subject: [PATCH] chore(readme): release steps (#8) * chore(readme): add release steps * chore: learnings --- .goreleaser.yml | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 12 ++++++++++ learning/log.md | 2 ++ 3 files changed, 74 insertions(+) create mode 100644 .goreleaser.yml diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..c2c6bb3 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,60 @@ +# Visit https://goreleaser.com for documentation on how to customize this +# behavior. +before: + hooks: + # this is just an example and not a requirement for provider building/publishing + - go mod tidy +builds: + - env: + # goreleaser does not work with CGO, it could also complicate + # usage by users in CI/CD systems like Terraform Cloud where + # they are unable to install libraries. + - CGO_ENABLED=0 + mod_timestamp: "{{ .CommitTimestamp }}" + flags: + - -trimpath + ldflags: + - "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}" + goos: + - freebsd + - windows + - linux + - darwin + goarch: + - amd64 + - "386" + - arm + - arm64 + ignore: + - goos: darwin + goarch: "386" + binary: "{{ .ProjectName }}_v{{ .Version }}" +archives: + - format: zip + name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" +checksum: + extra_files: + - glob: "terraform-registry-manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS" + algorithm: sha256 +signs: + - artifacts: checksum + args: + # if you are using this in a GitHub action or some other automated pipeline, you + # need to pass the batch flag to indicate its not interactive. + - "--batch" + - "--local-user" + - "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key + - "--output" + - "${signature}" + - "--detach-sign" + - "${artifact}" +release: + extra_files: + - glob: "terraform-registry-manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_manifest.json" + # If you want to manually examine the release before its live, uncomment this line: + # draft: true +changelog: + skip: true diff --git a/README.md b/README.md index 6fb8095..257cc18 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,18 @@ cp .env.example .env go test -v ./... ``` +## Release + +https://developer.hashicorp.com/terraform/registry/providers/publishing#publishing-to-the-registry + +- Sign in to https://registry.terraform.io/publish/provider/github/thiskevinwang/terraform-provider-pinecone +- Ensure repo has `.goreleaser.yml` +- gpg --armor --export "[EMAIL]" + - add this to registry signing keys +- gpg --armor --detach-sign +- git tag v0.1.1 +- GITHUB_TOKEN=$(gh auth token) goreleaser release --clean + ## Appendix - https://docs.pinecone.io/ diff --git a/learning/log.md b/learning/log.md index 47bbc8d..4adfdbf 100644 --- a/learning/log.md +++ b/learning/log.md @@ -270,3 +270,5 @@ Ask developer AI Login to https://registry.terraform.io/publish/provider/github/thiskevinwang Visit https://developer.hashicorp.com/terraform/registry/providers/publishing + +10-05-2023 2:35pm Publishing...