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:
@@ -3,4 +3,31 @@ 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
|
||||
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"]
|
||||
|
||||
@@ -16,5 +16,6 @@
|
||||
"github.copilot-chat"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"runArgs": ["--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup:ro", "-v", "/tmp:/tmp"]
|
||||
}
|
||||
@@ -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
|
||||
@@ -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]
|
||||
Reference in New Issue
Block a user