local archs = [ { target: 'aarch64-unknown-linux-gnu', short: 'arm64-gnu' }, { target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' }, { target: 'x86_64-pc-windows-gnu', short: 'windows-amd64' }, { target: 'x86_64-unknown-linux-gnu', short: 'amd64-gnu' }, { target: 'x86_64-unknown-linux-musl', short: 'amd64-musl' }, ]; local getStepName(arch) = 'Build for ' + arch.short; local getExeName(arch) = if std.startsWith(arch.short, 'windows') then '.exe' else ''; local add_build_steps() = [ { name: getStepName(arch), image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim', volumes: [ { name: 'dockersock', path: '/var/run', }, { name: 'rustup', path: '/usr/local/rustup', }, ], commands: [ 'echo Hello World from Jsonnet on ' + arch.target + '!', 'cross build --release --target ' + arch.target, 'cp target/' + arch.target + '/release/drone-test' + getExeName(arch) + ' artifacts/drone-test-' + arch.short + getExeName(arch), 'rm -rf target/' + arch.target + '/release/*', ], environment: { CROSS_REMOTE: true, }, depends_on: ['Wait for Docker'], } for arch in archs ]; { kind: 'pipeline', type: 'vm', name: 'default', pool: { use: 'drone-ci-pool', }, platform: { arch: 'amd64', }, steps: [ { name: 'Hello World!', image: 'bash:latest', commands: [ 'Hello from Pipeline VM', ], }, { name: 'Hello World!', image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim', commands: [ 'cargo run', ], }, ], image_pull_secrets: ['docker_private_repo'], }