@@ -168,19 +168,15 @@
|
||||
// uploads
|
||||
// cibuilds
|
||||
// {
|
||||
continue = pkgs.writeText "continue.yml" (
|
||||
builtins.replaceStrings
|
||||
[
|
||||
"QEMU_MATRIX"
|
||||
"VBOX_MATRIX"
|
||||
"HYPERV_MATRIX"
|
||||
]
|
||||
[
|
||||
continue = (
|
||||
import ./nix/continue.nix {
|
||||
inherit
|
||||
pkgs
|
||||
qemu_list
|
||||
vbox_list
|
||||
hyperv_list
|
||||
]
|
||||
(builtins.readFile ./.gitlab-ci-build.yml.in)
|
||||
;
|
||||
}
|
||||
);
|
||||
cache = pkgs.callPackage (import ./nix/cache.nix) { inherit active distroFile; };
|
||||
validate = pkgs.callPackage (import ./nix/validate.nix) { };
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
pkgs,
|
||||
qemu_list,
|
||||
vbox_list,
|
||||
hyperv_list,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
general = {
|
||||
stage = "build";
|
||||
cache = [
|
||||
{
|
||||
key = {
|
||||
files = [ "sources/build.pkr.hcl" ];
|
||||
};
|
||||
paths = [ "./packer_config/" ];
|
||||
}
|
||||
];
|
||||
rules = [
|
||||
{
|
||||
"if" = "$CI_COMMIT_TAG";
|
||||
variables = {
|
||||
EXCEPT = "";
|
||||
JOB_PREFIX = "upload";
|
||||
};
|
||||
}
|
||||
{
|
||||
"if" = "$CI_COMMIT_TAG =~ \"/^$/\"";
|
||||
variables = {
|
||||
EXCEPT = "-except=upload";
|
||||
JOB_PREIX = "ci";
|
||||
};
|
||||
}
|
||||
];
|
||||
needs = [
|
||||
{
|
||||
pipeline = "$PARENT_PIPELINE_ID";
|
||||
job = "generate";
|
||||
artifacts = true;
|
||||
}
|
||||
];
|
||||
script = [
|
||||
"nix run \".#\\\"\${JOB_PREIX}\${buildcmd}\\\"\" || exit 1"
|
||||
];
|
||||
};
|
||||
|
||||
variables = {
|
||||
PACKER_CONFIG_DIR = "./packer_config/";
|
||||
PACKER_CACHE_DIR = "./cache/";
|
||||
PACKER_LOG = "1";
|
||||
};
|
||||
|
||||
continue = {
|
||||
stages = [
|
||||
"build"
|
||||
"release"
|
||||
];
|
||||
"qemu.amd64" = general // {
|
||||
variables = variables // {
|
||||
only = "-only=qemu.amd64";
|
||||
};
|
||||
tag = [ "qemu" ];
|
||||
parallel = {
|
||||
matrix = qemu_list;
|
||||
};
|
||||
before_script = [
|
||||
"echo $BUILD"
|
||||
"env"
|
||||
];
|
||||
};
|
||||
"virtualbox-iso.amd64" = general // {
|
||||
variables = variables // {
|
||||
only = "-only=\"virtualbox-iso.amd64\"";
|
||||
};
|
||||
tags = [ "vbox" ];
|
||||
parallel = {
|
||||
matrix = vbox_list;
|
||||
};
|
||||
};
|
||||
"hyperv-iso.amd64" = general // {
|
||||
variables = variables // {
|
||||
only = "-only=\"hyperv-iso.amd64\"";
|
||||
};
|
||||
tags = [ "hyperv" ];
|
||||
parallel = {
|
||||
matrix = hyperv_list;
|
||||
};
|
||||
script = [
|
||||
"packer init sources"
|
||||
"packer build -only=\"hyperv-iso.amd64\" -var-file=\"\${distro}\" -var build=\${BUILD} -var cpus=2 -var memory=4096 \${EXCEPT} sources"
|
||||
"if (-not $?) { throw \"Error in build\")"
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
pkgs.writeText "continue.yml" (builtins.toJSON continue)
|
||||
Reference in New Issue
Block a user