Skip to content

Commit 31ee5b0

Browse files
fix: make full use of nightly build functionality by publishing github releases and not tagging docker images as latest
1 parent 73bdc72 commit 31ee5b0

File tree

1 file changed

+12
-324
lines changed

1 file changed

+12
-324
lines changed

.goreleaser.yaml

Lines changed: 12 additions & 324 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,19 @@ nfpms:
180180
dst: /lib/systemd/system/observe-agent.service
181181
type: config
182182

183-
# Scripts to execute during the installation of the package. (overridable)
184-
#
185-
# Keys are the possible targets during the installation process
186-
# Values are the paths to the scripts which will be executed.
187-
#
188-
# Templates: allowed (since v1.20)
189183
scripts:
190184
preinstall: "packaging/linux/scripts/preinstall.sh"
191185
postinstall: "packaging/linux/scripts/postinstall.sh"
192186
preremove: "packaging/linux/scripts/preremove.sh"
193187

188+
nightly:
189+
tag_name: dev-nightly
190+
publish_release: true
191+
keep_single_release: true
192+
193+
release:
194+
make_latest: "{{ not .IsNightly }}"
195+
194196
dockers:
195197
- image_templates:
196198
- &amd64_image_dockerhub "docker.io/observeinc/observe-agent:{{ .Version }}-amd64"
@@ -220,334 +222,20 @@ docker_manifests:
220222
image_templates:
221223
- *amd64_image_dockerhub
222224
- *arm64v8_image_dockerhub
223-
- name_template: "docker.io/observeinc/observe-agent:latest"
225+
- name_template: "docker.io/observeinc/observe-agent:{{ if .IsNightly}}latest{{ else }}dev-nightly{{ end }}"
224226
image_templates:
225227
- *amd64_image_dockerhub
226228
- *arm64v8_image_dockerhub
227-
- name_template: 723346149663.dkr.ecr.us-west-2.amazonaws.com/observe-agent:{{ .Version }}
229+
- name_template: "723346149663.dkr.ecr.us-west-2.amazonaws.com/observe-agent:{{ .Version }}"
228230
image_templates:
229231
- *amd64_image_ecr
230232
- *arm64v8_image_ecr
231-
- name_template: 723346149663.dkr.ecr.us-west-2.amazonaws.com/observe-agent:latest
233+
- name_template: "723346149663.dkr.ecr.us-west-2.amazonaws.com/observe-agent:{{ if .IsNightly}}latest{{ else }}dev-nightly{{ end }}"
232234
image_templates:
233235
- *amd64_image_ecr
234236
- *arm64v8_image_ecr
235237

236-
msi:
237-
- # ID of the resulting installer.
238-
#
239-
# Default: the project name
240-
# id: foo
241-
242-
# Filename of the installer (without the extension).
243-
#
244-
# Default: '{{.ProjectName}}_{{.MsiArch}}'
245-
# Templates: allowed
246-
name: "observe-agent_{{ .Version }}-{{.MsiArch}}"
247-
248-
# The WXS file used to create the installers.
249-
# The file contents go through the templating engine, so you can do things
250-
# like `{{.Version}}` inside of it.
251-
#
252-
# Templates: allowed
253-
# Required.
254-
wxs: ./packaging/windows/app.wsx
255-
256-
# IDs of the archives to use.
257-
# Empty means all IDs.
258-
# ids:
259-
# - foo
260-
# - bar
261-
262-
# GOAMD64 to specify which amd64 version to use if there are multiple
263-
# versions from the build section.
264-
#
265-
# Default: v1
266-
goamd64: v1
267-
268-
# More files that will be available in the context in which the installer
269-
# will be built.
270-
# extra_files:
271-
# - logo.ico
272-
273-
# Whether to remove the archives from the artifact list.
274-
# If left as false, your end release will have both the zip and the msi
275-
# files.
276-
replace: false
277-
278-
# Set the modified timestamp on the output installer, typically
279-
# you would do this to ensure a build was reproducible.
280-
# Pass an empty string to skip modifying the output.
281-
#
282-
# Templates: allowed.
283-
mod_timestamp: "{{ .CommitTimestamp }}"
284-
285-
brews:
286-
-
287-
# Name of the recipe
288-
#
289-
# Default: ProjectName
290-
# Templates: allowed
291-
name: observe-agent
292-
293-
# Alternative names for the current recipe.
294-
#
295-
# Useful if you want to publish a versioned formula as well, so users can
296-
# more easily downgrade.
297-
#
298-
# Since: v1.20 (pro)
299-
# Templates: allowed
300-
# alternative_names:
301-
# - myproject@{{ .Version }}
302-
# - myproject@{{ .Major }}
303-
304-
# IDs of the archives to use.
305-
# Empty means all IDs.
306-
# ids:
307-
# - foo
308-
# - bar
309-
310-
# Sets the app file within a DMG.
311-
#
312-
# Since: 1.24 (pro)
313-
# app: MyApp.app
314-
315-
# GOARM to specify which 32-bit arm version to use if there are multiple
316-
# versions from the build section. Brew formulas support only one 32-bit
317-
# version.
318-
#
319-
# Default: 6
320-
goarm: 6
321-
322-
# GOAMD64 to specify which amd64 version to use if there are multiple
323-
# versions from the build section.
324-
#
325-
# Default: v1
326-
goamd64: v1
327-
328-
# NOTE: make sure the url_template, the token and given repo (github or
329-
# gitlab) owner and name are from the same kind.
330-
# We will probably unify this in the next major version like it is
331-
# done with scoop.
332-
333-
# URL which is determined by the given Token (github, gitlab or gitea).
334-
#
335-
# Default depends on the client.
336-
# Templates: allowed
337-
# url_template: "https://github.mycompany.com/foo/bar/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
338-
339-
# Headers to include in the `url` stanza.
340-
# This can be a more modern alternative to `download_strategy` in some
341-
# cases.
342-
#
343-
# Since: v1.25
344-
# url_headers:
345-
# - "Accept: application/octet-stream"
346-
# - 'Authorization: bearer #{ENV["HOMEBREW_GITHUB_API_TOKEN"]}'
347-
348-
# Allows you to set a custom download strategy. Note that you'll need
349-
# to implement the strategy and add it to your tap repository.
350-
# Example: https://docs.brew.sh/Formula-Cookbook#specifying-the-download-strategy-explicitly
351-
# download_strategy: CurlDownloadStrategy
352-
# download_strategy: GitHubPrivateRepositoryReleaseDownloadStrategy
353-
354-
# Allows you to add a custom require_relative at the top of the formula
355-
# template.
356-
# custom_require: custom_download_strategy
357-
358-
# Git author used to commit to the repository.
359-
commit_author:
360-
name: goreleaserbot
361-
362-
363-
# The project name and current git tag are used in the format string.
364-
#
365-
# Templates: allowed
366-
commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}"
367-
368-
# Directory inside the repository to put the formula.
369-
# directory: Formula
370-
371-
# Caveats for the user of your binary.
372-
# caveats: "How to use this binary"
373-
374-
# Your app's homepage.
375-
homepage: "https://observeinc.com/"
376-
377-
# Your app's description.
378-
#
379-
# Templates: allowed
380-
description: "Observe-Agent is a tool for collecting and exporting metrics from your infrastructure."
381-
382-
# SPDX identifier of your app's license.
383-
license: "Apache-2.0"
384-
385-
# Setting this will prevent goreleaser to actually try to commit the updated
386-
# formula - instead, the formula file will be stored on the dist directory
387-
# only, leaving the responsibility of publishing it to the user.
388-
# If set to auto, the release will not be uploaded to the homebrew tap
389-
# in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
390-
#
391-
# Templates: allowed
392-
skip_upload: true
393-
394-
# Custom block for brew.
395-
# Can be used to specify alternate downloads for devel or head releases.
396-
# custom_block: |
397-
# head "https://github.com/some/package.git"
398-
# ...
399-
400-
# Packages your package depends on.
401-
# dependencies:
402-
# - name: git
403-
# # Allow to specify the OS in which the dependency is required.
404-
# # Valid options are `mac` and `linux`.
405-
# #
406-
# # Since: v1.23.0
407-
# os: mac
408-
# - name: zsh
409-
# type: optional
410-
# - name: fish
411-
# version: v1.2.3
412-
# # if providing both version and type, only the type will be taken into
413-
# # account.
414-
# - name: elvish
415-
# type: optional
416-
# version: v1.2.3
417-
418-
419-
# Packages that conflict with your package.
420-
# conflicts:
421-
# - svn
422-
# - bash
423-
424-
# Specify for packages that run as a service.
425-
# plist: |
426-
# <?xml version="1.0" encoding="UTF-8"?>
427-
# # ...
428-
429-
# Service block.
430-
#
431-
# Since: v1.7
432-
# service: |
433-
# run: foo/bar
434-
# # ...
435-
436-
# So you can `brew test` your formula.
437-
#
438-
# Template: allowed
439-
# test: |
440-
# system "#{bin}/foo --version"
441-
# # ...
442-
443-
# Custom install script for brew.
444-
#
445-
# Template: allowed
446-
# Default: 'bin.install "BinaryName"'
447-
# install: |
448-
# bin.install "some_other_name"
449-
# bash_completion.install "completions/foo.bash" => "foo"
450-
# # ...
451-
452-
# Additional install instructions so you don't need to override `install`.
453-
#
454-
# Template: allowed
455-
# Since: v1.20
456-
# extra_install: |
457-
# bash_completion.install "completions/foo.bash" => "foo"
458-
# man1.install "man/foo.1.gz"
459-
# # ...
460-
461-
# Custom post_install script for brew.
462-
# Could be used to do any additional work after the "install" script
463-
# post_install: |
464-
# etc.install "app-config.conf"
465-
# # ...
466-
467-
# Repository to push the generated files to.
468-
repository:
469-
# Repository owner.
470-
#
471-
# Templates: allowed
472-
owner: observeinc
473-
474-
# Repository name.
475-
#
476-
# Templates: allowed
477-
name: homebrew-tap
478-
479-
# Optionally a branch can be provided.
480-
#
481-
# Default: default repository branch
482-
# Templates: allowed
483-
branch: main
484-
485-
# Optionally a token can be provided, if it differs from the token
486-
# provided to GoReleaser
487-
# Templates: allowed
488-
# token: "{{ .Env.GITHUB_PERSONAL_AUTH_TOKEN }}"
489-
490-
# Sets up pull request creation instead of just pushing to the given branch.
491-
# Make sure the 'branch' property is different from base before enabling
492-
# it.
493-
#
494-
# Since: v1.17
495-
pull_request:
496-
# Whether to enable it or not.
497-
enabled: true
498-
499-
# Whether to open the PR as a draft or not.
500-
#
501-
# Since: v1.19
502-
draft: true
503-
504-
# If the pull request template has checkboxes, enabling this will
505-
# check all of them.
506-
#
507-
# This feature is only available in GoReleaser Pro.
508-
# Since: v1.20 (pro)
509-
check_boxes: true
510-
511-
# Base can also be another repository, in which case the owner and name
512-
# above will be used as HEAD, allowing cross-repository pull requests.
513-
#
514-
# Since: v1.19
515-
base:
516-
# owner: goreleaser
517-
# name: my-repo
518-
branch: main
519-
520-
# Clone, create the file, commit and push, to a regular Git repository.
521-
#
522-
# Notice that this will only have any effect if the given URL is not
523-
# empty.
524-
#
525-
# Since: v1.18
526-
# git:
527-
# # The Git URL to push.
528-
# #
529-
# # Templates: allowed
530-
# url: '[email protected]:observeinc/homebrew-tap.git'
531-
532-
# # The SSH private key that should be used to commit to the Git
533-
# # repository.
534-
# # This can either be a path or the key contents.
535-
# #
536-
# # IMPORTANT: the key must not be password-protected.
537-
# #
538-
# # WARNING: do not expose your private key in the configuration file!
539-
# #
540-
# # Templates: allowed
541-
# private_key: '{{ .Env.PRIVATE_KEY_PATH }}'
542-
543-
# # The value to be passed to `GIT_SSH_COMMAND`.
544-
# # This is mainly used to specify the SSH private key used to pull/push
545-
# # to the Git URL.
546-
# #
547-
# # Default: 'ssh -i {{ .KeyPath }} -o StrictHostKeyChecking=accept-new -F /dev/null'
548-
# # Templates: allowed
549-
# ssh_command: 'ssh -i {{ .Env.KEY }} -o SomeOption=yes'
550-
551238
furies:
552239
- account: observeinc
240+
# TODO add a separate account for nightly releases
553241
disable: "{{ .IsNightly }}"

0 commit comments

Comments
 (0)