nur-packages/.drone.jsonnet
xeals 3f994e88cf
Some checks failed
continuous-integration/drone/push Build is failing
caching round 2
2020-10-15 23:02:35 +11:00

80 lines
1.9 KiB
Plaintext

local CacheVolume = "cache";
local Cache(name, settings) = {
name: name,
image: "drillster/drone-volume-cache",
volumes: [ {
name: CacheVolume,
path: "/cache"
} ],
settings: settings + {
mount: ["/nix/store"]
}
};
local Pipeline(channel) = {
kind: "pipeline",
type: "docker",
name: channel,
// This is ignored by the drone-cli YAML translator, so unfortunately, it has
// to be copy-pasted into relevant steps.
environment: {
NIXPKGS_ALLOW_UNFREE: 1,
NUR_REPO: "xeals",
CACHIX_CACHE: "xeals",
CACHIX_SIGNING_KEY: { from_secret: "cachix_key" },
},
volumes: [ {
name: CacheVolume,
host: {
path: "/tmp/drone/cache"
}
} ],
steps: [
Cache("restore-nix-store", {
restore: true
}),
{
name: "build",
image: "nixos/nix",
commands: [
"nix-channel --add https://nixos.org/channels/" + channel + " nixos",
"nix-channel --update",
"nix-build ci.nix -A buildOutputs",
"nix eval -f default.nix 'lib'",
"nix eval -f default.nix 'modules'",
"nix eval -f default.nix 'overlays'"
],
environment: {
NIXPKGS_ALLOW_UNFREE: 1
}
},
{
name: "deploy",
image: "nixpkgs/cachix",
commands: [
'nix-build ci.nix -A cacheOutputs | cachix push "${CACHIX_CACHE}"'//,
// 'if [[ "cron" != "${DRONE_BUILD_EVENT}" && -z "${DRONE_PULL_REQUEST}" && "master" = "${DRONE_BRANCH}" ]]; then
// curl -XPOST "https://nur-update.herokuapp.com/update?repo=${NUR_REPO}"; fi'
],
environment: {
NIXPKGS_ALLOW_UNFREE: 1,
NUR_REPO: "xeals",
CACHIX_CACHE: "xeals",
CACHIX_SIGNING_KEY: { from_secret: "cachix_key" },
},
},
Cache("save-nix-store", {
rebuild: true
}) + {
when: { status: [ "success", "failure" ] }
},
]
};
[
Pipeline("nixpkgs-unstable"),
Pipeline("nixos-unstable"),
Pipeline("nixos-20.03"),
]