Commit graph

1600 commits

Author SHA1 Message Date
Vincent Ambo
d441e035aa feat: Add support for Protobuf-generated libraries
Adds a 'buildGo.proto' function which takes a single .proto file as
its source and generates a corresponding Go library which can then be
imported.

'proto' takes these arguments (Yants-style type definition):

struct "protoArgs" {
  # required:
  name = string;
  proto = path;

  # optional:
  extraDeps = list goLib; # defaults to [ ]
  protocFlags = option string;
}

Note that proto libraries will automatically have dependencies for the
required protobuf Go libraries added to them.

gRPC is not (yet) supported.
2019-11-24 20:17:17 +00:00
Vincent Ambo
24225580e8 feat: Check in buildGo with program & package builders 2019-11-23 15:25:11 +00:00
Vincent Ambo
5126815846 chore: initial commit 2019-11-23 15:24:50 +00:00
Vincent Ambo
f1655c5cbb fix(tools): Enable CI runs for tools.gotest 2019-11-22 16:29:43 +00:00
Vincent Ambo
1619f58d78 feat(tools): Add 'gotest' program to demonstrate pkgs.buildGo
This is a tiny program that does nothing but exists to demonstrate
pkgs.buildGo by building a program that depends on a local library as
well as a protobuf definition.
2019-11-22 16:28:22 +00:00
Vincent Ambo
9ea0363e6f fix(buildGo): Use stable build ID when linking outputs
This is another step towards build reproducibility, which Go is
traditionally very bad at.
2019-11-22 16:14:52 +00:00
Vincent Ambo
8710df08c8 fix(buildGo): Ensure names of proto-generated files are correct 2019-11-22 16:14:35 +00:00
Vincent Ambo
5a89a0265b refactor(buildGo): Minor cleanups of buildGo implementation 2019-11-22 16:14:14 +00:00
Vincent Ambo
78ca29dd23 feat(buildGo): Introduce Bazel-style Nix builders for Go 2019-11-21 10:55:10 +00:00
Vincent Ambo
ae53bf30c3
Merge pull request #9 from tazjin/feat/read-tree
Configure automatic package layouts via repository structure
2019-11-15 23:46:13 +00:00
Vincent Ambo
ecd54d58b1 fix(k8s): Adjust blog image name to match new repo layout 2019-11-15 23:37:22 +00:00
Vincent Ambo
45d63bce17 feat(nix): Filter projects that should be built by CI
Instead of specifying CI projects manually, this filters them to move
the CI configuration into the derivations `meta` attributes.
2019-11-15 23:25:41 +00:00
Vincent Ambo
c1c379848a chore(nix): Move files around to conform to new read-tree layout
Broadly speaking, the following things are included:

* there is now a uniform `args` struct that is passed to all
  derivations, package headers have been changed appropriately
* overrides are now loaded from a separate `override` folder just
  using read-tree.nix
* third-party packages have moved into the `third_party` attribute set
2019-11-15 15:26:08 +00:00
Vincent Ambo
4d852e2ef7 feat(build): Add initial read-tree.nix implementation
This file can read a directory tree into a package set structure,
paving the way for getting rid of top-level mapping in default.nix.
2019-11-15 14:52:23 +00:00
Vincent Ambo
8e53dec88c chore: Remove unstable channel (no longer in use) 2019-11-14 13:44:03 +00:00
Vincent Ambo
9ba4bbb609
Merge pull request #8 from tazjin/feat/nixcon
Add demo setup for NixCon
2019-10-26 13:59:58 +02:00
Vincent Ambo
161f1b5e85 feat(nixcon-demo): Add CLI mode for NixCon demo
Maybe a bit more sane than trying to do a network based setup.
2019-10-26 13:50:42 +02:00
Vincent Ambo
8ffe811d46 feat(services): Add nixcon-demo service with simple web server 2019-10-26 13:27:56 +02:00
Vincent Ambo
2be1fff251 feat(third_party): Add naersk to package set 2019-10-26 13:27:41 +02:00
Vincent Ambo
9eabf6236f fix: Enable building of broken packages
Happstack is currently erroneously (afaict) marked as broken.
2019-10-26 12:10:21 +02:00
Vincent Ambo
374d55d190 chore(k8s): Bump deployed Nixery version 2019-10-26 12:02:55 +02:00
Vincent Ambo
2e4c630f64
Merge pull request #7 from tazjin/chore/bump-19.09
Update nixpkgs set to NixOS 19.09
2019-10-25 18:48:12 +01:00
Vincent Ambo
d35debf882 chore: Bump Nixery version & package set configuration 2019-10-25 15:52:23 +02:00
Vincent Ambo
9081e4aae4 chore: Bump nixpkgs and use Terraform from stable 2019-10-25 10:03:52 +02:00
Vincent Ambo
d290684669 refactor(build): Only build projects explicitly set as CI projects 2019-09-22 17:21:35 +01:00
Vincent Ambo
2bc1bedd9e chore(gemma): Mark gemma as broken (again)
Something broke in one of the Lisp dependencies (again).
2019-09-22 17:20:00 +01:00
Vincent Ambo
3a79e8b932 refactor(build): Add ciProjects attribute for CI builds
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.
2019-09-22 17:19:13 +01:00
Vincent Ambo
5b446efb66 chore(tazblog): Remove more unneeded dependencies 2019-09-22 17:05:24 +01:00
Vincent Ambo
2fceba1618 chore(k8s): Bump deployed Nixery version 2019-09-21 15:46:58 +01:00
Vincent Ambo
415dc01e5e chore: Bump Nix channel to a more recent version
This version has Nixery popularity data available.
2019-09-21 15:41:19 +01:00
Vincent Ambo
bcdd2d3fcb chore(third_party): Bump Nixery version 2019-09-21 15:39:45 +01:00
Vincent Ambo
4c3f27b9a7 refactor(k8s): Parameterise the nginx version 2019-09-21 15:37:44 +01:00
Alex Rice
5f6b51cce4 test: add eitherN test 2019-09-19 15:56:39 +01:00
Alex Rice
13cc0d3d48 feat: add n-ary either 2019-09-19 15:56:39 +01:00
Michael Fellinger
7b1e389c66 Add path type 2019-09-17 15:29:39 +01:00
Vincent Ambo
afd2fd5058 docs(README): Add usage information to README
This fixes #2.
2019-09-14 13:09:37 +01:00
Vincent Ambo
52fabe4423 fix(k8s): Reinsert passLookup newline after kontemplate trims it
SSH can not read the key without the trailing newline. Ideally
kontemplate would expose a toggle for this.
2019-09-04 16:59:38 +01:00
Vincent Ambo
b41be36bb7
Merge pull request #6 from tazjin/fix/nixery-secrets-namespace
Fix Nixery resources namespace & bump kontemplate
2019-09-04 14:18:08 +01:00
Vincent Ambo
16b317fa5a chore: Update kontemplate to v1.8.0
This version is agnostic of the working directory even if
insertFile/insertTemplate are used, which makes it a lot nicer to work
with in this repository structure.
2019-09-04 12:58:04 +01:00
Vincent Ambo
064f65dec2 chore: Update image & Homebrew formula for 1.8.0 release 2019-09-04 12:52:29 +01:00
Vincent Ambo
6c3b29943c fix(build): Explicitly patch interpreter shebangs in build 2019-09-04 11:58:58 +01:00
Vincent Ambo
1cdfcbf879 chore(image): Bump alpine, kubectl and pass 2019-09-04 11:58:58 +01:00
Vincent Ambo
e7cf4668a2 chore: Bump Nix channel used for release builds
Bumps the channel to a recent NixOS 19.03 commit.
2019-09-04 11:58:58 +01:00
Vincent Ambo
fad8dfcef6 chore(build): Bump version to 1.8.0 2019-09-04 11:58:58 +01:00
Vincent Ambo
7b9ae4831d chore: Update copyright headers to 2019 2019-09-04 11:58:58 +01:00
Vincent Ambo
5b82bc60fc chore: Update dependency versions 2019-09-04 11:58:58 +01:00
Vincent Ambo
d0f52766b3 fix(context): Ensure resource set paths are made absolute
Resolving of files (for `insertFile` and `insertTemplate`) should
always be relative to the resource set location, the previous
behaviour was considered a bug.

This is fixed by ensuring that resource set paths are absolute at
context loading time.
2019-09-04 11:15:58 +01:00
Vincent Ambo
56f9e37755 fix(k8s): Move nixery-secrets to the correct namespace 2019-09-04 10:34:20 +01:00
Vincent Ambo
628cec3433
Merge pull request #5 from tazjin/feat/cloud-kms-secrets
Introduce secrets management via Google Cloud KMS
2019-09-03 16:26:17 +01:00
Vincent Ambo
283951388c feat(k8s): Insert Nixery's secrets via kontemplate
Instead of having a manually prepared secret, use Cloud KMS (as per
the previous commits) to decrypt the in-repo secrets and template them
into the Secret resource in Kubernetes.

Not all of the values are actually secret, it has thus become a bit
easier to edit the known hosts, SSH config and such now.
2019-09-03 16:12:30 +01:00