nur-packages/.drone.jsonnet
xeals 45682cdbab
Some checks failed
continuous-integration/drone/push Build is failing
Cache nix store between builds
2020-10-15 20:46:37 +11:00

86 lines
2.0 KiB
Plaintext

local Cache(name, settings) = {
name: name,
image: "meltwater/drone-cache",
pull: true,
settings: {
backend: "filesystem",
cache_key: "{{ .Repo.Name }}",
archive_format: "gzip",
mount: [
"/nix/store"
]
} + settings,
volumes: [
{
name: "cache",
path: "/tmp/cache"
}
]
};
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: "cache",
temp: {}
}
],
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"),
]