Snap addition (#3844)

* add workflow

* branches:
  - snap_addition

* Add snap package build workflow

* Add snap package build master, staging

* snap version from Cargo.toml

* Seems like staging branch should have grade: devel quality level

* Set snap grade based on branch

* add multi arch

* Update snap.yaml

* snap: use arm platform for arm build

* snap: multi platform ci build

---------

Co-authored-by: ardocrat <ardocrat@gri.mw>
This commit is contained in:
wiesche
2026-05-28 07:15:33 +02:00
committed by GitHub
parent 8688a98e4f
commit f23c94cac5
4 changed files with 120 additions and 7 deletions
+33 -6
View File
@@ -1,6 +1,33 @@
# Rust latest
FROM mcr.microsoft.com/devcontainers/rust:latest
# Install Required Dependencies
RUN apt-get -qq update
RUN apt-get install -y build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
# Rust latest
FROM mcr.microsoft.com/devcontainers/rust:latest
# Install Required Dependencies
RUN apt-get -qq update
RUN apt-get install -y \
build-essential \
clang \
cmake \
fuse \
gh \
git \
libgit2-dev \
libncurses5-dev \
libncursesw5-dev \
libssl-dev \
llvm \
pkg-config \
snapd \
squashfuse \
sudo \
zlib1g-dev
RUN echo '#!/bin/bash\n\
/usr/lib/snapd/snapd &\n\
sleep 5\n\
exec "$@"' > /start-snapd.sh && \
chmod +x /start-snapd.sh
VOLUME ["/sys/fs/cgroup"]
ENTRYPOINT ["/start-snapd.sh"]
CMD ["bash"]
+2 -1
View File
@@ -16,5 +16,6 @@
"github.copilot-chat"
]
}
}
},
"runArgs": ["--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup:ro", "-v", "/tmp:/tmp"]
}
+45
View File
@@ -0,0 +1,45 @@
name: Snap Package
on:
workflow_dispatch:
push:
branches:
- master
- staging
jobs:
build-snap:
name: Build snap
strategy:
matrix:
runs-on: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.runs-on }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Prepare snapcraft project
run: |
grade=devel
if [ "${{ github.ref_name }}" = "master" ]; then
grade=stable
fi
mkdir -p snap
sed "s/SNAP_GRADE/$grade/" .packaging/snaps/snapcraft.yaml > snap/snapcraft.yaml
- name: Build snap package
id: build
uses: snapcore/action-build@v1
with:
path: .
- name: Show snap package
run: find . -maxdepth 1 -name "*.snap" -ls
- name: Upload snap artifact
uses: actions/upload-artifact@v6
with:
name: grin-snap
path: "*.snap"
if-no-files-found: error
+40
View File
@@ -0,0 +1,40 @@
name: grin
adopt-info: grin
summary: Minimal implementation of the Mimblewimble protocol
description: |
https://grin.mw/
confinement: strict
grade: SNAP_GRADE
base: core22
architectures:
- build-on: [arm64]
build-for: [arm64]
- build-on: [amd64]
build-for: [amd64]
parts:
grin:
plugin: rust
source: .
override-pull: |
craftctl default
craftctl set version="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n 1)"
build-packages:
- build-essential
- clang
- cmake
- libncurses5-dev
- libncursesw5-dev
- libssl-dev
- llvm
- pkg-config
- zlib1g-dev
apps:
grin:
environment:
LC_ALL: C.UTF-8
LANG: C.UTF-8
command: bin/grin
plugs: [network, network-bind]