ci: fix goreleaser (#708)

* testing goreleaser

* removed arm64 building instructions

* CGO changed

* ci: reverted releaser changes, back to troian/golang-cross

* using snapshot to test the release ci

* testing ci code removed
This commit is contained in:
Guillermo Paoletti 2021-10-29 15:56:09 +02:00 committed by GitHub
parent bc1d81c5e8
commit 19bc44a226
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 147 additions and 68 deletions

View File

@ -1,38 +1,27 @@
# This workflow helps with creating releases. name: goreleaser
# This job will only be triggered when a tag (vX.X.x) is pushed
name: Release
on: on:
push: push:
# Sequence of patterns matched against refs/tags
tags: tags:
- "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 - "v*.*.*"
jobs: jobs:
release: goreleaser:
runs-on: ubuntu-latest runs-on: ubuntu-latest
environment: release
steps: steps:
- uses: actions/checkout@v2.3.5 - uses: actions/checkout@v2
with: with:
fetch-depth: 0 submodules: true
- uses: actions/setup-go@v2.1.4 - name: Set up Go
uses: actions/setup-go@v2
with: with:
go-version: 1.17 go-version: 1.17
- name: Set Env - name: release dry run
run: echo "TM_VERSION=$(go list -m github.com/tendermint/tendermint | sed 's:.* ::')" >> $GITHUB_ENV run: make release-dry-run
- name: Build - name: setup release environment
uses: goreleaser/goreleaser-action@v2.8.0
if: ${{ github.event_name == 'pull_request' }}
with:
version: latest
args: build --rm-dist --skip-validate # skip validate skips initial sanity checks in order to be able to fully run
env:
TM_VERSION: ${{ env.TM_VERSION }}
- name: Release
uses: goreleaser/goreleaser-action@v2.8.0
if: startsWith(github.ref, 'refs/tags/')
with:
version: latest
args: release --rm-dist --release-notes ./RELEASE_NOTES.md
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TM_VERSION: ${{ env.TM_VERSION }} run: |-
echo 'GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}}' > .release-env
- name: release publish
run: make release

View File

@ -1,56 +1,109 @@
---
project_name: ethermint
env:
- GO111MODULE=on
before: before:
hooks: hooks:
- go mod tidy - go mod download
builds: builds:
- main: ./cmd/ethermintd - id: "ethermintd-darwin"
id: "ethermintd" main: ./cmd/ethermintd
binary: ethermintd binary: bin/ethermintd
mod_timestamp: "{{ .CommitTimestamp }}"
flags:
- -tags=netgo ledger
- -trimpath
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=1
ldflags: - CC=o64-clang
- -s -w -X main.commit={{.Commit}} -X main.date={{ .CommitDate }} -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{ .Version }} -X github.com/cosmos/cosmos-sdk/version.Commit={{ .Commit }} -X github.com/cosmos/cosmos-sdk/version.BuildTags=netgo,ledger -X github.com/tendermint/tendermint/version.TMCoreSemVer={{ .Env.TM_VERSION }} - CXX=o64-clang++
goos: goos:
- darwin - darwin
goarch:
- amd64
flags:
- -tags=cgo
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}}
- id: "ethermintd-darwin-arm64"
main: ./cmd/ethermintd
binary: bin/ethermintd
env:
- CGO_ENABLED=1
- CC=oa64-clang
- CXX=oa64-clang++
goos:
- darwin
goarch:
- arm64
flags:
- -tags=cgo
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}}
- id: "ethermintd-linux"
main: ./cmd/ethermintd
binary: bin/ethermintd
env:
- CGO_ENABLED=1
- CC=gcc
- CXX=g++
goos:
- linux - linux
goarch: goarch:
- amd64 - amd64
- arm flags:
- -tags=cgo
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}}
- id: "ethermintd-linux-arm64"
main: ./cmd/ethermintd
binary: bin/ethermintd
env:
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++
goos:
- linux
goarch:
- arm64 - arm64
flags:
- -tags=cgo
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}}
- id: "ethermintd-windows"
main: ./cmd/ethermintd
binary: bin/ethermintd
env:
- CGO_ENABLED=1
- CC=x86_64-w64-mingw32-gcc
- CXX=x86_64-w64-mingw32-g++
goos:
- windows
goarch:
- amd64
flags:
- -tags=cgo
- -buildmode=exe
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=ethermint -X github.com/cosmos/cosmos-sdk/version.AppName=ethermintd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}}
archives: archives:
- format: tar.gz - name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
wrap_in_directory: true replacements:
darwin: Darwin
linux: Linux
windows: Windows
amd64: x86_64
format_overrides: format_overrides:
- goos: windows - goos: windows
format: zip format: zip
name_template: "{{ .Binary }}-v{{ .Version }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" builds:
files: - ethermintd-darwin
- LICENSE - ethermintd-darwin-arm64
- README.md - ethermintd-windows
- ethermintd-linux
release: - ethermintd-linux-arm64
github:
owner: tharsis
name: ethermint
name_template: "v{{.Version}}"
checksum: checksum:
name_template: SHA256SUMS-v{{.Version}}.txt name_template: 'checksums.txt'
algorithm: sha256
snapshot:
name_template: SNAPSHOT-{{ .Commit }}
changelog: changelog:
skip: true sort: asc
filters:
exclude:
- '^docs:'
- '^test:'
snapshot:
name_template: "{{ .Tag }}-next"

View File

@ -148,6 +148,43 @@ build-all: tools build lint test
.PHONY: distclean clean build-all .PHONY: distclean clean build-all
###############################################################################
### Releasing ###
###############################################################################
PACKAGE_NAME:=github.com/tharsis/ethermint
GOLANG_CROSS_VERSION = v1.17.1
GOPATH ?= '$(HOME)/go'
release-dry-run:
docker run \
--rm \
--privileged \
-e CGO_ENABLED=1 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-v ${GOPATH}/pkg:/go/pkg \
-w /go/src/$(PACKAGE_NAME) \
ghcr.io/troian/golang-cross:${GOLANG_CROSS_VERSION} \
--rm-dist --skip-validate --skip-publish
release:
@if [ ! -f ".release-env" ]; then \
echo "\033[91m.release-env is required for release\033[0m";\
exit 1;\
fi
docker run \
--rm \
--privileged \
-e CGO_ENABLED=1 \
--env-file .release-env \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-w /go/src/$(PACKAGE_NAME) \
ghcr.io/troian/golang-cross:${GOLANG_CROSS_VERSION} \
release --rm-dist --skip-validate
.PHONY: release-dry-run release
############################################################################### ###############################################################################
### Tools & Dependencies ### ### Tools & Dependencies ###
############################################################################### ###############################################################################