From b4ef7bbc5b33a206d4d0c56730e6003eeae6e20c Mon Sep 17 00:00:00 2001 From: "Denis S. Soldatov aka General-Beck" Date: Tue, 18 Jul 2017 16:15:26 +0300 Subject: [PATCH] fix docker build in stable --- .gitlab-ci.yml | 167 ++++++++++++++++++++++++++-------------- docker/hub/Dockerfile | 4 +- scripts/docker-build.sh | 9 ++- 3 files changed, 116 insertions(+), 64 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b13bb66f..37b72b6c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,6 +9,7 @@ variables: RUST_BACKTRACE: "1" RUSTFLAGS: "" CARGOFLAGS: "" + CI_SERVER_NAME: "GitLab CI" cache: key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME" untracked: true @@ -21,10 +22,11 @@ linux-stable: - stable - triggers script: + - rustup default stable - cargo build -j $(nproc) --release --features final $CARGOFLAGS - cargo build -j $(nproc) --release -p evmbin - - cargo build -j $(nproc) --release -p ethstore - - cargo build -j $(nproc) --release -p ethkey + - cargo build -j $(nproc) --release -p ethstore-cli + - cargo build -j $(nproc) --release -p ethkey-cli - strip target/release/parity - strip target/release/parity-evm - strip target/release/ethstore @@ -65,7 +67,6 @@ linux-snap: only: - snap - beta - - stable - tags - triggers script: @@ -76,7 +77,7 @@ linux-snap: - echo "Version:"$VER - snapcraft - ls - #- cp "parity_"*"_amd64.snap" "parity_"$VER"_amd64.snap" + - cp "parity_"$CI_BUILD"_REF_NAME_amd64.snap" "parity_"$VER"_amd64.snap" - md5sum "parity_"$VER"_amd64.snap" > "parity_"$VER"_amd64.snap.md5" - aws configure set aws_access_key_id $s3_key - aws configure set aws_secret_access_key $s3_secret @@ -92,6 +93,7 @@ linux-snap: paths: - scripts/parity_*_amd64.snap name: "stable-x86_64-unknown-snap-gnu_parity" + allow_failure: true linux-stable-debian: stage: build image: parity/rust-debian:gitlab-ci @@ -103,8 +105,8 @@ linux-stable-debian: script: - cargo build -j $(nproc) --release --features final $CARGOFLAGS - cargo build -j $(nproc) --release -p evmbin - - cargo build -j $(nproc) --release -p ethstore - - cargo build -j $(nproc) --release -p ethkey + - cargo build -j $(nproc) --release -p ethstore-cli + - cargo build -j $(nproc) --release -p ethkey-cli - strip target/release/parity - strip target/release/parity-evm - strip target/release/ethstore @@ -145,6 +147,7 @@ linux-beta: - stable - triggers script: + - rustup default beta - cargo build -j $(nproc) --release $CARGOFLAGS - strip target/release/parity tags: @@ -164,6 +167,7 @@ linux-nightly: - stable - triggers script: + - rustup default nightly - cargo build -j $(nproc) --release $CARGOFLAGS - strip target/release/parity tags: @@ -187,8 +191,17 @@ linux-centos: - export CC="gcc" - export PLATFORM=x86_64-unknown-centos-gnu - cargo build -j $(nproc) --release --features final $CARGOFLAGS + - cargo build -j $(nproc) --release -p evmbin + - cargo build -j $(nproc) --release -p ethstore-cli + - cargo build -j $(nproc) --release -p ethkey-cli - strip target/release/parity + - strip target/release/parity-evm + - strip target/release/ethstore + - strip target/release/ethkey - md5sum target/release/parity > parity.md5 + - md5sum target/release/parity-evm > parity-evm.md5 + - md5sum target/release/ethstore > ethstore.md5 + - md5sum target/release/ethkey > ethkey.md5 - export SHA3=$(target/release/parity tools hash target/release/parity) - aws configure set aws_access_key_id $s3_key - aws configure set aws_secret_access_key $s3_secret @@ -196,6 +209,12 @@ linux-centos: - aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity --body target/release/parity - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity.md5 --body parity.md5 + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity-evm --body target/release/parity-evm + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity-evm.md5 --body parity-evm.md5 + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/ethstore --body target/release/ethstore + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/ethstore.md5 --body ethstore.md5 + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/ethkey --body target/release/ethkey + - aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/ethkey.md5 --body ethkey.md5 - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM tags: @@ -218,12 +237,22 @@ linux-i686: - export HOST_CXX=g++ - export COMMIT=$(git rev-parse HEAD) - export PLATFORM=i686-unknown-linux-gnu - - cargo build -j $(nproc) --target i686-unknown-linux-gnu --features final --release $CARGOFLAGS + - cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS + - cargo build -j $(nproc) --target $PLATFORM --release -p evmbin + - cargo build -j $(nproc) --target $PLATFORM --release -p ethstore-cli + - cargo build -j $(nproc) --target $PLATFORM --release -p ethkey-cli + - strip target/$PLATFORM/release/parity + - strip target/$PLATFORM/release/parity-evm + - strip target/$PLATFORM/release/ethstore + - strip target/$PLATFORM/release/ethkey - strip target/$PLATFORM/release/parity - md5sum target/$PLATFORM/release/parity > parity.md5 - export SHA3=$(target/$PLATFORM/release/parity tools hash target/$PLATFORM/release/parity) - sh scripts/deb-build.sh i386 - 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 - export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") - dpkg-deb -b deb "parity_"$VER"_i386.deb" - md5sum "parity_"$VER"_i386.deb" > "parity_"$VER"_i386.deb.md5" @@ -265,11 +294,23 @@ linux-armv7: - echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config - cat .cargo/config - cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS + - cargo build -j $(nproc) --target $PLATFORM --release -p evmbin + - cargo build -j $(nproc) --target $PLATFORM --release -p ethstore-cli + - cargo build -j $(nproc) --target $PLATFORM --release -p ethkey-cli + - md5sum target/$PLATFORM/release/parity > parity.md5 + - export SHA3=$(target/$PLATFORM/release/parity tools hash target/$PLATFORM/release/parity) + - sh scripts/deb-build.sh i386 - arm-linux-gnueabihf-strip target/$PLATFORM/release/parity - - export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h) + - arm-linux-gnueabihf-strip target/$PLATFORM/release/parity-evm + - arm-linux-gnueabihf-strip target/$PLATFORM/release/ethstore + - arm-linux-gnueabihf-strip target/$PLATFORM/release/ethkey + - export SHA3=$(rhash --sha3-256 target/$PLATFORM/release/parity -p %h) - md5sum target/$PLATFORM/release/parity > parity.md5 - sh scripts/deb-build.sh armhf - 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 - export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") - dpkg-deb -b deb "parity_"$VER"_armhf.deb" - md5sum "parity_"$VER"_armhf.deb" > "parity_"$VER"_armhf.deb.md5" @@ -311,11 +352,20 @@ linux-arm: - echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config - cat .cargo/config - cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS + - cargo build -j $(nproc) --target $PLATFORM --release -p evmbin + - cargo build -j $(nproc) --target $PLATFORM --release -p ethstore-cli + - cargo build -j $(nproc) --target $PLATFORM --release -p ethkey-cli - arm-linux-gnueabihf-strip target/$PLATFORM/release/parity - - export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h) + - arm-linux-gnueabihf-strip target/$PLATFORM/release/parity-evm + - arm-linux-gnueabihf-strip target/$PLATFORM/release/ethstore + - arm-linux-gnueabihf-strip target/$PLATFORM/release/ethkey + - export SHA3=$(rhash --sha3-256 target/$PLATFORM/release/parity -p %h) - md5sum target/$PLATFORM/release/parity > parity.md5 - sh scripts/deb-build.sh armhf - 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 - export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") - dpkg-deb -b deb "parity_"$VER"_armhf.deb" - md5sum "parity_"$VER"_armhf.deb" > "parity_"$VER"_armhf.deb.md5" @@ -337,45 +387,6 @@ linux-arm: - target/arm-unknown-linux-gnueabihf/release/parity name: "arm-unknown-linux-gnueabihf_parity" allow_failure: true -linux-armv6: - stage: build - image: parity/rust-armv6:gitlab-ci - only: -# - beta -# - tags -# - stable - - triggers - script: - - export CC=arm-linux-gnueabi-gcc - - export CXX=arm-linux-gnueabi-g++ - - export HOST_CC=gcc - - export HOST_CXX=g++ - - export PLATFORM=arm-unknown-linux-gnueabi - - rm -rf .cargo - - mkdir -p .cargo - - echo "[target.$PLATFORM]" >> .cargo/config - - echo "linker= \"arm-linux-gnueabi-gcc\"" >> .cargo/config - - cat .cargo/config - - cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS - - arm-linux-gnueabi-strip target/$PLATFORM/release/parity - - export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h) - - md5sum target/$PLATFORM/release/parity > parity.md5 - - aws configure set aws_access_key_id $s3_key - - aws configure set aws_secret_access_key $s3_secret - - if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi - - aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM - - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/$PLATFORM/release/parity - - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5 - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM - tags: - - rust - - rust-arm - artifacts: - paths: - - target/arm-unknown-linux-gnueabi/release/parity - name: "arm-unknown-linux-gnueabi_parity" - allow_failure: true linux-aarch64: stage: build image: parity/rust-arm64:gitlab-ci @@ -396,11 +407,20 @@ linux-aarch64: - echo "linker= \"aarch64-linux-gnu-gcc\"" >> .cargo/config - cat .cargo/config - cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS + - cargo build -j $(nproc) --target $PLATFORM --release -p evmbin + - cargo build -j $(nproc) --target $PLATFORM --release -p ethstore-cli + - cargo build -j $(nproc) --target $PLATFORM --release -p ethkey-cli - aarch64-linux-gnu-strip target/$PLATFORM/release/parity - - export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h) + - aarch64-linux-gnu-strip target/$PLATFORM/release/parity-evm + - aarch64-linux-gnu-strip target/$PLATFORM/release/ethstore + - aarch64-linux-gnu-strip target/$PLATFORM/release/ethkey + - export SHA3=$(rhash --sha3-256 target/$PLATFORM/release/parity -p %h) - md5sum target/$PLATFORM/release/parity > parity.md5 - sh scripts/deb-build.sh arm64 - 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 - export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") - dpkg-deb -b deb "parity_"$VER"_arm64.deb" - md5sum "parity_"$VER"_arm64.deb" > "parity_"$VER"_arm64.deb.md5" @@ -431,8 +451,12 @@ darwin: script: | export COMMIT=$(git rev-parse HEAD) export PLATFORM=x86_64-apple-darwin + rustup default stable + cargo clean cargo build -j 8 --features final --release #$CARGOFLAGS - cargo build -j 8 --features final --release -p ethstore #$CARGOFLAGS + cargo build -j 8 --release -p ethstore-cli #$CARGOFLAGS + cargo build -j 8 --release -p ethkey-cli #$CARGOFLAGS + cargo build -j 8 --release -p evmbin #$CARGOFLAGS rm -rf parity.md5 md5sum target/release/parity > parity.md5 export SHA3=$(target/release/parity tools hash target/release/parity) @@ -442,16 +466,16 @@ darwin: 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 export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") - mv target/release/Parity\ Ethereum-signed.pkg "parity-"$VER"-osx-installer.pkg" - md5sum "parity-"$VER"-osx-installer.pkg" >> "parity-"$VER"-osx-installer.pkg.md5" + mv target/release/Parity\ Ethereum-signed.pkg "parity-"$VER"-macos-installer.pkg" + md5sum "parity-"$VER"-macos-installer.pkg" >> "parity-"$VER"-macos-installer.pkg.md5" aws configure set aws_access_key_id $s3_key aws configure set aws_secret_access_key $s3_secret if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/release/parity aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5 - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-osx-installer.pkg" --body "parity-"$VER"-osx-installer.pkg" - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-osx-installer.pkg.md5" --body "parity-"$VER"-osx-installer.pkg.md5" + aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-macos-installer.pkg" --body "parity-"$VER"-macos-installer.pkg" + aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-macos-installer.pkg.md5" --body "parity-"$VER"-macos-installer.pkg.md5" curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM tags: @@ -477,12 +501,16 @@ windows: - set RUST_BACKTRACE=1 - set RUSTFLAGS=%RUSTFLAGS% - rustup default stable-x86_64-pc-windows-msvc + - cargo clean - cargo build --features final --release #%CARGOFLAGS% + - cargo build --release -p ethstore-cli #%CARGOFLAGS% + - cargo build --release -p ethkey-cli #%CARGOFLAGS% + - cargo build --release -p evmbin #%CARGOFLAGS% - signtool sign /f %keyfile% /p %certpass% target\release\parity.exe - target\release\parity.exe tools hash target\release\parity.exe > parity.sha3 - set /P SHA3=