about summary refs log tree commit diff
path: root/ops/kontemplate/release.nix
blob: 6a3dbd5efe87f69f9865a93d023e61de8e6fe684 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Copyright (C) 2016-2019  Vincent Ambo <mail@tazj.in>
#
# This file is part of Kontemplate.
#
# Kontemplate is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This file is the Nix derivation used to build release binaries for
# several different architectures and operating systems.

let
  pkgs = import
    ((import <nixpkgs> { }).fetchFromGitHub {
      owner = "NixOS";
      repo = "nixpkgs-channels";
      rev = "541d9cce8af7a490fb9085305939569567cb58e6";
      sha256 = "0jgz72hhzkd5vyq5v69vpljjlnf0lqaz7fh327bvb3cvmwbfxrja";
    })
    { };
in
with pkgs; buildGoPackage rec {
  name = "kontemplate-${version}";
  version = "canon";
  src = ./.;
  goPackagePath = "github.com/tazjin/kontemplate";
  goDeps = ./deps.nix;

  # This configuration enables the building of statically linked
  # executables. For some reason, those will have multiple references
  # to the Go compiler's installation path in them, which is the
  # reason for setting the 'allowGoReference' flag.
  dontStrip = true; # Linker configuration handles stripping
  allowGoReference = true;
  CGO_ENABLED = "0";
  GOCACHE = "off";

  # Configure release builds via the "build-matrix" script:
  buildInputs = [ git ];
  buildPhase = ''
    cd go/src/${goPackagePath}
    patchShebangs build-release.sh
    ./build-release.sh build
  '';

  outputs = [ "out" ];
  installPhase = ''
    mkdir $out
    cp -r release/ $out
  '';

  meta = with lib; {
    description = "A resource templating helper for Kubernetes";
    homepage = "http://kontemplate.works/";
    license = licenses.gpl3;
  };
}