3a79e8b932
This attribute contains a list of all derivations that should be built by the CI for this repository. This includes all of my own packages that are not marked as broken, as well as select third-party packages.
93 lines
3.3 KiB
Nix
93 lines
3.3 KiB
Nix
# This file sets up the top-level package set by merging all local packages into
|
|
# the nixpkgs top-level.
|
|
#
|
|
# This makes packages accessible via the Nixery instance that is configured to
|
|
# use this repository as its nixpkgs source.
|
|
|
|
with builtins;
|
|
|
|
let
|
|
# The pinned commit here is identical to the public nixery.dev
|
|
# version, since popularity data has been generated for that.
|
|
stableCommit = "5271f8dddc0f2e54f55bd2fc1868c09ff72ac980";
|
|
stableSrc = fetchTarball {
|
|
url = "https://github.com/NixOS/nixpkgs-channels/archive/${stableCommit}.tar.gz";
|
|
sha256 = "0w0x7whwb98lalaw25hxarmr924m1i49c1kacyypmnh2vjbkrjmi";
|
|
};
|
|
|
|
unstableCommit = "765a71f15025ce78024bae3dc4a92bd2be3a8fbf";
|
|
unstableSrc = fetchTarball {
|
|
url = "https://github.com/NixOS/nixpkgs-channels/archive/${unstableCommit}.tar.gz";
|
|
sha256 = "0j1wghr9dj9njn3x9xi0wzjk1107gi2pxb0w2dk8g0djmhnlx71q";
|
|
};
|
|
unstable = import unstableSrc {};
|
|
|
|
localPkgs = self: super: {
|
|
# Local projects should be added here:
|
|
tazjin = {
|
|
blog = self.callPackage ./services/tazblog {};
|
|
blog_cli = self.callPackage ./tools/blog_cli {};
|
|
gemma = self.callPackage ./services/gemma {};
|
|
|
|
kms_pass = self.callPackage ./tools/kms_pass {
|
|
project = "tazjins-infrastructure";
|
|
region = "europe-north1";
|
|
keyring = "tazjins-keys";
|
|
key = "kontemplate-key";
|
|
};
|
|
};
|
|
|
|
# Third-party projects (either vendored or modified from nixpkgs) go here:
|
|
nixery = import ./third_party/nixery.nix { pkgs = self; };
|
|
terraform-gcp = unstable.terraform_0_12.withPlugins(p: [ p.google p.google-beta ]);
|
|
ormolu = import (self.fetchFromGitHub {
|
|
owner = "tweag";
|
|
repo = "ormolu";
|
|
rev = "a7076c0f83e5c06ea9067b71171859fa2ba8afd9";
|
|
sha256 = "1p4n2ja4ciw3qfskn65ggpy37mvgf2sslxqmqn8s8jjarnqcyfny";
|
|
}) { pkgs = self; };
|
|
|
|
# Gemma needs an older version of Elm to be built. Updating it to
|
|
# the newer version is a lot of effort.
|
|
elmPackages = (import (self.fetchFromGitHub {
|
|
owner = "NixOS";
|
|
repo = "nixpkgs";
|
|
rev = "14f9ee66e63077539252f8b4550049381a082518";
|
|
sha256 = "1wn7nmb1cqfk2j91l3rwc6yhimfkzxprb8wknw5wi57yhq9m6lv1";
|
|
}) {}).elmPackages;
|
|
|
|
# Wrap kontemplate to inject the Cloud KMS version of 'pass'
|
|
kontemplate =
|
|
let master = super.kontemplate.overrideAttrs(_: {
|
|
src = self.fetchFromGitHub {
|
|
owner = "tazjin";
|
|
repo = "kontemplate";
|
|
rev = "v1.8.0";
|
|
sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1";
|
|
};
|
|
});
|
|
in self.writeShellScriptBin "kontemplate" ''
|
|
export PATH="${self.tazjin.kms_pass}/bin:$PATH"
|
|
exec ${master}/bin/kontemplate $@
|
|
'';
|
|
|
|
# One of Gemma's dependencies is missing in nixpkgs' Quicklisp
|
|
# package set, it is overlaid locally here.
|
|
lispPackages = import ./third_party/common_lisp/quicklisp.nix {
|
|
inherit (self) lib;
|
|
inherit (super) lispPackages;
|
|
};
|
|
|
|
# All projects that should be built by CI should be added here:
|
|
ciProjects = [
|
|
self.kontemplate
|
|
self.nixery
|
|
self.ormolu
|
|
self.terraform-gcp
|
|
] ++ filter (d: d ? meta.broken && !d.meta.broken) (attrValues self.tazjin);
|
|
};
|
|
|
|
in { ... } @ args: import stableSrc (args // {
|
|
overlays = [ localPkgs ];
|
|
config.allowUnfree = true;
|
|
})
|