Skip to content

Commit e613906

Browse files
committed
ci: add CI for snap package build/publish/promote
1 parent 41dd1a3 commit e613906

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

.github/workflows/build-package.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,37 @@ jobs:
301301
path: |
302302
dist/icloud*
303303
304+
build_linux_snap:
305+
name: Build snap
306+
strategy:
307+
matrix:
308+
include:
309+
- os: ubuntu-24.04
310+
- os: ubuntu-24.04-arm
311+
runs-on: ${{ matrix.os }}
312+
steps:
313+
- name: Check out the code
314+
uses: actions/checkout@v4
315+
with:
316+
fetch-depth: 0
317+
318+
- name: Setup LXD
319+
uses: canonical/setup-lxd@v0.1.3
320+
321+
- name: Setup Snapcraft
322+
run: sudo snap install --classic snapcraft
323+
324+
- name: Build snap
325+
run: snapcraft --verbose
326+
327+
- name: Upload artifacts
328+
uses: actions/upload-artifact@v4
329+
with:
330+
name: icloudpd-snap
331+
if-no-files-found: error
332+
path: |
333+
*.snap
334+
304335
clone_src_whl:
305336
runs-on: ubuntu-22.04
306337
needs:
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Promote Snap (candidate -> stable)
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
promote:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Promote snap to stable
11+
env:
12+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_TOKEN }}
13+
run: |
14+
sudo snap install --classic snapcraft
15+
snapcraft promote icloudpd --from-channel latest/candidate --to-channel latest/stable --yes

.github/workflows/publish.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,27 @@ jobs:
121121
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
122122
run: |
123123
python3 -m twine upload --non-interactive --disable-progress-bar dist/*.whl
124+
125+
snap:
126+
runs-on: ubuntu-22.04
127+
steps:
128+
- name: Checkout code
129+
uses: actions/checkout@v4
124130

131+
- name: Download artifacts (snap)
132+
uses: actions/download-artifact@v4
133+
with:
134+
name: icloudpd-snap
135+
136+
- name: Setup Snapcraft
137+
run: sudo snap install --classic snapcraft
138+
139+
- name: Release snap
140+
env:
141+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_TOKEN }}
142+
run: |
143+
snapcraft upload icloudpd_*.snap --release latest/candidate
144+
125145
gh_release:
126146
runs-on: ubuntu-22.04
127147
steps:

0 commit comments

Comments
 (0)