| 
									
										
										
										
											2022-08-10 23:10:39 +00:00
										 |  |  | local archs = [
 | 
					
						
							| 
									
										
										
										
											2022-09-07 20:50:04 +02:00
										 |  |  |   { target: 'aarch64-unknown-linux-gnu', short: 'arm64-gnu' },
 | 
					
						
							|  |  |  |   { target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:15:58 +02:00
										 |  |  |   { target: 'x86_64-pc-windows-gnu', short: 'windows-amd64' },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 20:50:04 +02:00
										 |  |  |   { target: 'x86_64-unknown-linux-gnu', short: 'amd64-gnu' },
 | 
					
						
							|  |  |  |   { target: 'x86_64-unknown-linux-musl', short: 'amd64-musl' },
 | 
					
						
							| 
									
										
										
										
											2022-08-10 23:11:42 +00:00
										 |  |  | ];
 | 
					
						
							| 
									
										
										
										
											2022-08-10 23:10:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:18:38 +02:00
										 |  |  | local getStepName(arch) = 'Build for ' + arch.short;
 | 
					
						
							| 
									
										
										
										
											2022-08-10 23:10:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:15:58 +02:00
										 |  |  | local getExeName(arch) = if std.startsWith(arch.short, 'windows') then '.exe' else '';
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:10:29 +02:00
										 |  |  | 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,
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:15:58 +02:00
										 |  |  |       'cp target/' + arch.target + '/release/drone-test' + getExeName(arch) + ' artifacts/drone-test-' + arch.short + getExeName(arch),
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:18:38 +02:00
										 |  |  |       'rm -rf target/' + arch.target + '/release/*',
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:10:29 +02:00
										 |  |  |     ],
 | 
					
						
							|  |  |  |     environment: {
 | 
					
						
							|  |  |  |       CROSS_REMOTE: true,
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:10:07 +02:00
										 |  |  |     },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:18:38 +02:00
										 |  |  |     depends_on: ['Wait for Docker'],
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:10:29 +02:00
										 |  |  |   }
 | 
					
						
							|  |  |  |   for arch in archs
 | 
					
						
							| 
									
										
										
										
											2022-08-11 09:31:55 +02:00
										 |  |  | ];
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-10 22:46:48 +00:00
										 |  |  | {
 | 
					
						
							| 
									
										
										
										
											2022-08-11 09:31:55 +02:00
										 |  |  |   kind: 'pipeline',
 | 
					
						
							| 
									
										
										
										
											2022-12-02 21:20:24 +00:00
										 |  |  |   type: 'vm',
 | 
					
						
							| 
									
										
										
										
											2022-08-11 09:31:55 +02:00
										 |  |  |   name: 'default',
 | 
					
						
							| 
									
										
										
										
											2022-12-02 21:23:44 +00:00
										 |  |  |   pool: {
 | 
					
						
							| 
									
										
										
										
											2022-12-02 21:24:20 +00:00
										 |  |  |     use: 'drone-ci-pool',
 | 
					
						
							|  |  |  |   },
 | 
					
						
							| 
									
										
										
										
											2022-08-11 09:31:55 +02:00
										 |  |  |   platform: {
 | 
					
						
							|  |  |  |     arch: 'amd64',
 | 
					
						
							|  |  |  |   },
 | 
					
						
							|  |  |  |   steps:
 | 
					
						
							| 
									
										
										
										
											2022-08-20 20:24:12 +02:00
										 |  |  |     [{
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:18:38 +02:00
										 |  |  |       name: 'Wait for Docker',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 20:25:51 +02:00
										 |  |  |       image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:16:47 +02:00
										 |  |  |       commands: [
 | 
					
						
							|  |  |  |         'while ! docker image ls; do sleep 1; done',
 | 
					
						
							|  |  |  |         'docker info',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:23:48 +02:00
										 |  |  |         'docker pull hello-world:latest',
 | 
					
						
							| 
									
										
										
										
											2022-09-07 20:50:04 +02:00
										 |  |  |         'mkdir artifacts',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:16:47 +02:00
										 |  |  |       ],
 | 
					
						
							| 
									
										
										
										
											2022-08-20 20:27:22 +02:00
										 |  |  |       volumes: [{
 | 
					
						
							|  |  |  |         name: 'dockersock',
 | 
					
						
							|  |  |  |         path: '/var/run',
 | 
					
						
							|  |  |  |       }],
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:16:47 +02:00
										 |  |  |     }] +
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:10:29 +02:00
										 |  |  |     add_build_steps() +
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |     [
 | 
					
						
							|  |  |  |       {
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:18:38 +02:00
										 |  |  |         name: 'Show built artifacts',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 20:25:51 +02:00
										 |  |  |         image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |         commands: [
 | 
					
						
							| 
									
										
										
										
											2022-09-07 20:50:04 +02:00
										 |  |  |           'ls -lah artifacts',
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |         ],
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:00:41 +02:00
										 |  |  |         depends_on: [getStepName(a) for a in archs],
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:34:36 +02:00
										 |  |  |       {
 | 
					
						
							|  |  |  |         name: 'Create release on gitea',
 | 
					
						
							|  |  |  |         image: 'plugins/gitea-release',
 | 
					
						
							|  |  |  |         settings: {
 | 
					
						
							|  |  |  |           api_key: {
 | 
					
						
							|  |  |  |             from_secret: 'gitea_token',
 | 
					
						
							|  |  |  |           },
 | 
					
						
							|  |  |  |           base_url: 'https://code.kiers.eu',
 | 
					
						
							|  |  |  |           files: 'artifacts/*',
 | 
					
						
							|  |  |  |           checksum: 'sha256',
 | 
					
						
							|  |  |  |         },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:38:08 +02:00
										 |  |  |         when: {
 | 
					
						
							|  |  |  |           event: ['tag', 'promote'],
 | 
					
						
							|  |  |  |         },
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:42:06 +02:00
										 |  |  |         depends_on: ['Show built artifacts'],
 | 
					
						
							| 
									
										
										
										
											2022-09-07 22:34:36 +02:00
										 |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |     ],
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   services: [{
 | 
					
						
							|  |  |  |     name: 'docker',
 | 
					
						
							|  |  |  |     image: 'docker:dind',
 | 
					
						
							|  |  |  |     privileged: true,
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:23:48 +02:00
										 |  |  |     volumes: [
 | 
					
						
							|  |  |  |       {
 | 
					
						
							|  |  |  |         name: 'dockersock',
 | 
					
						
							|  |  |  |         path: '/var/run',
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       {
 | 
					
						
							|  |  |  |         name: 'docker-storage',
 | 
					
						
							|  |  |  |         path: '/var/lib/docker',
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |     ],
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:11:55 +02:00
										 |  |  |   }],
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:23:48 +02:00
										 |  |  |   volumes: [
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |       name: 'dockersock',
 | 
					
						
							|  |  |  |       temp: {},
 | 
					
						
							|  |  |  |     },
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |       name: 'docker-storage',
 | 
					
						
							|  |  |  |       host: {
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:57:02 +02:00
										 |  |  |         path: '/srv/drone/docker-dind-rust',
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:23:48 +02:00
										 |  |  |       },
 | 
					
						
							|  |  |  |     },
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:10:07 +02:00
										 |  |  |     {
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:23:55 +02:00
										 |  |  |       name: 'rustup',
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:10:07 +02:00
										 |  |  |       host: {
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:23:55 +02:00
										 |  |  |         path: '/srv/drone/rustup',
 | 
					
						
							| 
									
										
										
										
											2022-08-21 00:10:07 +02:00
										 |  |  |       },
 | 
					
						
							|  |  |  |     },
 | 
					
						
							| 
									
										
										
										
											2022-08-20 23:23:48 +02:00
										 |  |  |   ],
 | 
					
						
							| 
									
										
										
										
											2022-08-11 23:30:14 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   image_pull_secrets: ['docker_private_repo'],
 | 
					
						
							| 
									
										
										
										
											2022-08-11 09:31:55 +02:00
										 |  |  | }
 |