2024-02-22 21:31:17 +00:00
|
|
|
local executableName = 'l4p';
|
2024-06-22 12:33:01 +00:00
|
|
|
local build_image = 'img.kie.rs/jjkiers/rust-crossbuild:rust1.79.0-zig0.11.0-zig';
|
2023-08-23 17:29:29 +00:00
|
|
|
|
|
|
|
local archs = [
|
|
|
|
{ target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' },
|
|
|
|
{ target: 'x86_64-pc-windows-gnu', short: 'windows' },
|
|
|
|
{ target: 'x86_64-unknown-linux-musl', short: 'amd64-musl' },
|
|
|
|
];
|
|
|
|
|
|
|
|
local getStepName(arch) = 'Build for ' + arch.short;
|
|
|
|
|
|
|
|
local builtExecutableName(arch) = executableName + if std.length(std.findSubstr(arch.short, 'windows')) > 0 then '.exe' else '';
|
|
|
|
local targetExecutableName(arch) = executableName + '-' + arch.target + if std.length(std.findSubstr(arch.short, 'windows')) > 0 then '.exe' else '';
|
|
|
|
|
|
|
|
local getVolumeName(arch) = 'target-' + arch.target;
|
|
|
|
local getLocalVolumes(arch) = [
|
|
|
|
{
|
|
|
|
name: getVolumeName(arch),
|
|
|
|
temp: {},
|
|
|
|
}
|
|
|
|
for arch in archs
|
|
|
|
];
|
|
|
|
|
|
|
|
local add_build_steps() = [
|
|
|
|
{
|
|
|
|
name: getStepName(arch),
|
|
|
|
image: build_image,
|
|
|
|
commands: [
|
|
|
|
'echo Hello World from Jsonnet on ' + arch.target + '!',
|
|
|
|
'cargo zigbuild --release --target ' + arch.target,
|
|
|
|
'cp target/' + arch.target + '/release/' + builtExecutableName(arch) + ' artifacts/' + targetExecutableName(arch),
|
|
|
|
'rm -rf target/' + arch.target + '/release/*',
|
|
|
|
],
|
|
|
|
depends_on: ['Prepare'],
|
|
|
|
volumes: [{
|
|
|
|
name: getVolumeName(arch),
|
|
|
|
path: '/drone/src/target',
|
|
|
|
}],
|
|
|
|
}
|
|
|
|
for arch in archs
|
|
|
|
];
|
|
|
|
|
|
|
|
{
|
|
|
|
kind: 'pipeline',
|
|
|
|
type: 'docker',
|
|
|
|
name: 'default',
|
|
|
|
platform: {
|
|
|
|
arch: 'amd64',
|
|
|
|
},
|
|
|
|
steps:
|
|
|
|
[{
|
|
|
|
name: 'Prepare',
|
|
|
|
image: build_image,
|
|
|
|
commands: [
|
|
|
|
'mkdir artifacts',
|
|
|
|
'echo Using image: ' + build_image,
|
|
|
|
'cargo --version',
|
|
|
|
'rustc --version',
|
|
|
|
],
|
|
|
|
}] +
|
|
|
|
add_build_steps() +
|
|
|
|
[
|
|
|
|
{
|
|
|
|
name: 'Show built artifacts',
|
|
|
|
image: build_image,
|
|
|
|
commands: [
|
|
|
|
'ls -lah artifacts',
|
|
|
|
],
|
|
|
|
depends_on: [getStepName(a) for a in archs],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
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',
|
|
|
|
},
|
|
|
|
when: {
|
|
|
|
event: ['tag', 'promote'],
|
|
|
|
},
|
|
|
|
depends_on: ['Show built artifacts'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
|
|
|
|
volumes: getLocalVolumes(archs),
|
|
|
|
|
|
|
|
image_pull_secrets: ['docker_private_repo'],
|
|
|
|
}
|