diff --git a/.github/workflows/release-ghcr.yml b/.github/workflows/release-ghcr.yml index e39ae4ae4..b6904c68a 100644 --- a/.github/workflows/release-ghcr.yml +++ b/.github/workflows/release-ghcr.yml @@ -45,7 +45,7 @@ jobs: - name: docker build run: | docker buildx create --use - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/s390x -t ${{ steps.prepare.outputs.ref }} --push . + docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/s390x,linux/ppc64le -t ${{ steps.prepare.outputs.ref }} --push . - name: clear if: always() run: | diff --git a/.goreleaser.yml b/.goreleaser.yml index f2a4ee94b..3bb03d4bd 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -19,6 +19,8 @@ builds: binary: ./oras env: - CGO_ENABLED=0 + flags: + - -trimpath goos: - darwin - linux @@ -28,6 +30,8 @@ builds: - arm64 - arm - s390x + - ppc64le + - riscv64 goarm: - '7' ignore: @@ -40,7 +44,8 @@ builds: ldflags: # one-line ldflags to bypass the goreleaser bugs # the git tree state is guaranteed to be clean by goreleaser - - -w -X oras.land/oras/internal/version.Version={{.Version}} -X oras.land/oras/internal/version.GitCommit={{.FullCommit}} -X oras.land/oras/internal/version.BuildMetadata= -X oras.land/oras/internal/version.GitTreeState=clean + - -w -s -buildid= -X oras.land/oras/internal/version.Version={{.Version}} -X oras.land/oras/internal/version.GitCommit={{.FullCommit}} -X oras.land/oras/internal/version.BuildMetadata= -X oras.land/oras/internal/version.GitTreeState=clean + mod_timestamp: "{{ .CommitTimestamp }}" archives: - format: tar.gz diff --git a/Makefile b/Makefile index ffd8d526c..057ef9aaf 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null) GIT_DIRTY = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean") GO_EXE = go -TARGET_OBJS ?= checksums.txt darwin_amd64.tar.gz darwin_arm64.tar.gz linux_amd64.tar.gz linux_arm64.tar.gz linux_armv7.tar.gz linux_s390x.tar.gz windows_amd64.zip +TARGET_OBJS ?= checksums.txt darwin_amd64.tar.gz darwin_arm64.tar.gz linux_amd64.tar.gz linux_arm64.tar.gz linux_armv7.tar.gz linux_s390x.tar.gz linux_ppc64le.tar.gz linux_riscv64.tar.gz windows_amd64.zip LDFLAGS = -w ifdef VERSION @@ -50,8 +50,11 @@ clean: ## clean up build .PHONY: build build: build-linux build-mac build-windows ## build for all targets +.PHONY: build-linux-all +build-linux-all: build-linux-amd64 build-linux-arm64 build-linux-arm-v7 build-linux-s390x build-linux-ppc64le build-linux-riscv64 ## build all linux architectures + .PHONY: build-linux -build-linux: build-linux-amd64 build-linux-arm64 build-linux-arm-v7 build-linux-s390x ## build all linux architectures +build-linux: build-linux-amd64 build-linux-arm64 .PHONY: build-linux-amd64 build-linux-amd64: ## build for linux amd64 @@ -73,6 +76,16 @@ build-linux-s390x: ## build for linux s390x GOARCH=s390x CGO_ENABLED=0 GOOS=linux $(GO_EXE) build -v --ldflags="$(LDFLAGS)" \ -o bin/linux/s390x/$(CLI_EXE) $(CLI_PKG) +.PHONY: build-linux-ppc64le +build-linux-ppc64le: ## build for linux ppc64le + GOARCH=ppc64le CGO_ENABLED=0 GOOS=linux $(GO_EXE) build -v --ldflags="$(LDFLAGS)" \ + -o bin/linux/ppc64le/$(CLI_EXE) $(CLI_PKG) + +.PHONY: build-linux-riscv64 +build-linux-riscv64: ## build for linux riscv64 + GOARCH=riscv64 CGO_ENABLED=0 GOOS=linux $(GO_EXE) build -v --ldflags="$(LDFLAGS)" \ + -o bin/linux/riscv64/$(CLI_EXE) $(CLI_PKG) + .PHONY: build-mac build-mac: build-mac-arm64 build-mac-amd64 ## build all mac architectures @@ -138,4 +151,4 @@ teste2e-covdata: ## test e2e coverage .PHONY: help help: ## Display this help - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[%\/0-9A-Za-z_-]+:.*?##/ { printf " \033[36m%-45s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) \ No newline at end of file + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[%\/0-9A-Za-z_-]+:.*?##/ { printf " \033[36m%-45s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)