Compare commits

..

No commits in common. "master" and "v0.1.1" have entirely different histories.

5 changed files with 81 additions and 151 deletions

View File

@ -1,3 +0,0 @@
[profile.release]
lto = "thin"
strip = true

View File

@ -1,5 +1,3 @@
local cross_image = 'img.kie.rs/jjkiers/rust-dind-cross:1.66-full';
local archs = [ local archs = [
{ target: 'aarch64-unknown-linux-gnu', short: 'arm64-gnu' }, { target: 'aarch64-unknown-linux-gnu', short: 'arm64-gnu' },
{ target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' }, { target: 'aarch64-unknown-linux-musl', short: 'arm64-musl' },
@ -15,23 +13,25 @@ local getExeName(arch) = if std.startsWith(arch.short, 'windows') then '.exe' el
local add_build_steps() = [ local add_build_steps() = [
{ {
name: getStepName(arch), name: getStepName(arch),
image: cross_image, image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
pull: true,
volumes: [ volumes: [
{ {
name: 'dockersock', name: 'dockersock',
path: '/var/run/docker.sock', path: '/var/run',
},
{
name: 'rustup',
path: '/usr/local/rustup',
}, },
], ],
commands: [ commands: [
'echo Hello World from Jsonnet on ' + arch.target + '!', 'echo Hello World from Jsonnet on ' + arch.target + '!',
'cross build --release --target ' + arch.target, 'cross build --release --target ' + arch.target,
'ls -lahR',
'cp target/' + arch.target + '/release/drone-test' + getExeName(arch) + ' artifacts/drone-test-' + arch.short + getExeName(arch), 'cp target/' + arch.target + '/release/drone-test' + getExeName(arch) + ' artifacts/drone-test-' + arch.short + getExeName(arch),
'rm -rf target/' + arch.target + '/release/*', 'rm -rf target/' + arch.target + '/release/*',
], ],
environment: { environment: {
CROSS_DOCKER_IN_DOCKER: true, CROSS_REMOTE: true,
}, },
depends_on: ['Wait for Docker'], depends_on: ['Wait for Docker'],
} }
@ -48,28 +48,23 @@ local add_build_steps() = [
steps: steps:
[{ [{
name: 'Wait for Docker', name: 'Wait for Docker',
image: cross_image, image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
pull: true,
commands: [ commands: [
'mkdir artifacts',
'while ! docker image ls; do sleep 1; done', 'while ! docker image ls; do sleep 1; done',
'docker info', 'docker info',
'docker pull hello-world:latest', 'docker pull hello-world:latest',
'docker run --rm hello-world:latest', 'mkdir artifacts',
], ],
environment: {
CROSS_DOCKER_IN_DOCKER: true,
},
volumes: [{ volumes: [{
name: 'dockersock', name: 'dockersock',
path: '/var/run/docker.sock', path: '/var/run',
}], }],
}] + }] +
add_build_steps() + add_build_steps() +
[ [
{ {
name: 'Show built artifacts', name: 'Show built artifacts',
image: cross_image, image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
commands: [ commands: [
'ls -lah artifacts', 'ls -lah artifacts',
], ],
@ -93,11 +88,37 @@ local add_build_steps() = [
}, },
], ],
services: [{
name: 'docker',
image: 'docker:dind',
privileged: true,
volumes: [ volumes: [
{ {
name: 'dockersock', name: 'dockersock',
path: '/var/run',
},
{
name: 'docker-storage',
path: '/var/lib/docker',
},
],
}],
volumes: [
{
name: 'dockersock',
temp: {},
},
{
name: 'docker-storage',
host: { host: {
path: '/var/run/docker.sock', path: '/srv/drone/docker-dind-rust',
},
},
{
name: 'rustup',
host: {
path: '/srv/drone/rustup',
}, },
}, },
], ],

42
.drone.yml Normal file
View File

@ -0,0 +1,42 @@
---
kind: pipeline
name: default
platfomr:
arch: amd64
steps:
- name: test
image: img.kie.rs/jjkiers/rust-dind-cross:1.62-slim
volumes:
- name: dockersock
path: /var/run
commands:
- cargo check
- while ! docker image ls; do sleep 1; done
- cross build --release --target aarch64-unknown-linux-gnu
- ls -lahR target/
environment:
CROSS_REMOTE: true
# DOCKER_REGISTRY:
# from_secret: docker-registry-url
# DOCKER_USERNAME:
# from_secret: docker-registry-username
# DOCKER_PASSWORD:
# from_secret: docker-registry-password
services:
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
volumes:
- name: dockersock
temp: {}
image_pull_secrets:
- docker_private_repo

View File

@ -1,130 +0,0 @@
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: 'Wait for Docker',
image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
commands: [
'while ! docker image ls; do sleep 1; done',
'docker info',
'docker pull hello-world:latest',
'mkdir artifacts',
],
volumes: [{
name: 'dockersock',
path: '/var/run',
}],
}] +
add_build_steps() +
[
{
name: 'Show built artifacts',
image: 'img.kie.rs/jjkiers/rust-dind-cross:1.62-slim',
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'],
},
],
services: [{
name: 'docker',
image: 'docker:dind',
privileged: true,
volumes: [
{
name: 'dockersock',
path: '/var/run',
},
{
name: 'docker-storage',
path: '/var/lib/docker',
},
],
}],
volumes: [
{
name: 'dockersock',
temp: {},
},
{
name: 'docker-storage',
host: {
path: '/srv/drone/docker-dind-rust',
},
},
{
name: 'rustup',
host: {
path: '/srv/drone/rustup',
},
},
],
image_pull_secrets: ['docker_private_repo'],
}

View File

@ -1,3 +1,3 @@
fn main() { fn main() {
println!("Hello from Drone!"); println!("Hello, world!");
} }