ci: re-enable snap publishing (#10142)
* ci: enable snap publishing~ * ci: add publish snap script * ci: add snapcraft skeleton * ci: group export statements * ci: enable snaps on pr branch * ci: enable snaps on pr branch * ci: set default BUILD_ARCH * ci: enable snaps on pr branch * ci: enable snaps on pr branch * ci: add libdb to snap * ci: reinitiate gitlabci * ci: reinitiate publish-snap script * ci: fix yaml syntax * cargo/gitlab env vars * debug, revert me * version? * debug vars * vars * vars fix * vars fix * revert * Update scripts/gitlab/publish-snap.sh Co-Authored-By: 5chdn <5chdn@users.noreply.github.com> * ci: read track from cargo toml
This commit is contained in:
parent
3d28823be7
commit
f9a8aac036
@ -54,8 +54,6 @@ test-audit:
|
||||
build-linux:
|
||||
stage: build
|
||||
only: *releaseable_branches
|
||||
variables:
|
||||
CARGO_TARGET: x86_64-unknown-linux-gnu
|
||||
script:
|
||||
- scripts/gitlab/build-unix.sh
|
||||
<<: *collect_artifacts
|
||||
@ -97,6 +95,23 @@ publish-docker:
|
||||
script:
|
||||
- scripts/gitlab/publish-docker.sh parity
|
||||
|
||||
publish-snap:
|
||||
stage: publish
|
||||
only: *releaseable_branches
|
||||
image: parity/snapcraft:gitlab-ci
|
||||
variables:
|
||||
BUILD_ARCH: amd64
|
||||
cache: {}
|
||||
before_script: *determine_version
|
||||
dependencies:
|
||||
- build-linux
|
||||
tags:
|
||||
- rust-stable
|
||||
script:
|
||||
- scripts/gitlab/publish-snap.sh
|
||||
allow_failure: true
|
||||
<<: *collect_artifacts
|
||||
|
||||
publish-awss3:
|
||||
stage: publish
|
||||
only: *releaseable_branches
|
||||
|
36
scripts/gitlab/publish-snap.sh
Executable file
36
scripts/gitlab/publish-snap.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e # fail on any error
|
||||
set -u # treat unset variables as error
|
||||
|
||||
TRACK=`awk -F '=' '/^track/ {print $2}' ./util/version/Cargo.toml`
|
||||
|
||||
case ${TRACK} in
|
||||
nightly) export GRADE="devel" CHANNEL="edge";;
|
||||
beta) export GRADE="stable" CHANNEL="beta";;
|
||||
stable) export GRADE="stable" CHANNEL="stable";;
|
||||
*) echo "No release" exit 0;;
|
||||
esac
|
||||
|
||||
SNAP_PACKAGE="parity_"$VERSION"_"$BUILD_ARCH".snap"
|
||||
|
||||
echo "__________Create snap package__________"
|
||||
echo "Release channel :" $GRADE " Branch/tag: " $CI_COMMIT_REF_NAME
|
||||
echo $VERSION:$GRADE:$BUILD_ARCH
|
||||
cat scripts/snap/snapcraft.template.yaml | envsubst '$VERSION:$GRADE:$BUILD_ARCH:$CARGO_TARGET' > snapcraft.yaml
|
||||
cat snapcraft.yaml
|
||||
snapcraft --target-arch=$BUILD_ARCH
|
||||
ls *.snap
|
||||
|
||||
echo "__________Calculating checksums__________"
|
||||
rhash --sha256 $SNAP_PACKAGE -o $SNAP_PACKAGE".sha256"
|
||||
cat $SNAP_PACKAGE".sha256"
|
||||
|
||||
echo "__________Releasing snap package__________"
|
||||
echo "Release channel :" $CHANNEL " Branch/tag: " $CI_COMMIT_REF_NAME
|
||||
|
||||
echo $SNAPCRAFT_LOGIN_PARITY_BASE64 | base64 --decode > snapcraft.login
|
||||
snapcraft login --with snapcraft.login
|
||||
snapcraft push --release $CHANNEL $SNAP_PACKAGE
|
||||
snapcraft status parity
|
||||
snapcraft logout
|
BIN
scripts/snap/icon.png
Normal file
BIN
scripts/snap/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.9 KiB |
8
scripts/snap/parity.desktop
Normal file
8
scripts/snap/parity.desktop
Normal file
@ -0,0 +1,8 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=Parity Ethereum
|
||||
Comment=The fastest and most advanced Ethereum client.
|
||||
Exec=parity
|
||||
Icon=/usr/share/pixmaps/icon.png
|
||||
Terminal=true
|
57
scripts/snap/snapcraft.template.yaml
Normal file
57
scripts/snap/snapcraft.template.yaml
Normal file
@ -0,0 +1,57 @@
|
||||
name: parity
|
||||
version: $VERSION
|
||||
architectures: [$BUILD_ARCH]
|
||||
grade: $GRADE
|
||||
confinement: strict
|
||||
|
||||
summary: Fast, light, robust Ethereum implementation
|
||||
description: |
|
||||
Parity's goal is to be the fastest, lightest, and most secure Ethereum
|
||||
client. We are developing Parity using the sophisticated and cutting-edge
|
||||
Rust programming language. Parity is licensed under the GPLv3, and can be
|
||||
used for all your Ethereum needs.
|
||||
|
||||
apps:
|
||||
parity:
|
||||
command: parity
|
||||
plugs: [home, network, network-bind, mount-observe, x11, unity7, desktop, desktop-legacy, wayland]
|
||||
desktop: ./usr/share/applications/parity.desktop
|
||||
parity-evm:
|
||||
command: parity-evm
|
||||
plugs: [home, network, network-bind]
|
||||
ethkey:
|
||||
command: ethkey
|
||||
plugs: [home]
|
||||
ethstore:
|
||||
command: ethstore
|
||||
plugs: [home]
|
||||
whisper:
|
||||
command: whisper
|
||||
plugs: [home, network-bind]
|
||||
|
||||
icon: ./scripts/snap/icon.png
|
||||
|
||||
parts:
|
||||
desktop-icon:
|
||||
source: ./scripts/snap
|
||||
plugin: nil
|
||||
override-build: |
|
||||
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/applications
|
||||
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/pixmaps
|
||||
cp -v ./parity.desktop $SNAPCRAFT_PART_INSTALL/usr/share/applications/
|
||||
cp -v ./icon.png $SNAPCRAFT_PART_INSTALL/usr/share/pixmaps/
|
||||
parity:
|
||||
source: ./artifacts/$CARGO_TARGET
|
||||
plugin: nil
|
||||
override-build: |
|
||||
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/bin
|
||||
cp -v parity $SNAPCRAFT_PART_INSTALL/usr/bin/parity
|
||||
cp -v parity-evm $SNAPCRAFT_PART_INSTALL/usr/bin/parity-evm
|
||||
cp -v ethkey $SNAPCRAFT_PART_INSTALL/usr/bin/ethkey
|
||||
cp -v ethstore $SNAPCRAFT_PART_INSTALL/usr/bin/ethstore
|
||||
cp -v whisper $SNAPCRAFT_PART_INSTALL/usr/bin/whisper
|
||||
stage-packages: [libc6, libudev1, libstdc++6, cmake, libdb]
|
||||
df:
|
||||
plugin: nil
|
||||
stage-packages: [coreutils]
|
||||
stage: [bin/df]
|
Loading…
Reference in New Issue
Block a user