-
-
Notifications
You must be signed in to change notification settings - Fork 591
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: use goreleaser to cross-compile binaries for all platforms and…
… archs The main motivation behind it is because "gox" is unmaintained and archived and it does not support "linux/riscv64" as a target. Right now, goreleaser is only building the binaries, and I've tried to replicate the exact same way the old script does. In the future, if so desired, goreleaser could be used to further automate the build and release pipeline by creating the release in GitHub.
- Loading branch information
Showing
3 changed files
with
59 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,7 +40,7 @@ jobs: | |
- name: Cross compile | ||
run: | | ||
sudo apt-get install rhash -y | ||
go install github.com/mitchellh/[email protected] | ||
go install github.com/goreleaser/goreleaser/v2@latest | ||
mkdir -p build | ||
cp yq.1 build/yq.1 | ||
./scripts/xcompile.sh | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
version: 2 | ||
|
||
dist: build | ||
|
||
builds: | ||
- id: yq | ||
|
||
binary: yq_{{ .Os }}_{{ .Arch }} | ||
|
||
ldflags: | ||
- -s -w | ||
|
||
env: | ||
- CGO_ENABLED=0 | ||
|
||
targets: | ||
- darwin_amd64 | ||
- darwin_arm64 | ||
- freebsd_386 | ||
- freebsd_amd64 | ||
- freebsd_arm | ||
- linux_386 | ||
- linux_amd64 | ||
- linux_arm | ||
- linux_arm64 | ||
- linux_mips | ||
- linux_mips64 | ||
- linux_mips64le | ||
- linux_mipsle | ||
- linux_ppc64 | ||
- linux_ppc64le | ||
- linux_s390x | ||
- netbsd_386 | ||
- netbsd_amd64 | ||
- netbsd_arm | ||
- openbsd_386 | ||
- openbsd_amd64 | ||
- windows_386 | ||
- windows_amd64 | ||
|
||
no_unique_dist_dir: true | ||
|
||
release: | ||
disable: true | ||
skip_upload: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,20 @@ | ||
#!/bin/bash | ||
set -e | ||
# you may need to go install github.com/mitchellh/[email protected] first | ||
echo $VERSION | ||
CGO_ENABLED=0 gox -ldflags "-s -w ${LDFLAGS}" -output="build/yq_{{.OS}}_{{.Arch}}" --osarch="darwin/amd64 darwin/arm64 freebsd/386 freebsd/amd64 freebsd/arm linux/386 linux/amd64 linux/arm linux/arm64 linux/mips linux/mips64 linux/mips64le linux/mipsle linux/ppc64 linux/ppc64le linux/s390x netbsd/386 netbsd/amd64 netbsd/arm openbsd/386 openbsd/amd64 windows/386 windows/amd64" | ||
|
||
set -eo pipefail | ||
|
||
# You may need to go install github.com/goreleaser/goreleaser/v2@latest first | ||
GORELEASER="goreleaser build --clean" | ||
if [ -z "$CI" ]; then | ||
GORELEASER+=" --snapshot" | ||
fi | ||
|
||
$GORELEASER | ||
|
||
cd build | ||
|
||
# Remove artifacts from goreleaser | ||
rm artifacts.json config.yaml metadata.json | ||
|
||
find . -executable -type f | xargs -I {} tar czvf {}.tar.gz {} yq.1 -C ../scripts install-man-page.sh | ||
tar czvf yq_man_page_only.tar.gz yq.1 -C ../scripts install-man-page.sh | ||
|
||
|