mirror of
https://github.com/ysoftdevs/terraform-provider-bitbucket.git
synced 2026-04-22 08:38:26 +02:00
add flow and releaser
This commit is contained in:
41
.github/workflows/release.yml
vendored
Normal file
41
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Terraform Provider release workflow.
|
||||||
|
name: Release
|
||||||
|
|
||||||
|
# This GitHub action creates a release when a tag that matches the pattern
|
||||||
|
# "v*" (e.g. v0.1.0) is created.
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
# Releases need permissions to read and write the repository contents.
|
||||||
|
# GitHub considers creating releases and uploading assets as writing contents.
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
goreleaser:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
# Allow goreleaser to access older tag information.
|
||||||
|
fetch-depth: 0
|
||||||
|
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
|
||||||
|
with:
|
||||||
|
go-version-file: 'go.mod'
|
||||||
|
cache: true
|
||||||
|
- name: Import GPG key
|
||||||
|
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
|
||||||
|
id: import_gpg
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
|
passphrase: ${{ secrets.PASSPHRASE }}
|
||||||
|
- name: Run GoReleaser
|
||||||
|
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
|
||||||
|
with:
|
||||||
|
args: release --clean
|
||||||
|
env:
|
||||||
|
# GitHub sets the GITHUB_TOKEN secret automatically.
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
|
||||||
61
goreleaser.yml
Normal file
61
goreleaser.yml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# Visit https://goreleaser.com for documentation on how to customize this
|
||||||
|
# behavior.
|
||||||
|
version: 2
|
||||||
|
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 HCP Terraform 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:
|
||||||
|
disable: true
|
||||||
Reference in New Issue
Block a user