Update build to use zigbuild instead of cross
continuous-integration/drone/push Build was killed Details

Signed-off-by: Jacob Kiers <code@kiers.eu>
This commit is contained in:
Jacob Kiers 2023-06-10 12:51:32 +02:00
parent 054324cdd7
commit 3b5016b887
2 changed files with 47 additions and 9 deletions

View File

@ -1,5 +1,5 @@
local executableName = 'newsletter-to-web'; local executableName = 'newsletter-to-web';
local cross_image = 'img.kie.rs/jjkiers/rust-dind-cross:1.66-full'; local build_image = 'rust:1.70';
local archs = [ local archs = [
{ target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' }, { target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' },
@ -15,7 +15,7 @@ local targetExecutableName(arch) = executableName + '-' + arch.target + if std.l
local add_build_steps() = [ local add_build_steps() = [
{ {
name: getStepName(arch), name: getStepName(arch),
image: cross_image, image: build_image,
volumes: [ volumes: [
{ {
name: 'dockersock', name: 'dockersock',
@ -24,13 +24,12 @@ local add_build_steps() = [
], ],
commands: [ commands: [
'echo Hello World from Jsonnet on ' + arch.target + '!', 'echo Hello World from Jsonnet on ' + arch.target + '!',
'cross build --release --target ' + arch.target, 'rustup target add ' + arch.target,
'scripts/prepare-build.sh',
'cross zigbuild --release --target ' + arch.target,
'cp target/' + arch.target + '/release/' + builtExecutableName(arch) + ' artifacts/' + targetExecutableName(arch), 'cp target/' + arch.target + '/release/' + builtExecutableName(arch) + ' artifacts/' + targetExecutableName(arch),
'rm -rf target/' + arch.target + '/release/*', 'rm -rf target/' + arch.target + '/release/*',
], ],
environment: {
CROSS_REMOTE: true,
},
depends_on: ['Wait for Docker'], depends_on: ['Wait for Docker'],
} }
for arch in archs for arch in archs
@ -46,10 +45,10 @@ local add_build_steps() = [
steps: steps:
[{ [{
name: 'Wait for Docker', name: 'Wait for Docker',
image: cross_image, image: build_image,
commands: [ commands: [
'mkdir artifacts', 'mkdir artifacts',
'echo Using image: ' + cross_image, 'echo Using image: ' + build_image,
'while ! docker image ls; do sleep 1; done', 'while ! docker image ls; do sleep 1; done',
'cargo --version', 'cargo --version',
'rustc --version', 'rustc --version',
@ -68,7 +67,7 @@ local add_build_steps() = [
[ [
{ {
name: 'Show built artifacts', name: 'Show built artifacts',
image: cross_image, image: build_image,
commands: [ commands: [
'ls -lah artifacts', 'ls -lah artifacts',
], ],

39
scripts/prepare-build.sh Executable file
View File

@ -0,0 +1,39 @@
#!/usr/bin/env bash
set -x
apt-get update && apt-get install -y jq curl
# Install minisign
wget https://github.com/jedisct1/minisign/releases/download/0.11/minisign-0.11-linux.tar.gz -O - | tar --strip-components 2 -C /usr/local/bin/ -vxzf - minisign-linux/x86_64/minisign
# Installing zig, checking its validity
mkdir -p /usr/local/bin
wget https://ziglang.org/download/index.json -O zig-versions.json
echo "$(jq -r '.master."x86_64-linux".shasum' zig-versions.json) zig.tar.xz" > zig.tar.xz.shasum
wget -c $(jq -r '.master."x86_64-linux".tarball' zig-versions.json) -O zig.tar.xz
wget -c "$(jq -r '.master."x86_64-linux".tarball' zig-versions.json).minisig" -O zig.tar.xz.minisig
sha256sum -c zig.tar.xz.shasum
if [ $? -ne 0 ]; then
echo "Error in SHA256 hash!"
exit 1
else
echo "SHA256 hash OK"
fi
minisign -P 'RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U' -Vm zig.tar.xz
if [ $? -ne 0 ]; then
echo "Error in signature!"
exit 1
else
echo "Signature OK"
fi
tar -C /usr/local/bin --strip-components 1 -xf zig.tar.xz
rm -rf zig*
# Installing binstall and zigbuild
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
cargo binstall -y cargo-zigbuild