snap: reenable i386, arm64, armhf architecture publishing (#10386)
* snap: reenable i386, arm64, armhf architecture publishing * gitlab: fix indent * gitlab: fix yml syntax * Linker for crosscomile * fix target to linker * new docker image * fix lint, add build to this PR * calc SHA3 using rhash * add new images for i386, armhf * show snap target & artifacts * set CARGO_TARGET for publish snap * move detect Version to publish snap * rm libc6 dep from snap-template up pub-snap script * clean up cargo config before add linker * move linker config to docker images
This commit is contained in:
parent
fcccbf3b75
commit
bceb883d99
@ -4,8 +4,7 @@ stages:
|
|||||||
- publish
|
- publish
|
||||||
- optional
|
- optional
|
||||||
|
|
||||||
image: parity/rust:gitlab-ci
|
image: parity/rust-parity-ethereum-build:xenial
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
GIT_STRATEGY: fetch
|
GIT_STRATEGY: fetch
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
@ -35,14 +34,6 @@ variables:
|
|||||||
paths:
|
paths:
|
||||||
- artifacts/
|
- artifacts/
|
||||||
|
|
||||||
.determine_version: &determine_version
|
|
||||||
- VERSION="$(sed -r -n '1,/^version/s/^version = "([^"]+)".*$/\1/p' Cargo.toml)"
|
|
||||||
- DATE_STR="$(date +%Y%m%d)"
|
|
||||||
- ID_SHORT="$(echo ${CI_COMMIT_SHA} | cut -c 1-7)"
|
|
||||||
- test "${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}" = "nightly" && VERSION="${VERSION}-${ID_SHORT}-${DATE_STR}"
|
|
||||||
- export VERSION
|
|
||||||
- echo "Version = ${VERSION}"
|
|
||||||
|
|
||||||
test-linux:
|
test-linux:
|
||||||
stage: test
|
stage: test
|
||||||
variables:
|
variables:
|
||||||
@ -62,7 +53,7 @@ test-audit:
|
|||||||
tags:
|
tags:
|
||||||
- linux-docker
|
- linux-docker
|
||||||
|
|
||||||
build-linux:
|
build-linux: &build-linux
|
||||||
stage: build
|
stage: build
|
||||||
only: *releaseable_branches
|
only: *releaseable_branches
|
||||||
script:
|
script:
|
||||||
@ -72,6 +63,24 @@ build-linux:
|
|||||||
tags:
|
tags:
|
||||||
- linux-docker
|
- linux-docker
|
||||||
|
|
||||||
|
build-linux-i386:
|
||||||
|
<<: *build-linux
|
||||||
|
image: parity/rust-parity-ethereum-build:i386
|
||||||
|
variables:
|
||||||
|
CARGO_TARGET: i686-unknown-linux-gnu
|
||||||
|
|
||||||
|
build-linux-arm64:
|
||||||
|
<<: *build-linux
|
||||||
|
image: parity/rust-parity-ethereum-build:arm64
|
||||||
|
variables:
|
||||||
|
CARGO_TARGET: aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
|
build-linux-armhf:
|
||||||
|
<<: *build-linux
|
||||||
|
image: parity/rust-parity-ethereum-build:armhf
|
||||||
|
variables:
|
||||||
|
CARGO_TARGET: armv7-unknown-linux-gnueabihf
|
||||||
|
|
||||||
build-darwin:
|
build-darwin:
|
||||||
stage: build
|
stage: build
|
||||||
only: *releaseable_branches
|
only: *releaseable_branches
|
||||||
@ -108,7 +117,7 @@ publish-docker:
|
|||||||
script:
|
script:
|
||||||
- scripts/gitlab/publish-docker.sh parity
|
- scripts/gitlab/publish-docker.sh parity
|
||||||
|
|
||||||
publish-snap:
|
publish-snap: &publish-snap
|
||||||
stage: publish
|
stage: publish
|
||||||
only: *releaseable_branches
|
only: *releaseable_branches
|
||||||
# <<: *no_git
|
# <<: *no_git
|
||||||
@ -116,16 +125,35 @@ publish-snap:
|
|||||||
variables:
|
variables:
|
||||||
BUILD_ARCH: amd64
|
BUILD_ARCH: amd64
|
||||||
cache: {}
|
cache: {}
|
||||||
before_script: *determine_version
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- build-linux
|
- build-linux
|
||||||
tags:
|
tags:
|
||||||
- rust-stable
|
- linux-docker
|
||||||
script:
|
script:
|
||||||
- scripts/gitlab/publish-snap.sh
|
- scripts/gitlab/publish-snap.sh
|
||||||
allow_failure: true
|
|
||||||
<<: *collect_artifacts
|
<<: *collect_artifacts
|
||||||
|
|
||||||
|
publish-snap-i386:
|
||||||
|
<<: *publish-snap
|
||||||
|
variables:
|
||||||
|
BUILD_ARCH: i386
|
||||||
|
dependencies:
|
||||||
|
- build-linux-i386
|
||||||
|
|
||||||
|
publish-snap-arm64:
|
||||||
|
<<: *publish-snap
|
||||||
|
variables:
|
||||||
|
BUILD_ARCH: arm64
|
||||||
|
dependencies:
|
||||||
|
- build-linux-arm64
|
||||||
|
|
||||||
|
publish-snap-armhf:
|
||||||
|
<<: *publish-snap
|
||||||
|
variables:
|
||||||
|
BUILD_ARCH: armhf
|
||||||
|
dependencies:
|
||||||
|
- build-linux-armhf
|
||||||
|
|
||||||
publish-onchain:
|
publish-onchain:
|
||||||
stage: publish
|
stage: publish
|
||||||
only: *releaseable_branches
|
only: *releaseable_branches
|
||||||
@ -191,4 +219,3 @@ build-android:
|
|||||||
- linux-docker
|
- linux-docker
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
<<: *collect_artifacts
|
<<: *collect_artifacts
|
||||||
|
|
||||||
|
@ -11,6 +11,9 @@ echo "CC: " $CC
|
|||||||
echo "CXX: " $CXX
|
echo "CXX: " $CXX
|
||||||
#strip ON
|
#strip ON
|
||||||
export RUSTFLAGS=" -C link-arg=-s"
|
export RUSTFLAGS=" -C link-arg=-s"
|
||||||
|
# Linker for crosscomile
|
||||||
|
echo "_____ Linker _____"
|
||||||
|
cat .cargo/config
|
||||||
|
|
||||||
echo "_____ Building target: "$CARGO_TARGET" _____"
|
echo "_____ Building target: "$CARGO_TARGET" _____"
|
||||||
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
|
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
|
||||||
@ -43,11 +46,6 @@ fi
|
|||||||
echo "_____ Calculating checksums _____"
|
echo "_____ Calculating checksums _____"
|
||||||
for binary in $(ls)
|
for binary in $(ls)
|
||||||
do
|
do
|
||||||
rhash --sha256 $binary -o $binary.sha256
|
rhash --sha256 $binary -o $binary.sha256 #do we still need this hash (SHA2)?
|
||||||
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
|
rhash --sha3-256 $binary -o $binary.sha3
|
||||||
then
|
|
||||||
echo "> ${binary} cannot be hashed with cross-compiled binary"
|
|
||||||
else
|
|
||||||
./parity tools hash $binary > $binary.sha3
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
@ -8,7 +8,10 @@ set -u # treat unset variables as error
|
|||||||
# gsub(/ /, "", $2) deletes whitespaces
|
# gsub(/ /, "", $2) deletes whitespaces
|
||||||
TRACK=`awk -F '=' '/^track/ {gsub(/"/, "", $2); gsub(/ /, "", $2); print $2}' ./util/version/Cargo.toml`
|
TRACK=`awk -F '=' '/^track/ {gsub(/"/, "", $2); gsub(/ /, "", $2); print $2}' ./util/version/Cargo.toml`
|
||||||
echo Track is: $TRACK
|
echo Track is: $TRACK
|
||||||
|
# prepare variables
|
||||||
|
VERSION=v"$(sed -r -n '1,/^version/s/^version = "([^"]+)".*$/\1/p' Cargo.toml)"
|
||||||
|
SNAP_PACKAGE="parity_"$VERSION"_"$BUILD_ARCH".snap"
|
||||||
|
CARGO_TARGET="$(ls artifacts)"
|
||||||
# Choose snap release channel based on parity ethereum version track
|
# Choose snap release channel based on parity ethereum version track
|
||||||
case ${TRACK} in
|
case ${TRACK} in
|
||||||
nightly) export GRADE="devel" CHANNEL="edge";;
|
nightly) export GRADE="devel" CHANNEL="edge";;
|
||||||
@ -21,24 +24,16 @@ esac
|
|||||||
case ${CI_COMMIT_REF_NAME} in
|
case ${CI_COMMIT_REF_NAME} in
|
||||||
beta|stable) export GRADE="stable" CHANNEL="candidate";;
|
beta|stable) export GRADE="stable" CHANNEL="candidate";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
VERSION="v"$VERSION
|
|
||||||
SNAP_PACKAGE="parity_"$VERSION"_"$BUILD_ARCH".snap"
|
|
||||||
|
|
||||||
echo "__________Create snap package__________"
|
echo "__________Create snap package__________"
|
||||||
echo "Release channel :" $GRADE " Branch/tag: " $CI_COMMIT_REF_NAME
|
echo "Release channel :" $GRADE " Branch/tag: " $CI_COMMIT_REF_NAME
|
||||||
echo $VERSION:$GRADE:$BUILD_ARCH
|
echo $VERSION:$GRADE:$BUILD_ARCH:$CARGO_TARGET
|
||||||
# cat scripts/snap/snapcraft.template.yaml | envsubst '$VERSION:$GRADE:$BUILD_ARCH:$CARGO_TARGET' > snapcraft.yaml
|
|
||||||
# a bit more necromancy (substitutions):
|
|
||||||
pwd
|
|
||||||
cd /builds/$CI_PROJECT_PATH/scripts/snap/
|
|
||||||
sed -e 's/$VERSION/'"$VERSION"'/g' \
|
sed -e 's/$VERSION/'"$VERSION"'/g' \
|
||||||
-e 's/$GRADE/'"$GRADE"'/g' \
|
-e 's/$GRADE/'"$GRADE"'/g' \
|
||||||
-e 's/$BUILD_ARCH/'"$BUILD_ARCH"'/g' \
|
-e 's/$BUILD_ARCH/'"$BUILD_ARCH"'/g' \
|
||||||
-e 's/$CARGO_TARGET/'"$CARGO_TARGET"'/g' \
|
-e 's/$CARGO_TARGET/'"$CARGO_TARGET"'/g' \
|
||||||
snapcraft.template.yaml > /builds/$CI_PROJECT_PATH/snapcraft.yaml
|
scripts/snap/snapcraft.template.yaml > snapcraft.yaml
|
||||||
cd /builds/$CI_PROJECT_PATH
|
|
||||||
pwd
|
|
||||||
apt update
|
apt update
|
||||||
apt install -y --no-install-recommends rhash
|
apt install -y --no-install-recommends rhash
|
||||||
cat snapcraft.yaml
|
cat snapcraft.yaml
|
||||||
|
@ -50,4 +50,4 @@ parts:
|
|||||||
cp -v ethkey $SNAPCRAFT_PART_INSTALL/usr/bin/ethkey
|
cp -v ethkey $SNAPCRAFT_PART_INSTALL/usr/bin/ethkey
|
||||||
cp -v ethstore $SNAPCRAFT_PART_INSTALL/usr/bin/ethstore
|
cp -v ethstore $SNAPCRAFT_PART_INSTALL/usr/bin/ethstore
|
||||||
cp -v whisper $SNAPCRAFT_PART_INSTALL/usr/bin/whisper
|
cp -v whisper $SNAPCRAFT_PART_INSTALL/usr/bin/whisper
|
||||||
stage-packages: [libc6, libudev1, libstdc++6, cmake, libdb5.3]
|
stage-packages: [libudev1, libstdc++6, cmake, libdb5.3]
|
||||||
|
Loading…
Reference in New Issue
Block a user