mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-11 01:09:54 +00:00
Allow cross compiling for other architecture
This commit is contained in:
parent
94e7a14662
commit
11f2ade9f3
@ -17,6 +17,7 @@ VERSION=
|
|||||||
DISTRIBUTION=
|
DISTRIBUTION=
|
||||||
DO_SIGN=
|
DO_SIGN=
|
||||||
PASSPHRASE=
|
PASSPHRASE=
|
||||||
|
PLATFORM="$(uname -m)"
|
||||||
|
|
||||||
show_help() {
|
show_help() {
|
||||||
echo " usage: $(basename "$0") VERSION [options...]"
|
echo " usage: $(basename "$0") VERSION [options...]"
|
||||||
@ -39,6 +40,7 @@ show_help() {
|
|||||||
echo " --ppa PPA Push resultant files to indicated ppa. This option should be given along with a signing key."
|
echo " --ppa PPA Push resultant files to indicated ppa. This option should be given along with a signing key."
|
||||||
echo " Otherwise, the server could reject the package building. Default is set to 'rmescandon/yq'"
|
echo " Otherwise, the server could reject the package building. Default is set to 'rmescandon/yq'"
|
||||||
echo " --passphrase PASSPHRASE Passphrase to decrypt the signage key"
|
echo " --passphrase PASSPHRASE Passphrase to decrypt the signage key"
|
||||||
|
echo " --platform PLATFORM Targeting platform. Default to $(uname -m)"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
# read input args
|
# read input args
|
||||||
@ -83,6 +85,10 @@ while [ $# -ne 0 ]; do
|
|||||||
shift
|
shift
|
||||||
PASSPHRASE="$1"
|
PASSPHRASE="$1"
|
||||||
;;
|
;;
|
||||||
|
--platform)
|
||||||
|
shift
|
||||||
|
PLATFORM="$1"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if [ -z "$VERSION" ]; then
|
if [ -z "$VERSION" ]; then
|
||||||
VERSION="$1"
|
VERSION="$1"
|
||||||
@ -95,6 +101,19 @@ done
|
|||||||
|
|
||||||
[ -n "$VERSION" ] || (echo "error - you have to provide a version" && show_help)
|
[ -n "$VERSION" ] || (echo "error - you have to provide a version" && show_help)
|
||||||
|
|
||||||
|
case $PLATFORM in
|
||||||
|
x86_64)
|
||||||
|
PLATFORM="amd64"
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
PLATFORM="arm64"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "error - unsupported platform $PLATFORM "
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [ -n "$OUTPUT" ]; then
|
if [ -n "$OUTPUT" ]; then
|
||||||
OUTPUT="$(realpath "$OUTPUT")"
|
OUTPUT="$(realpath "$OUTPUT")"
|
||||||
mkdir -p "$OUTPUT"
|
mkdir -p "$OUTPUT"
|
||||||
@ -213,8 +232,8 @@ FROM base as golang
|
|||||||
RUN apt-get -qq -y --no-install-recommends install \
|
RUN apt-get -qq -y --no-install-recommends install \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
wget
|
wget
|
||||||
RUN wget "https://golang.org/dl/go${GOVERSION}.linux-amd64.tar.gz" -4
|
RUN wget "https://golang.org/dl/go${GOVERSION}.linux-${PLATFORM}.tar.gz" -4
|
||||||
RUN tar -C /usr/local -xvf "go${GOVERSION}.linux-amd64.tar.gz"
|
RUN tar -C /usr/local -xvf "go${GOVERSION}.linux-${PLATFORM}.tar.gz"
|
||||||
|
|
||||||
FROM base
|
FROM base
|
||||||
RUN apt-get -qq -y --no-install-recommends install \
|
RUN apt-get -qq -y --no-install-recommends install \
|
||||||
@ -251,9 +270,9 @@ VOLUME ["/home/yq/src"]
|
|||||||
VOLUME ["/home/yq/output"]
|
VOLUME ["/home/yq/output"]
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
DOCKER_BUILDKIT=1 docker build --pull -f "${blddir}"/Dockerfile -t "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" .
|
DOCKER_BUILDKIT=1 docker build --platform linux/${PLATFORM} --pull -f "${blddir}"/Dockerfile -t "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" .
|
||||||
|
|
||||||
docker run --rm -i \
|
docker run --rm -i --platform linux/${PLATFORM} \
|
||||||
-v "${srcdir}":/home/yq/src:delegated \
|
-v "${srcdir}":/home/yq/src:delegated \
|
||||||
-v "${OUTPUT}":/home/yq/output \
|
-v "${OUTPUT}":/home/yq/output \
|
||||||
-v "${HOME}"/.gnupg:/home/yq/.gnupg:delegated \
|
-v "${HOME}"/.gnupg:/home/yq/.gnupg:delegated \
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user