diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 05451e03aa..9288b0cf1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,16 +16,24 @@ jobs: # uses: actions/setup-go@v3.3.0 uses: actions/setup-go@v2 with: - go-version: 1.17.x + go-version: "1.17.x" - name: Build Dogechain - run: go build -ldflags="-X \"github.com/dogechain-lab/dogechain/versioning.Version=${GITHUB_REF_NAME}\" -X \"github.com/dogechain-lab/dogechain/versioning.Commit=${GITHUB_SHA}\"" -a -o dogechain . && tar -czvf dogechain.tar.gz dogechain + run: | + go build -a -o dogechain -ldflags="\ + -X 'github.com/dogechain-lab/dogechain/versioning.Version=${GITHUB_REF_NAME}' \ + -X 'github.com/dogechain-lab/dogechain/versioning.Commit=${GITHUB_COMMIT_HASH}' \ + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime=${GITHUB_BUILT_AT}' \ + -extldflags '"-Wl,-z,stack-size=0x800000" "-static"' "\ + -tags 'osusergo netgo static_build' && tar -czvf dogechain.tar.gz dogechain env: CGO_ENABLED: 0 CC: gcc CXX: g++ GOARC: amd64 GOOS: linux + GITHUB_COMMIT_HASH: ${{ github.sha }} + GITHUB_BUILT_AT: ${{ github.event.head_commit.timestamp }} - name: Extract branch name # if: github.event_name != 'pull_request' diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b86f6d0efc..74316dac1b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -19,7 +19,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: 1.17.x + go-version: "1.17.x" - name: Run tests run: make test-e2e # - name: Archive test logs diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7e8e2b5b7c..6eae0ec9a9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -20,7 +20,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: 1.17.x + go-version: "1.17.x" - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34f85cbf5b..0c15834c9a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: docker run \ --rm \ --privileged \ - -e CGO_ENABLED=1 \ + -e CGO_ENABLED=0 \ -e GITHUB_TOKEN \ -e DOCKER_USERNAME \ -e DOCKER_PASSWORD \ @@ -39,11 +39,11 @@ jobs: -v /var/run/docker.sock:/var/run/docker.sock \ -v `pwd`:/go/src/$(PACKAGE_NAME) \ -w /go/src/$(PACKAGE_NAME) \ - ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ + ghcr.io/goreleaser/goreleaser-cross:v${GOLANG_CROSS_VERSION} \ --rm-dist --skip-validate env: PACKAGE_NAME: github.com/dogechain-lab/dogechain - GOLANG_CROSS_VERSION: v1.17.9 + GOLANG_CROSS_VERSION: "1.17.9" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a3b10e8f3..17ae6d8bdf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v2 with: - go-version: 1.17.x + go-version: "1.17.x" - name: Checkout Code uses: actions/checkout@v3 diff --git a/.goreleaser.yml b/.goreleaser.yml index a4268bbae2..7d3758d65b 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -16,7 +16,15 @@ builds: env: - CC=o64-clang - CXX=o64-clang++ - ldflags: -s -w -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + ldflags: > + -s -w + -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{.Version}}' + -X 'github.com/dogechain-lab/dogechain/versioning.Commit={{ .Commit }}' + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime={{ .Date }}' + tags: + - osusergo + - netgo + - static_build - id: darwin-arm64 main: ./main.go @@ -28,7 +36,15 @@ builds: env: - CC=oa64-clang - CXX=oa64-clang++ - ldflags: -s -w -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + ldflags: > + -s -w + -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + -X 'github.com/dogechain-lab/dogechain/versioning.Commit={{ .Commit }}' + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime={{ .Date }}' + tags: + - osusergo + - netgo + - static_build - id: linux-amd64 main: ./main.go @@ -40,9 +56,17 @@ builds: env: - CC=gcc - CXX=g++ - ldflags: - # We need to build a static binary because we are building in a glibc based system and running in a musl container - -s -w -linkmode external -extldflags "-static" -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + # We need to build a static binary because we are building in a glibc based system and running in a musl container + ldflags: > + -s -w + -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + -X 'github.com/dogechain-lab/dogechain/versioning.Commit={{ .Commit }}' + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime={{ .Date }}' + -extldflags '"-Wl,-z,stack-size=0x800000" "-static"' + tags: + - osusergo + - netgo + - static_build - id: linux-arm64 main: ./main.go @@ -54,9 +78,16 @@ builds: env: - CC=aarch64-linux-gnu-gcc - CXX=aarch64-linux-gnu-g++ - ldflags: - # We need to build a static binary because we are building in a glibc based system and running in a musl container - -s -w -linkmode external -extldflags "-static" -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + ldflags: > + -s -w + -X 'github.com/dogechain-lab/dogechain/versioning.Version=v{{ .Version }}' + -X 'github.com/dogechain-lab/dogechain/versioning.Commit={{ .Commit }}' + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime={{ .Date }}' + -extldflags '"-Wl,-z,stack-size=0x800000" "-static"' + tags: + - osusergo + - netgo + - static_build archives: - files: diff --git a/Dockerfile.release b/Dockerfile.release index ee5fb5ebf5..9c7783bdb4 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -1,4 +1,4 @@ -FROM alpine:3.14 +FROM alpine:3.17 RUN set -x \ && apk add --update --no-cache \ diff --git a/Makefile b/Makefile index 15287884ca..0cf6dea467 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +CGO_ENABLED ?= 0 .PHONY: download-spec-tests download-spec-tests: @@ -24,7 +25,8 @@ build: go build -o dogechain -ldflags="\ -X 'github.com/dogechain-lab/dogechain/versioning.Version=$(LATEST_VERSION)'\ -X 'github.com/dogechain-lab/dogechain/versioning.Commit=$(COMMIT_HASH)'\ - -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime=$(DATE)'" \ + -X 'github.com/dogechain-lab/dogechain/versioning.BuildTime=$(DATE)' "\ + -tags 'osusergo netgo static_build' \ main.go .PHONY: lint