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 + '!', 'cross check --target ' + arch, 'cross build --release --target' + arch, 'ls -lah target' + arch + '/release', ], }; 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: {}, }], }