-
Notifications
You must be signed in to change notification settings - Fork 4
65 lines (58 loc) · 2.02 KB
/
snap.yaml
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
name: snap
on: # The event that triggers the workflow
push:
branches:
- main # When a commit is created on main
pull_request:
branches:
- main # When a pull request is opened against main
workflow_dispatch: # When the workflow is manually triggered
jobs:
build:
# It will run if:
# 1. The branch name contains the word 'release',
# OR
# 2. The event triggering the workflow is a 'workflow_dispatch' event. (manual run)
if: contains(github.ref, 'release') || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-22.04
outputs:
snap-file: ${{ steps.build-snap.outputs.snap }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install snapcraft
run: |
sudo snap install snapcraft --classic
- uses: snapcore/action-build@v1
# Upload the snap file as an artifact
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ngrok-snaps
path: ./*.snap
publish:
# It will run if:
# 1. The event triggering the workflow is a 'push' event,
# 2. The push is to the 'main' branch,
# 3. The branch name contains the word 'release',
# OR
# 4. The event triggering the workflow is a 'workflow_dispatch' event. (manual run)
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && contains(github.ref, 'release')) || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-22.04
needs: build # Wait for the build job to complete
steps:
- name: Download All Snap Artifacts
uses: actions/download-artifact@v4
with:
path: ngrok-snaps
merge-multiple: true
- run: ls -R
- name: Publish to Snap Store
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
run: |
sudo snap install snapcraft --classic
for snap in ngrok-snaps/*.snap; do
echo "Publishing $snap"
snapcraft push "$snap" --release=stable
done