-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.goreleaser.yaml
More file actions
218 lines (187 loc) · 6.85 KB
/
Copy path.goreleaser.yaml
File metadata and controls
218 lines (187 loc) · 6.85 KB
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
# The lines below are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/need to use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
# To build:
# goreleaser release --snapshot --clean
#
# To install:
# sudo snap install ./dist/priv_build_linux_arm64.snap --dangerous
#
# View status: sudo snap info --verbose priv
# View connections: snap connections
# View logs: sudo snap logs priv -n=all
# View confinement notifs: journalctl -xe --no-pager
# Note: Dangerously installed snaps don't automatically set up network-control plug / interface
# https://forum.snapcraft.io/t/cap-net-admin-not-being-provided-with-the-recommended-plugs/10834/2
#
# You need to do this manually with:
# sudo snap connect priv:network-control
version: 2
project_name: west
builds:
- id: west
main: ./cmd/west
goarch:
- amd64
- arm64
goos:
- linux
- windows
- darwin
- id: snap
main: ./cmd/snap
goarch:
- amd64
- arm64
goos:
- linux
archives:
- ids: [west]
formats: [tar.gz]
# this name template makes the OS and Arch compatible with the results of `uname`.
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
# use zip for windows archives
format_overrides:
- goos: windows
formats: [zip]
snapcrafts:
- #
# ID of the snapcraft config, must be unique.
#
# Default: 'default'.
id: snap
ids: [snap]
# disable: true
# You can change the name of the package.
#
# Default: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'.
# Templates: allowed.
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
# The name of the snap. This is optional.
#
# Default: the project name.
name: west
# The canonical title of the application, displayed in the software
# centre graphical frontends.
title: west
# Path to icon image that represents the snap in the snapcraft.io store
# pages and other graphical store fronts.
# icon: ./icon.png
# Whether to publish the snap to the snapcraft store.
# Remember you need to `snapcraft login` first.
publish: false
# Single-line elevator pitch for your amazing snap.
# 79 char long at most.
summary: Global mesh networking for distributed datacenters.
# This the description of your snap. You have a paragraph or two to tell the
# most important story about your snap. Keep it under 100 words though,
# we live in tweetspace and your description wants to look good in the snap
# store.
description: Global mesh networking for distributed datacenters. Includes DNS + DHCP, built on Nebula. Connect together AWS, GCP, Azure, and any custom provider including your homelab.
# Disable this configuration.
#
# Templates: allowed.
# disable: true
# Channels in store where snap will be pushed.
#
# More info about channels here:
# https://snapcraft.io/docs/reference/channels
#
# Default:
# grade is 'stable': ["edge", "beta", "candidate", "stable"]
# grade is 'devel': ["edge", "beta"]
# Templates: allowed.
channel_templates:
- stable
- edge
# Your app's license, based on SPDX license expressions:
# https://spdx.org/licenses
license: MPL-2.0
# A snap of type base to be used as the execution environment for this snap.
# Valid values are:
# * bare - Empty base snap;
# * core - Ubuntu Core 16;
# * core18 - Ubuntu Core 18.
base: core24
# Each binary built by GoReleaser is an app inside the snap. In this section
# you can declare extra details for those binaries. It is optional.
# See: https://snapcraft.io/docs/snapcraft-app-and-service-metadata
apps:
# The name of the app must be the same name as the binary built or the snapcraft name.
west:
command: west
# If your app requires extra permissions to work outside of its default
# confined space, declare them here.
# You can read the documentation about the available plugs and the
# things they allow:
# https://snapcraft.io/docs/supported-interfaces.
plugs:
- home
- network
- network-bind
- network-control
init:
command: west
environment:
WEST_SNAP_MODE: daemon
# If you want your app to be autostarted and to always run in the
# background, you can make it a simple daemon.
# https://snapcraft.io/docs/services-and-daemons
daemon: simple
refresh_mode: restart
# restart_condition: always
restart_condition: on-failure
restart_delay: 30s
# Install and run daemon automatically
install_mode: enable
plugs:
- home
- network
- network-bind
- network-control
brews:
-
name: west
# NOTE: make sure the url_template, the token and given repo (github or
# gitlab) owner and name are from the same kind.
# We will probably unify this in the next major version like it is
# done with scoop.
# URL which is determined by the given Token (github, gitlab or gitea).
#
# Default depends on the client.
# Templates: allowed.
url_template: "https://github.com/sprisa/west/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
# Directory inside the repository to put the formula.
directory: .
# Your app's homepage.
#
# Default: inferred from global metadata.
homepage: "https://github.com/sprisa/west"
# Your app's description.
#
# Templates: allowed.
# Default: inferred from global metadata.
description: "Global mesh networking for distributed datacenters. Includes DNS + DHCP, built on Nebula. Connect together AWS, GCP, Azure, and any custom provider including your homelab."
# SPDX identifier of your app's license.
#
# Default: inferred from global metadata.
license: "MPL-2.0"
# Setting this will prevent goreleaser to actually try to commit the updated
# formula - instead, the formula file will be stored on the dist directory
# only, leaving the responsibility of publishing it to the user.
# If set to auto, the release will not be uploaded to the homebrew tap
# in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
#
# Templates: allowed.
skip_upload: true
repository:
name: x