local archs = [ 'aarch64-unknown-linux-gnu', 'aarch64-unknown-linux-musl', 'x86_64-pc-windows-gnu', 'x86_64-unknown-linux-gnu', 'x86_64-unknown-linux-musl', ]; local getStepName(arch) = 'check ' + arch; local buildForArch(arch) = { name: getStepName(arch), image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim', volumes: [{ name: 'dockersock', path: '/var/run', }], commands: [ 'echo Hello World from Jsonnet on ' + arch + '!', 'while ! docker image ls; do sleep 1; done', 'cross build --release --target ' + arch, 'rm -rf target/' + arch + '/release/{build,deps,examples,incremental}', 'ls -lah target/' + arch + '/release', ], environment: { CROSS_REMOTE: true, }, }; local check_steps() = [ buildForArch(a) for a in archs ]; { kind: 'pipeline', type: 'docker', name: 'default', platform: { arch: 'amd64', }, steps: check_steps() + [ { name: 'build', image: 'rust:1.62', commands: [ 'ls -lah target/', ], // depends_on: [getStepName(a) for a in archs], }, ], services: [{ name: 'docker', image: 'docker:dind', privileged: true, volumes: [{ name: 'dockersock', path: '/var/run', }], }], volumes: [{ name: 'dockersock', temp: {}, }], image_pull_secrets: ['docker_private_repo'], }