summary refs log tree commit diff
path: root/pkgs/development/tools/continuous-integration/drone/default.nix
blob: ed6c7f4fefb686f5514e3d0fa895183f349e5e8c (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
59
60
61
62
63
64
65
66
67
68
{ stdenv, fetchFromGitHub, buildGoPackage, go-bindata, go-bindata-assetfs }:

buildGoPackage rec {
  name = "drone.io-${version}";
  version = "0.5-20161104-${stdenv.lib.strings.substring 0 7 revision}";
  revision = "232df356afeeb4aec5e2959fa54b084dcadb267f";
  goPackagePath = "github.com/drone/drone";

  # These dependencies pulled (in `drone` buildprocess) via Makefile,
  # so I extracted them here, all revisions pinned by same date, as ${version}
  extraSrcs = [ 
    {
      goPackagePath = "github.com/drone/drone-ui";
      src = fetchFromGitHub {
        owner = "drone";
        repo = "drone-ui";
        rev = "e66df33b4620917a2e7b59760887cc3eed543664";
        sha256 = "0d50xdzkh9akpf5c0sqgcgy11v2vz858l36jp5snr94zkrdkv0n1";
      };
    }
    {
      goPackagePath = "github.com/drone/mq";
      src = fetchFromGitHub {
        owner = "drone";
        repo = "mq";
        rev = "0f296601feeed952dabd038793864acdbefe6dbe";
        sha256 = "1k7439c90l4w29g7wyixfmpbkap7bn8yh8zynbjyjf9qjzwsnw97";
      };
    }
    {
      goPackagePath = "github.com/tidwall/redlog";
      src = fetchFromGitHub {
        owner = "tidwall";
        repo = "redlog";
        rev = "54086c8553cd23aba652513a87d2b085ea961541";
        sha256 = "12a7mk6r8figjinzkbisxcaly6sasggy62m8zs4cf35lpq2lhffq";
      };
    }
    {
      goPackagePath = "golang.org/x/crypto";
      src = fetchFromGitHub {
        owner = "golang";
        repo = "crypto";
        rev = "9477e0b78b9ac3d0b03822fd95422e2fe07627cd";
        sha256 = "1qcqai6nf1q50z9ga7r4ljnrh1qz49kwlcqpri4bknx732lqq0v5";
      };
    }
  ];
  nativeBuildInputs = [ go-bindata go-bindata-assetfs ];

  preBuild = ''
    go generate github.com/drone/drone/server/template
    go generate github.com/drone/drone/store/datastore/ddl
  '';

  src = fetchFromGitHub {
    owner = "drone";
    repo = "drone";
    rev = revision;
    sha256 = "0xrijcrlv3ag9n2kywkrhdkxyhxc8fs6zqn0hyav6a6jpqnsahg3";
  };

  meta = with stdenv.lib; {
    maintainer = with maintainers; [ avnik ];
    license = licenses.asl20;
    description = "Continuous Integration platform built on container technology";
  };
}