woodpecker-{agent,cli,server}: 2.8.3 -> 3.0.0
[NixPkgs.git] / pkgs / development / tools / continuous-integration / woodpecker / common.nix
blob24b3384e792a2fc6343dd5d7841aa72a4ace444b
1 { lib, fetchzip }:
2 let
3   version = "3.0.0";
4   srcHash = "sha256-AM+qMTbvlLOLtuADJGWKRmeqwK+ssV7YxydOsx+L8Nc=";
5   # The tarball contains vendored dependencies
6   vendorHash = null;
7 in
9   inherit version vendorHash;
11   src = fetchzip {
12     url = "https://github.com/woodpecker-ci/woodpecker/releases/download/v${version}/woodpecker-src.tar.gz";
13     hash = srcHash;
14     stripRoot = false;
15   };
17   postInstall = ''
18     cd $out/bin
19     for f in *; do
20       if [ "$f" = cli ]; then
21         mv -- "$f" "woodpecker"
22         # Issue a warning to the user if they call the deprecated executable
23         cat >woodpecker-cli << EOF
24     #!/bin/sh
25     echo 'WARNING: calling \`woodpecker-cli\` is deprecated, use \`woodpecker\` instead.' >&2
26     $out/bin/woodpecker "\$@"
27     EOF
28         chmod +x woodpecker-cli
29         patchShebangs woodpecker-cli
30       else
31         mv -- "$f" "woodpecker-$f"
32       fi
33     done
34     cd -
35   '';
37   ldflags = [
38     "-s"
39     "-w"
40     "-X go.woodpecker-ci.org/woodpecker/v3/version.Version=${version}"
41   ];
43   meta = with lib; {
44     homepage = "https://woodpecker-ci.org/";
45     changelog = "https://github.com/woodpecker-ci/woodpecker/blob/v${version}/CHANGELOG.md";
46     license = licenses.asl20;
47     maintainers = with maintainers; [
48       ambroisie
49       techknowlogick
50       adamcstephens
51     ];
52   };