aboutsummaryrefslogtreecommitdiffstats
blob: a0fc6ad167624758aac42e5ddf4176f856d3461a (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# SPDX-FileCopyrightText: 2026 Nikolay Govorov
# SPDX-License-Identifier: AGPL-3.0-or-later

# yaml-language-server: $schema=https://nfpm.goreleaser.com/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj

name: mirum
arch: ${ARCH}
version: ${VERSION}
license: AGPL-3.0-or-later
platform: linux
maintainer: Nikolay Govorov <me@govorov.online>
description: Modern CI platform

contents:
  - src: ./LICENSES/*
    dst: /usr/share/doc/mirum/LICENSES/
  - src: ./README.md
    dst: /usr/share/doc/mirum/README.md

  - src: build/tmp/mirum-server
    dst: /usr/local/bin/mirum-server
    file_info:
      mode: 0755

  - src: build/tmp/mirum-worker
    dst: /usr/local/bin/mirum-worker
    file_info:
      mode: 0755

  - src: build/tmp/mirum
    dst: /usr/local/bin/mirum
    file_info:
      mode: 0755

  # mirum-agent guest binaries — payload the worker injects into VMs.
  # Not host executables; the full guest matrix ships in every package.
  - src: build/agent/mirum-agent-*
    dst: /usr/lib/mirum/agent/
    file_info:
      mode: 0755

  - src: packaging/server/config.yaml
    dst: /etc/mirum/server/config.yaml
    type: config|noreplace
    file_info:
      mode: 0640
      owner: root
      group: mirum-server

  - src: packaging/worker/default.yaml
    dst: /etc/mirum/worker/default.yaml
    type: config|noreplace
    file_info:
      mode: 0640
      owner: root
      group: mirum-worker

  - dst: /var/lib/mirum-server
    type: dir
    file_info:
      mode: 0750
      owner: mirum-server
      group: mirum-server

  - dst: /var/lib/mirum-worker
    type: dir
    file_info:
      mode: 0750
      owner: mirum-worker
      group: mirum-worker

  # nfpm's `packager` field is a single value, so systemd units get listed
  # twice (once per non-apk packager) to scope them away from Alpine.
  - src: packaging/mirum-server.service
    dst: /usr/lib/systemd/system/mirum-server.service
    packager: deb
    file_info:
      mode: 0644
  - src: packaging/mirum-server.service
    dst: /usr/lib/systemd/system/mirum-server.service
    packager: rpm
    file_info:
      mode: 0644

  - src: packaging/mirum-worker@.service
    dst: /usr/lib/systemd/system/mirum-worker@.service
    packager: deb
    file_info:
      mode: 0644
  - src: packaging/mirum-worker@.service
    dst: /usr/lib/systemd/system/mirum-worker@.service
    packager: rpm
    file_info:
      mode: 0644

  - src: packaging/mirum-server.initd
    dst: /etc/init.d/mirum-server
    packager: apk
    file_info:
      mode: 0755

  - src: packaging/mirum-worker.initd
    dst: /etc/init.d/mirum-worker
    packager: apk
    file_info:
      mode: 0755


scripts:
  preinstall: packaging/scripts/preinstall.sh
  postinstall: packaging/scripts/postinstall.sh
  preremove: packaging/scripts/preremove.sh

deb:
  signature:
    method: debsign
    key_id: ${GPG_KEY_ID}
    key_file: ${SIGNING_PRIVATE_KEY}

rpm:
  group: System Environment/Daemons
  signature:
    key_id: ${GPG_KEY_ID}
    key_file: ${SIGNING_PRIVATE_KEY}

apk:
  signature:
    key_file: ${APK_SIGNING_KEY}
    # nFPM appends ".rsa.pub"; the versioned basename lets clients retain
    # historical package keys during rotation.
    key_name: packages.${PACKAGE_KEY_VERSION}