Merge branch 'master' into gitlab-next
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e # fail on any error
|
||||
#ARGUMENTS: 1. BUILD_PLATFORM (target for binaries) 2. PLATFORM (target for cargo) 3. ARC (architecture) 4. & 5. CC & CXX flags 6. binary identifier
|
||||
BUILD_PLATFORM=$1
|
||||
@@ -15,15 +16,13 @@ echo "Build identifier: " $IDENT
|
||||
echo "Cargo target: " $PLATFORM
|
||||
echo "CC&CXX flags: " $CC ", " $CXX
|
||||
echo "Architecture: " $ARC
|
||||
echo "Libssl version: " $LIBSSL
|
||||
echo "Parity version: " $VER
|
||||
echo "Branch: " $CI_BUILD_REF_NAME
|
||||
echo "Protect? " $protect
|
||||
echo "--------------------"
|
||||
|
||||
# NOTE for md5 and sha256 we want to display filename as well
|
||||
# NOTE for sha256 we want to display filename as well
|
||||
# hence we use --* instead of -p *
|
||||
MD5_BIN="rhash --md5"
|
||||
SHA256_BIN="rhash --sha256"
|
||||
|
||||
set_env () {
|
||||
@@ -43,7 +42,6 @@ set_env_win () {
|
||||
set RUST_BACKTRACE=1
|
||||
#export RUSTFLAGS=$RUSTFLAGS
|
||||
rustup default stable-x86_64-pc-windows-msvc
|
||||
echo "MsBuild.exe windows\ptray\ptray.vcxproj /p:Platform=x64 /p:Configuration=Release" > msbuild.cmd
|
||||
echo "@ signtool sign /f "\%"1 /p "\%"2 /tr http://timestamp.comodoca.com /du https://parity.io "\%"3" > sign.cmd
|
||||
}
|
||||
build () {
|
||||
@@ -66,90 +64,22 @@ strip_binaries () {
|
||||
calculate_checksums () {
|
||||
echo "__________Checksum calculation__________"
|
||||
rhash --version
|
||||
rm -rf *.md5
|
||||
|
||||
rm -rf *.sha256
|
||||
BIN="target/$PLATFORM/release/parity$S3WIN"
|
||||
export SHA3="$($BIN tools hash $BIN)"
|
||||
echo "__________Parity file SHA3__________"
|
||||
echo $SHA3
|
||||
$MD5_BIN target/$PLATFORM/release/parity$S3WIN > parity$S3WIN.md5
|
||||
$SHA256_BIN target/$PLATFORM/release/parity$S3WIN > parity$S3WIN.sha256
|
||||
$MD5_BIN target/$PLATFORM/release/parity-evm$S3WIN > parity-evm$S3WIN.md5
|
||||
$SHA256_BIN target/$PLATFORM/release/parity-evm$S3WIN > parity-evm$S3WIN.sha256
|
||||
$MD5_BIN target/$PLATFORM/release/ethstore$S3WIN > ethstore$S3WIN.md5
|
||||
$SHA256_BIN target/$PLATFORM/release/ethstore$S3WIN > ethstore$S3WIN.sha256
|
||||
$MD5_BIN target/$PLATFORM/release/ethkey$S3WIN > ethkey$S3WIN.md5
|
||||
$SHA256_BIN target/$PLATFORM/release/ethkey$S3WIN > ethkey$S3WIN.sha256
|
||||
}
|
||||
make_deb () {
|
||||
rm -rf deb
|
||||
echo "__________Create DEBIAN files__________"
|
||||
mkdir -p deb/usr/bin/
|
||||
mkdir -p deb/DEBIAN
|
||||
echo "create copyright, docs, compat"
|
||||
cp LICENSE deb/DEBIAN/copyright
|
||||
echo "https://github.com/paritytech/parity/wiki" >> deb/DEBIAN/docs
|
||||
echo "8" >> deb/DEBIAN/compat
|
||||
echo "create control file"
|
||||
control=deb/DEBIAN/control
|
||||
echo "Package: parity" >> $control
|
||||
echo "Version: $VER" >> $control
|
||||
echo "Source: parity" >> $control
|
||||
echo "Section: science" >> $control
|
||||
echo "Priority: extra" >> $control
|
||||
echo "Maintainer: Parity Technologies <devops@parity.io>" >> $control
|
||||
echo "Build-Depends: debhelper (>=9)" >> $control
|
||||
echo "Standards-Version: 3.9.5" >> $control
|
||||
echo "Homepage: https://parity.io" >> $control
|
||||
echo "Vcs-Git: git://github.com/paritytech/parity.git" >> $control
|
||||
echo "Vcs-Browser: https://github.com/paritytech/parity" >> $control
|
||||
echo "Architecture: $ARC" >> $control
|
||||
echo "Depends: $LIBSSL" >> $control
|
||||
echo "Description: Ethereum network client by Parity Technologies" >> $control
|
||||
size=`du deb/|awk 'END {print $1}'`
|
||||
echo "Installed-Size: $size" >> $control
|
||||
echo "__________Build .deb package__________"
|
||||
cp target/$PLATFORM/release/parity deb/usr/bin/parity
|
||||
cp target/$PLATFORM/release/parity-evm deb/usr/bin/parity-evm
|
||||
cp target/$PLATFORM/release/ethstore deb/usr/bin/ethstore
|
||||
cp target/$PLATFORM/release/ethkey deb/usr/bin/ethkey
|
||||
dpkg-deb -b deb "parity_"$VER"_"$IDENT"_"$ARC".deb"
|
||||
$MD5_BIN "parity_"$VER"_"$IDENT"_"$ARC".deb" > "parity_"$VER"_"$IDENT"_"$ARC".deb.md5"
|
||||
$SHA256_BIN "parity_"$VER"_"$IDENT"_"$ARC".deb" > "parity_"$VER"_"$IDENT"_"$ARC".deb.sha256"
|
||||
}
|
||||
make_rpm () {
|
||||
rm -rf /install
|
||||
echo "__________Create RPM package__________"
|
||||
mkdir -p /install/usr/bin
|
||||
cp target/$PLATFORM/release/parity /install/usr/bin
|
||||
cp target/$PLATFORM/release/parity-evm /install/usr/bin/parity-evm
|
||||
cp target/$PLATFORM/release/ethstore /install/usr/bin/ethstore
|
||||
cp target/$PLATFORM/release/ethkey /install/usr/bin/ethkey
|
||||
|
||||
rm -rf "parity-"$VER"-1."$ARC".rpm" || true
|
||||
fpm -s dir -t rpm -n parity -v $VER --epoch 1 --license GPLv3 -d openssl --provides parity --url https://parity.io --vendor "Parity Technologies" -a x86_64 -m "<devops@parity.io>" --description "Ethereum network client by Parity Technologies" -C /install/
|
||||
cp "parity-"$VER"-1."$ARC".rpm" "parity_"$VER"_"$IDENT"_"$ARC".rpm"
|
||||
$MD5_BIN "parity_"$VER"_"$IDENT"_"$ARC".rpm" > "parity_"$VER"_"$IDENT"_"$ARC".rpm.md5"
|
||||
$SHA256_BIN "parity_"$VER"_"$IDENT"_"$ARC".rpm" > "parity_"$VER"_"$IDENT"_"$ARC".rpm.sha256"
|
||||
}
|
||||
make_pkg () {
|
||||
echo "__________Make OSX PKG__________"
|
||||
cp target/$PLATFORM/release/parity target/release/parity
|
||||
cp target/$PLATFORM/release/parity-evm target/release/parity-evm
|
||||
cp target/$PLATFORM/release/ethstore target/release/ethstore
|
||||
cp target/$PLATFORM/release/ethkey target/release/ethkey
|
||||
cd mac
|
||||
xcodebuild -configuration Release
|
||||
cd ..
|
||||
packagesbuild -v mac/Parity.pkgproj
|
||||
productsign --sign 'Developer ID Installer: PARITY TECHNOLOGIES LIMITED (P2PX3JU8FT)' target/release/Parity\ Ethereum.pkg target/release/Parity\ Ethereum-signed.pkg
|
||||
mv target/release/Parity\ Ethereum-signed.pkg "parity_"$VER"_"$IDENT"_"$ARC".pkg"
|
||||
$MD5_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT >> "parity_"$VER"_"$IDENT"_"$ARC".pkg.md5"
|
||||
$SHA256_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT >> "parity_"$VER"_"$IDENT"_"$ARC".pkg.sha256"
|
||||
echo "Parity file SHA3: $SHA3"
|
||||
$SHA256_BIN target/$PLATFORM/release/parity$S3WIN > parity$S3WIN.sha256
|
||||
$SHA256_BIN target/$PLATFORM/release/parity-evm$S3WIN > parity-evm$S3WIN.sha256
|
||||
$SHA256_BIN target/$PLATFORM/release/ethstore$S3WIN > ethstore$S3WIN.sha256
|
||||
$SHA256_BIN target/$PLATFORM/release/ethkey$S3WIN > ethkey$S3WIN.sha256
|
||||
$SHA256_BIN target/$PLATFORM/release/whisper$S3WIN > whisper$S3WIN.sha256
|
||||
}
|
||||
sign_exe () {
|
||||
if [[ -z "$protect" ]]; then echo "__________Skipping sign binaries__________"&&return; fi
|
||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/parity.exe"
|
||||
<<<<<<< HEAD:scripts/gitlab/build.sh
|
||||
./sign.cmd $keyfile $certpass windows/ptray/x64/release/ptray.exe
|
||||
}
|
||||
make_exe () {
|
||||
@@ -164,6 +94,12 @@ make_exe () {
|
||||
./sign.cmd $keyfile $certpass "parity_"$VER"_"$IDENT"_"$ARC"."$EXT
|
||||
$MD5_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT -p %h > "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5"
|
||||
$SHA256_BIN "parity_"$VER"_"$IDENT"_"$ARC"."$EXT -p %h > "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256"
|
||||
=======
|
||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/parity-evm.exe"
|
||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/ethstore.exe"
|
||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/ethkey.exe"
|
||||
./sign.cmd $keyfile $certpass "target/$PLATFORM/release/whisper.exe"
|
||||
>>>>>>> master:scripts/gitlab-build.sh
|
||||
}
|
||||
push_snap () {
|
||||
if [[ -z "$protect" ]]; then echo "__________Skipping push and release snap__________"&&return; fi
|
||||
@@ -232,7 +168,7 @@ push_binaries () {
|
||||
echo "__________Push binaries to AWS S3__________"
|
||||
aws configure set aws_access_key_id $s3_key
|
||||
aws configure set aws_secret_access_key $s3_secret
|
||||
if [[ "$CI_BUILD_REF_NAME" = "master" || "$CI_BUILD_REF_NAME" = "beta" || "$CI_BUILD_REF_NAME" = "stable" || "$CI_BUILD_REF_NAME" = "nightly" ]];
|
||||
if [[ "$CI_BUILD_REF_NAME" = "beta" || "$CI_BUILD_REF_NAME" = "stable" || "$CI_BUILD_REF_NAME" = "nightly" ]];
|
||||
then
|
||||
export S3_BUCKET=builds-parity-published;
|
||||
else
|
||||
@@ -240,35 +176,21 @@ push_binaries () {
|
||||
fi
|
||||
aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$BUILD_PLATFORM
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity$S3WIN --body target/$PLATFORM/release/parity$S3WIN
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity$S3WIN.md5 --body parity$S3WIN.md5
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity$S3WIN.sha256 --body parity$S3WIN.sha256
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity-evm$S3WIN --body target/$PLATFORM/release/parity-evm$S3WIN
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity-evm$S3WIN.md5 --body parity-evm$S3WIN.md5
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/parity-evm$S3WIN.sha256 --body parity-evm$S3WIN.sha256
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethstore$S3WIN --body target/$PLATFORM/release/ethstore$S3WIN
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethstore$S3WIN.md5 --body ethstore$S3WIN.md5
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethstore$S3WIN.sha256 --body ethstore$S3WIN.sha256
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethkey$S3WIN --body target/$PLATFORM/release/ethkey$S3WIN
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethkey$S3WIN.md5 --body ethkey$S3WIN.md5
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/ethkey$S3WIN.sha256 --body ethkey$S3WIN.sha256
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5" --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".md5"
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/"parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256" --body "parity_"$VER"_"$IDENT"_"$ARC"."$EXT".sha256"
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN --body target/$PLATFORM/release/whisper$S3WIN
|
||||
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$BUILD_PLATFORM/whisper$S3WIN.sha256 --body whisper$S3WIN.sha256
|
||||
}
|
||||
prepare_artifacts () {
|
||||
echo "__________Copy all artifacts to one place__________"
|
||||
rm -rf artifacts
|
||||
mkdir -p artifacts
|
||||
cp target/$PLATFORM/release/parity$S3WIN artifacts
|
||||
cp target/$PLATFORM/release/parity-evm$S3WIN artifacts
|
||||
cp target/$PLATFORM/release/ethstore$S3WIN artifacts
|
||||
cp target/$PLATFORM/release/ethkey$S3WIN parity$S3WIN.md5 artifacts
|
||||
cp parity-evm$S3WIN.md5 ethstore$S3WIN.md5 artifacts
|
||||
cp ethkey$S3WIN.md5 artifacts
|
||||
cp parity$S3WIN.sha256 artifacts
|
||||
cp parity-evm$S3WIN.sha256 artifacts
|
||||
cp ethstore$S3WIN.sha256 artifacts
|
||||
cp ethkey$S3WIN.sha256 artifacts
|
||||
|
||||
make_archive () {
|
||||
echo "add artifacts to archive"
|
||||
rm -rf parity.zip
|
||||
zip -r parity.zip target/$PLATFORM/release/parity$S3WIN target/$PLATFORM/release/parity-evm$S3WIN target/$PLATFORM/release/ethstore$S3WIN target/$PLATFORM/release/ethkey$S3WIN target/$PLATFORM/release/whisper$S3WIN parity$S3WIN.sha256 parity-evm$S3WIN.sha256 ethstore$S3WIN.sha256 ethkey$S3WIN.sha256 whisper$S3WIN.sha256
|
||||
}
|
||||
updater_push_release () {
|
||||
echo "__________Build comlete__________"
|
||||
@@ -294,75 +216,93 @@ case $BUILD_PLATFORM in
|
||||
#set strip bin
|
||||
STRIP_BIN="strip"
|
||||
#package extention
|
||||
EXT="deb"
|
||||
build_and_push
|
||||
;;
|
||||
x86_64-unknown-debian-gnu)
|
||||
STRIP_BIN="strip"
|
||||
EXT="deb"
|
||||
LIBSSL="libssl1.1 (>=1.1.0)"
|
||||
echo "__________Use libssl1.1 (>=1.1.0) for Debian builds__________"
|
||||
build_and_push
|
||||
;;
|
||||
x86_64-unknown-centos-gnu)
|
||||
STRIP_BIN="strip"
|
||||
EXT="rpm"
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_rpm
|
||||
prepare_artifacts
|
||||
make_archive
|
||||
push_binaries
|
||||
updater_push_release
|
||||
;;
|
||||
i686-unknown-linux-gnu)
|
||||
STRIP_BIN="strip"
|
||||
EXT="deb"
|
||||
set_env
|
||||
<<<<<<< HEAD:scripts/gitlab/build.sh
|
||||
build_and_push
|
||||
=======
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_archive
|
||||
push_binaries
|
||||
>>>>>>> master:scripts/gitlab-build.sh
|
||||
;;
|
||||
armv7-unknown-linux-gnueabihf)
|
||||
STRIP_BIN="arm-linux-gnueabihf-strip"
|
||||
EXT="deb"
|
||||
set_env
|
||||
build_and_push
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_archive
|
||||
push_binaries
|
||||
;;
|
||||
arm-unknown-linux-gnueabihf)
|
||||
STRIP_BIN="arm-linux-gnueabihf-strip"
|
||||
EXT="deb"
|
||||
set_env
|
||||
build_and_push
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_archive
|
||||
push_binaries
|
||||
;;
|
||||
aarch64-unknown-linux-gnu)
|
||||
STRIP_BIN="aarch64-linux-gnu-strip"
|
||||
EXT="deb"
|
||||
set_env
|
||||
build_and_push
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_archive
|
||||
push_binaries
|
||||
;;
|
||||
x86_64-apple-darwin)
|
||||
STRIP_BIN="strip"
|
||||
PLATFORM="x86_64-apple-darwin"
|
||||
EXT="pkg"
|
||||
build
|
||||
strip_binaries
|
||||
calculate_checksums
|
||||
make_pkg
|
||||
prepare_artifacts
|
||||
make_archive
|
||||
push_binaries
|
||||
updater_push_release
|
||||
;;
|
||||
x86_64-unknown-snap-gnu)
|
||||
make_snap
|
||||
;;
|
||||
i686-unknown-snap-gnu)
|
||||
set_env
|
||||
make_snap
|
||||
;;
|
||||
arm64-unknown-snap-gnu)
|
||||
make_snap
|
||||
;;
|
||||
armhf-unknown-snap-gnu)
|
||||
make_snap
|
||||
ARC="amd64"
|
||||
EXT="snap"
|
||||
apt update
|
||||
apt install -y expect zip rhash
|
||||
snapcraft clean
|
||||
echo "Prepare snapcraft.yaml for build on Gitlab CI in Docker image"
|
||||
sed -i 's/git/'"$VER"'/g' snap/snapcraft.yaml
|
||||
if [[ "$CI_BUILD_REF_NAME" = "stable" || "$CI_BUILD_REF_NAME" = "beta" || "$VER" == *1.11* || "$VER" == *2.0* ]];
|
||||
then
|
||||
sed -i -e 's/grade: devel/grade: stable/' snap/snapcraft.yaml;
|
||||
fi
|
||||
mv -f snap/snapcraft.yaml snapcraft.yaml
|
||||
snapcraft -d
|
||||
snapcraft_login=$(expect -c "
|
||||
spawn snapcraft login
|
||||
expect \"Email:\"
|
||||
send \"$SNAP_EMAIL\n\"
|
||||
expect \"Password:\"
|
||||
send \"$SNAP_PASS\n\"
|
||||
expect \"\$\"
|
||||
")
|
||||
echo "$snapcraft_login"
|
||||
snapcraft push "parity_"$VER"_amd64.snap"
|
||||
snapcraft status parity
|
||||
snapcraft logout
|
||||
$SHA256_BIN "parity_"$VER"_amd64.snap" > "parity_"$VER"_amd64.snap.sha256"
|
||||
echo "add artifacts to archive"
|
||||
rm -rf parity.zip
|
||||
zip -r parity.zip "parity_"$VER"_amd64.snap" "parity_"$VER"_amd64.snap.sha256"
|
||||
;;
|
||||
x86_64-pc-windows-msvc)
|
||||
set_env_win
|
||||
@@ -371,8 +311,7 @@ case $BUILD_PLATFORM in
|
||||
build
|
||||
sign_exe
|
||||
calculate_checksums
|
||||
make_exe
|
||||
prepare_artifacts
|
||||
make_archive
|
||||
push_binaries
|
||||
updater_push_release
|
||||
esac
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e # fail on any error
|
||||
set -u # treat unset variables as error
|
||||
|
||||
Reference in New Issue
Block a user