Files
altherego/.drone.jsonnet
Aleksandr Trushkin d5681018dd print app version
2021-01-11 01:03:53 +03:00

94 lines
2.0 KiB
Jsonnet

local image = std.extVar("image");
local app_name = std.extVar("app_name");
local target_arch = std.extVar("target_arch");
local flags = " --release --target=" + target_arch;
local volume(name, path) = {
name: name,
path: path,
};
local volumes = [
volume("cargo", "/usr/local/cargo"),
volume("target", "/cache/target"),
volume("rustup", "/usr/local/rustup"),
];
local step(name, depends=[], commands=[], env={}) = {
name: name,
volumes: volumes,
image: image,
depends_on: depends,
commands: commands,
environment: env + {
CARGO_TARGET_DIR: "/cache/target",
APP_NAME: app_name,
},
};
local temp_volume(name) = {
name: name,
temp: {},
};
local host_volume(name, path) = {
name: name,
host: {
path: path,
},
};
{
kind: "pipeline",
type: "docker",
name: "default",
platform: {
"os": "linux",
"arch": "arm",
},
steps: [
step(
"validate",
commands=["cargo test" + flags],
),
step(
"test",
depends=["validate"],
commands=["cargo test" + flags],
),
step(
"build",
depends=["test"],
commands=["cargo build" + flags],
env={
GIT_REVISION: "${DRONE_COMMIT:0:8}",
GIT_BRANCH: "${DRONE_COMMIT_BRANCH}",
},
),
step(
"deploy",
depends=["build"],
commands=["sh scripts/deploy.sh"],
env={
TARGET_DIR: "/cache/target/" + target_arch + "/release",
SSH_PRIVATE_KEY: {"from_secret": "ssh_pk_base64"},
SSH_USER: {"from_secret": "SSH_USER"},
},
),
],
volumes: [
temp_volume("target"),
host_volume("cargo", "/home/pi/.cargo"),
host_volume("rustup", "/home/pi/.rustup"),
],
// BUG: thid does not add.
// environment: {
// CARGO_TARGET_DIR: "/cache/target/",
// APP_NAME: "deploytest",
// }
}