Add arm64 to releases

This moves all the release builds into a Dockerfile which is a bit
cleaner for setting up our build environment.

Non-linux/amd64 builds are cross-compiled.
Currently onlinux linux/amd64, linux/arm64, and windows/amd64 are
supported, but is easy to add more, provided their is a cross-compile
toolchain available for it.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
Brian Goff
2021-10-22 00:49:20 +00:00
parent 7ad570964b
commit 27d7c50384
7 changed files with 180 additions and 160 deletions

View File

@@ -65,10 +65,10 @@ calculate_subnet() {
# nat already exists on the Windows VM, the subnet and gateway
# we specify should match that.
gateway="$(powershell -c "(Get-NetIPAddress -InterfaceAlias 'vEthernet (nat)' -AddressFamily IPv4).IPAddress")"
prefix_len="$(powershell -c "(Get-NetIPAddress -InterfaceAlias 'vEthernet (nat)' -AddressFamily IPv4).PrefixLength")"
: ${GATEWAY:="$(powershell -c "(Get-NetIPAddress -InterfaceAlias 'vEthernet (nat)' -AddressFamily IPv4).IPAddress")"}
: ${PREFIX_LEN:="$(powershell -c "(Get-NetIPAddress -InterfaceAlias 'vEthernet (nat)' -AddressFamily IPv4).PrefixLength")"}
subnet="$(calculate_subnet "$gateway" "$prefix_len")"
subnet="$(calculate_subnet "$GATEWAY" "$PREFIX_LEN")"
# The "name" field in the config is used as the underlying
# network type right now (see
@@ -85,7 +85,7 @@ bash -c 'cat >"'"${CNI_CONFIG_DIR}"'"/0-containerd-nat.conf <<EOF
"subnet": "'$subnet'",
"routes": [
{
"GW": "'$gateway'"
"GW": "'$GATEWAY'"
}
]
},

View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Copyright The containerd Authors.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
: ${RUNHCS_VERSION:="$(grep 'Microsoft/hcsshim ' go.mod | awk '{print $2}')"}
: ${RUNHCS_REPO:="https://github.com/Microsoft/hcsshim.git"}
: ${DESTDIR:=''}
: ${GOOS:="windows"}
tmpdir="$(mktemp -d)"
cleanup() {
rm -rf "$tmpdir"
}
trap 'cleanup' EXIT
export GOOS
(
set -e -x
cd "$tmpdir"
git init .
git remote add origin "$RUNHCS_REPO"
git fetch --tags --depth=1 origin ${RUNHCS_VERSION}
git checkout "refs/tags/${RUNHCS_VERSION}" || git checkout "refs/heads/${RUNHCS_VERSION}" || git checkout "${RUNHCS_VERSION}"
GO111MODULE=on go build -mod=vendor -o "${DESTDIR}/containerd-shim-runhcs-v1.exe" ./cmd/containerd-shim-runhcs-v1
)