Skip to content

Commit 8fb8c9f

Browse files
authored
Add support to publish Snaps using goreleaser (#353)
Closes #351.
1 parent 11c19c0 commit 8fb8c9f

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
uses: goreleaser/goreleaser-action@v2
5151
with:
5252
version: latest
53-
args: release --snapshot --skip-publish --rm-dist
53+
args: release --snapshot --skip publish,snapcraft --clean
5454
- name: Setup BATS framework
5555
run: sudo npm install -g bats
5656
- name: kubectx (Go) integration tests

.github/workflows/release.yml

+11
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ jobs:
2727
uses: actions/setup-go@v2
2828
with:
2929
go-version: '1.20'
30+
- name: Install Snapcraft
31+
uses: samuelmeuli/action-snapcraft@v1
32+
- name: Setup Snapcraft
33+
run: |
34+
# https://github.com/goreleaser/goreleaser/issues/1715
35+
mkdir -p $HOME/.cache/snapcraft/download
36+
mkdir -p $HOME/.cache/snapcraft/stage-packages
3037
- name: GoReleaser
3138
uses: goreleaser/goreleaser-action@v2
3239
with:
@@ -42,3 +49,7 @@ jobs:
4249
uses: rajatjindal/[email protected]
4350
with:
4451
krew_template_file: .krew/ns.yaml
52+
- name: Publish Snaps to the Snap Store (stable channel)
53+
run: for snap in $(ls dist/*.snap); do snapcraft upload --release=stable $snap; done
54+
env:
55+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }}

.goreleaser.yml

+17
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,20 @@ release:
9898
extra_files:
9999
- glob: ./kubens
100100
- glob: ./kubectx
101+
snapcrafts:
102+
- id: kubectx
103+
name: kubectx
104+
summary: 'kubectx + kubens: Power tools for kubectl'
105+
description: |
106+
kubectx is a tool to switch between contexts (clusters) on kubectl faster.
107+
kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily.
108+
grade: stable
109+
confinement: classic
110+
base: core20
111+
apps:
112+
kubectx:
113+
command: kubectx
114+
completer: completion/kubectx.bash
115+
kubens:
116+
command: kubens
117+
completer: completion/kubens.bash

0 commit comments

Comments
 (0)