/
githubmirror
/
ignition
Обзор
Документация
Войти
/
githubmirror
/
ignition
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
build
114 строк
3 KB
Steven Presti
*: update build script and Makefile for subcommand format
28 июл 2026, 23:14
28 июл 2026, 23:14
23a388b
Код
Авторство
О чём код?
#!/usr/bin/env bash set -eu print_usage() { echo "Usage: $0 [ignition|ignition-validate|ignition-validate-cross|butane|butane-cross]" >&2 } if [ $# -eq 0 ]; then print_usage exit 1 fi export GO111MODULE=on NAME="ignition" ORG_PATH="github.com/coreos" REPO_PATH="${ORG_PATH}/${NAME}/v2" export GOFLAGS=-mod=vendor GLDFLAGS=${GLDFLAGS:-} if [ -z "${VERSION:-}" ]; then VERSION=$(git describe --dirty --always) echo "Using version from git: ${VERSION}" fi GLDFLAGS+=" -X github.com/coreos/ignition/v2/internal/version.Raw=${VERSION}" eval $(go env) if [ -z ${BIN_PATH+a} ]; then export BIN_PATH=${PWD}/bin/ fi export CGO_ENABLED=1 ignition() { local name="ignition" echo "Building ${name} ${GOEXPERIMENT:+with GOEXPERIMENT=${GOEXPERIMENT}}..." # clean the cache since cgo isn't correctly handled by gocache. go clean -cache -testcache go build -buildmode=pie -ldflags "${GLDFLAGS}" -o "${BIN_PATH}/${name}" ${REPO_PATH}/internal } ignition_validate() { local name="ignition-validate" echo "Building ${name}..." go build -ldflags "${GLDFLAGS}" -o "${BIN_PATH}/${name}" ${REPO_PATH}/validate } build_cross_validate() { local goos=$1 goarch=$2 output=$3 echo "Building ${output}..." CGO_ENABLED=0 GOARCH=${goarch} GOOS=${goos} go build -ldflags "${GLDFLAGS}" -a -v -x -o "${BIN_PATH}/${output}" ${REPO_PATH}/validate } ignition_validate_cross() { build_cross_validate linux arm64 ignition-validate-aarch64-unknown-linux-gnu-static build_cross_validate darwin arm64 ignition-validate-aarch64-apple-darwin build_cross_validate linux ppc64le ignition-validate-ppc64le-unknown-linux-gnu-static build_cross_validate linux s390x ignition-validate-s390x-unknown-linux-gnu-static build_cross_validate linux amd64 ignition-validate-x86_64-unknown-linux-gnu-static build_cross_validate darwin amd64 ignition-validate-x86_64-apple-darwin build_cross_validate windows amd64 ignition-validate-x86_64-pc-windows-gnu.exe } butane() { local name="butane" local butane_ldflags="-w -X github.com/coreos/ignition/v2/butane/internal/version.Raw=${VERSION}" echo "Building ${name}..." CGO_ENABLED=0 go build -ldflags "${butane_ldflags}" -o "${BIN_PATH}/${name}" ${REPO_PATH}/butane/internal } build_cross_butane() { local goos=$1 goarch=$2 output=$3 local butane_ldflags="-w -X github.com/coreos/ignition/v2/butane/internal/version.Raw=${VERSION}" echo "Building ${output}..." CGO_ENABLED=0 GOARCH=${goarch} GOOS=${goos} go build -ldflags "${butane_ldflags}" -a -v -x -o "${BIN_PATH}/${output}" ${REPO_PATH}/butane/internal } butane_cross() { build_cross_butane linux arm64 butane-aarch64-unknown-linux-gnu-static build_cross_butane darwin arm64 butane-aarch64-apple-darwin build_cross_butane linux ppc64le butane-ppc64le-unknown-linux-gnu-static build_cross_butane linux s390x butane-s390x-unknown-linux-gnu-static build_cross_butane linux amd64 butane-x86_64-unknown-linux-gnu-static build_cross_butane darwin amd64 butane-x86_64-apple-darwin build_cross_butane windows amd64 butane-x86_64-pc-windows-gnu.exe } case "$1" in ignition) ignition ;; ignition-validate) ignition_validate ;; ignition-validate-cross) ignition_validate_cross ;; butane) butane ;; butane-cross) butane_cross ;; *) echo "Unknown command: $1" >&2 print_usage exit 1 ;; esac