feat(release): publish the snap package with goreleaser (#2989)

This commit is contained in:
Valentin Maerten
2026-08-21 15:31:53 +02:00
committed by GitHub
parent 920de654cd
commit b250872d9a
4 changed files with 24 additions and 14 deletions

View File

@@ -46,6 +46,10 @@ jobs:
run: pnpm install
working-directory: website
# GoReleaser builds the snap packages but does not install snapcraft.
- name: Install snapcraft
run: sudo snap install snapcraft --classic
- name: Generate release notes
run: go run ./cmd/release --notes > "${RUNNER_TEMP}/release-notes.md"
@@ -62,6 +66,7 @@ jobs:
CLOUDSMITH_TOKEN: ${{secrets.CLOUDSMITH_TOKEN}}
DISCORD_WEBHOOK_ID: ${{secrets.DISCORD_WEBHOOK_ID}}
DISCORD_WEBHOOK_TOKEN: ${{secrets.DISCORD_WEBHOOK_TOKEN}}
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_STORE_CREDENTIALS}}
- name: Deploy Website
shell: bash

View File

@@ -82,6 +82,24 @@ nfpms:
- src: completion/nu/task-completions.nu
dst: /usr/share/nushell/vendor/autoload/task-completions.nu
snapcrafts:
- name: task
title: Task
summary: A task runner / simpler Make alternative written in Go
description: |
Task is a simple tool that allows you to easily run development and build
tasks. Task is written in Golang, but can be used to develop any language.
It aims to be simpler and easier to use then GNU Make.
license: MIT
base: bare
grade: stable
confinement: classic
publish: true
disable: '{{ .IsNightly }}'
apps:
task:
command: task
homebrew_casks:
- name: go-task
description: A fast, cross-platform build tool inspired by Make, designed for modern workflows.

View File

@@ -214,10 +214,6 @@ tasks:
sh: "go run ./cmd/release --version {{index .MATCH 0}}"
COMPLETE_MESSAGE: |
Creating release with GoReleaser: https://github.com/go-task/task/actions/workflows/release.yml
Please wait for the CI to finish and then do the following:
- Update and push the snapcraft manifest in https://github.com/go-task/snap/blob/main/snap/snapcraft.yaml
preconditions:
- sh: test $(git rev-parse --abbrev-ref HEAD) = "main"
msg: "You must be on the main branch to release"

View File

@@ -47,15 +47,9 @@ GoReleaser will automatically publish the release to most package managers:
* Cloudsmith (DEB and RPM repositories)
* Homebrew
* npm
* Snapcraft
* winget
A single package manager still require manual steps:
* Snapcraft:
* Update the `version:` field on [snapcraft.yaml][snapcraftyaml]
* Trigger a new build on [Snapcraft -> Builds][snapcraftbuilds]
* Once finished, move the new build to "stable" on [Snapcraft -> Releases][snapcraftreleases]
Once the release is published, GoReleaser announces it on the
[Discord server](https://discord.gg/6TY36E39UK). Nightly releases are not
announced.
@@ -66,6 +60,3 @@ These package managers are updated automatically by the community:
* [Nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/go/go-task/package.nix)
[goreleaser]: https://goreleaser.com/
[snapcraftyaml]: https://github.com/go-task/snap/blob/main/snap/snapcraft.yaml#L2
[snapcraftbuilds]: https://snapcraft.io/task/builds
[snapcraftreleases]: https://snapcraft.io/task/releases