From b2b3a0eb349b22353ca46bfef171a786a0cf1d4d Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 17 Dec 2016 14:36:30 +0100 Subject: [PATCH 1/4] Final fixups for updater - Wire up platforms to match those of CI. - Introduce "final" feature to tag version with "nightly". --- .gitlab-ci.yml | 20 ++++++++++---------- Cargo.lock | 1 + Cargo.toml | 3 +-- updater/Cargo.toml | 1 + updater/src/lib.rs | 1 + updater/src/updater.rs | 17 +++++++++++++++-- util/Cargo.toml | 1 + util/src/misc.rs | 12 ++++++++++-- 8 files changed, 40 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 08c6a7cea..e98cdeb78 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ linux-stable: - triggers script: - curl --data "secret=$RELEASES_SECRET" http://icarus.parity.io/push-release/$CI_BUILD_REF_NAME/$CI_BUILD_REF - - cargo build -j $(nproc) --release $CARGOFLAGS + - cargo build -j $(nproc) --release --features final $CARGOFLAGS - strip target/release/parity - export SHA3=$(target/release/parity tools hash target/release/parity) - md5sum target/release/parity > parity.md5 @@ -96,7 +96,7 @@ linux-centos: - export CXX="g++" - export CC="gcc" - export PLATFORM=x86_64-unknown-centos-gnu - - cargo build -j $(nproc) --release $CARGOFLAGS + - cargo build -j $(nproc) --release --features final $CARGOFLAGS - strip target/release/parity - md5sum target/release/parity > parity.md5 - export SHA3=$(target/release/parity tools hash target/release/parity) @@ -127,7 +127,7 @@ 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 --release $CARGOFLAGS + - cargo build -j $(nproc) --target i686-unknown-linux-gnu --features final --release $CARGOFLAGS - strip target/$PLATFORM/release/parity - md5sum target/$PLATFORM/release/parity > parity.md5 - export SHA3=$(target/$PLATFORM/release/parity tools hash target/$PLATFORM/release/parity) @@ -171,7 +171,7 @@ linux-armv7: - echo "[target.armv7-unknown-linux-gnueabihf]" >> .cargo/config - echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config - cat .cargo/config - - cargo build -j $(nproc) --target armv7-unknown-linux-gnueabihf --release $CARGOFLAGS + - cargo build -j $(nproc) --target armv7-unknown-linux-gnueabihf --features final --release $CARGOFLAGS - arm-linux-gnueabihf-strip target/armv7-unknown-linux-gnueabihf/release/parity - md5sum target/armv7-unknown-linux-gnueabihf/release/parity > parity.md5 - sh scripts/deb-build.sh armhf @@ -213,7 +213,7 @@ linux-arm: - echo "[target.arm-unknown-linux-gnueabihf]" >> .cargo/config - echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config - cat .cargo/config - - cargo build -j $(nproc) --target arm-unknown-linux-gnueabihf --release $CARGOFLAGS + - cargo build -j $(nproc) --target arm-unknown-linux-gnueabihf --features final --release $CARGOFLAGS - arm-linux-gnueabihf-strip target/arm-unknown-linux-gnueabihf/release/parity - md5sum target/arm-unknown-linux-gnueabihf/release/parity > parity.md5 - sh scripts/deb-build.sh armhf @@ -255,7 +255,7 @@ linux-armv6: - echo "[target.arm-unknown-linux-gnueabi]" >> .cargo/config - echo "linker= \"arm-linux-gnueabi-gcc\"" >> .cargo/config - cat .cargo/config - - cargo build -j $(nproc) --target arm-unknown-linux-gnueabi --release $CARGOFLAGS + - cargo build -j $(nproc) --target arm-unknown-linux-gnueabi --features final --release $CARGOFLAGS - arm-linux-gnueabi-strip target/arm-unknown-linux-gnueabi/release/parity - md5sum target/arm-unknown-linux-gnueabi/release/parity > parity.md5 - aws configure set aws_access_key_id $s3_key @@ -290,7 +290,7 @@ linux-aarch64: - echo "[target.aarch64-unknown-linux-gnu]" >> .cargo/config - echo "linker= \"aarch64-linux-gnu-gcc\"" >> .cargo/config - cat .cargo/config - - cargo build -j $(nproc) --target aarch64-unknown-linux-gnu --release $CARGOFLAGS + - cargo build -j $(nproc) --target aarch64-unknown-linux-gnu --features final --release $CARGOFLAGS - aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/parity - md5sum target/aarch64-unknown-linux-gnu/release/parity > parity.md5 - sh scripts/deb-build.sh arm64 @@ -323,8 +323,8 @@ darwin: script: - export COMMIT=$(git rev-parse HEAD) - export PLATFORM=x86_64-apple-darwin - - cargo build -j 8 --release #$CARGOFLAGS - - cargo build -j 8 --release -p ethstore #$CARGOFLAGS + - cargo build -j 8 --features final --release #$CARGOFLAGS + - cargo build -j 8 --features final --release -p ethstore #$CARGOFLAGS - rm -rf parity.md5 - md5sum target/release/parity > parity.md5 - export SHA3=$(target/release/parity tools hash target/release/parity) @@ -364,7 +364,7 @@ windows: - set RUST_BACKTRACE=1 - set RUSTFLAGS=%RUSTFLAGS% - rustup default stable-x86_64-pc-windows-msvc - - cargo build --release #%CARGOFLAGS% + - cargo build --features final --release #%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= String { + if cfg!(target_os = "macos") { + "x86_64-apple-darwin".into() + } else if cfg!(windows) { + "x86_64-pc-windows-msvc".into() + } else if cfg!(target_os = "linux") { + format!("{}-unknown-linux-gnu", Target::arch()) + } else { + misc::platform() + } +} + impl Updater { pub fn new(client: Weak, sync: Weak, update_policy: UpdatePolicy) -> Arc { let r = Arc::new(Updater { @@ -241,7 +254,7 @@ impl Updater { trace!(target: "updater", "Latest release in our track is v{} it is {}critical ({} binary is {})", latest.track.version, if latest.track.is_critical {""} else {"non-"}, - platform(), + &platform(), if let Some(ref b) = latest.track.binary { format!("{}", b) } else { diff --git a/util/Cargo.toml b/util/Cargo.toml index 594024f3f..f019a9554 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -41,6 +41,7 @@ lru-cache = "0.1.0" [features] default = [] dev = ["clippy"] +final = [] [build-dependencies] vergen = "*" diff --git a/util/src/misc.rs b/util/src/misc.rs index 0c3a32554..0d11313fe 100644 --- a/util/src/misc.rs +++ b/util/src/misc.rs @@ -23,6 +23,14 @@ use target_info::Target; include!(concat!(env!("OUT_DIR"), "/version.rs")); include!(concat!(env!("OUT_DIR"), "/rustc_version.rs")); +#[cfg(feature = "final")] +const THIS_TRACK: &'static str = "nightly"; +// ^^^ should be reset to "stable" or "beta" according to the release branch. + +#[cfg(not(feature = "final"))] +const THIS_TRACK: &'static str = "unstable"; +// ^^^ This gets used when we're not building a final release; should stay as "unstable". + /// Boolean type for clean/dirty status. #[derive(PartialEq, Eq, Clone, Copy, Debug)] pub enum Filth { @@ -45,7 +53,7 @@ pub fn version() -> String { let sha3_dash = if sha3.is_empty() { "" } else { "-" }; let commit_date = commit_date().replace("-", ""); let date_dash = if commit_date.is_empty() { "" } else { "-" }; - format!("Parity/v{}-unstable{}{}{}{}/{}/rustc{}", env!("CARGO_PKG_VERSION"), sha3_dash, sha3, date_dash, commit_date, platform(), rustc_version()) + format!("Parity/v{}-{}{}{}{}{}/{}/rustc{}", env!("CARGO_PKG_VERSION"), THIS_TRACK, sha3_dash, sha3, date_dash, commit_date, platform(), rustc_version()) } /// Get the standard version data for this software. @@ -64,5 +72,5 @@ pub fn version_data() -> Bytes { /// Provide raw information on the package. pub fn raw_package_info() -> (&'static str, &'static str, &'static str) { - (env!["CARGO_PKG_VERSION_PRE"], env!["CARGO_PKG_VERSION"], sha()) + (THIS_TRACK, env!["CARGO_PKG_VERSION"], sha()) } \ No newline at end of file From 6e12f4f71950b33a1091e70e2c531d7ee486b02b Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 17 Dec 2016 15:22:31 +0100 Subject: [PATCH 2/4] Alter port for icarus. --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e98cdeb78..16f78d972 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ linux-stable: - stable - triggers script: - - curl --data "secret=$RELEASES_SECRET" http://icarus.parity.io/push-release/$CI_BUILD_REF_NAME/$CI_BUILD_REF + - curl --data "secret=$RELEASES_SECRET" http://icarus.parity.io:1337/push-release/$CI_BUILD_REF_NAME/$CI_BUILD_REF - cargo build -j $(nproc) --release --features final $CARGOFLAGS - strip target/release/parity - export SHA3=$(target/release/parity tools hash target/release/parity) @@ -38,7 +38,7 @@ linux-stable: - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/parity.md5 --body parity.md5 - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.deb" --body "parity_"$VER"_amd64.deb" - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.deb.md5" --body "parity_"$VER"_amd64.deb.md5" - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu + - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io:1337/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu tags: - rust - rust-stable @@ -106,7 +106,7 @@ 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 - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io/push-build/$CI_BUILD_REF_NAME/$PLATFORM + - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM tags: - rust - rust-centos @@ -144,7 +144,7 @@ linux-i686: - 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"_i386.deb" --body "parity_"$VER"_i386.deb" - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_i386.deb.md5" --body "parity_"$VER"_i386.deb.md5" - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io/push-build/$CI_BUILD_REF_NAME/$PLATFORM + - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM tags: - rust - rust-i686 @@ -340,7 +340,7 @@ darwin: - 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-EXPERIMENTAL.pkg" --body "parity-"$VER"-osx-installer-EXPERIMENTAL.pkg" - aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-osx-installer-EXPERIMENTAL.pkg.md5" --body "parity-"$VER"-osx-installer-EXPERIMENTAL.pkg.md5" - - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io/push-build/$CI_BUILD_REF_NAME/$PLATFORM + - curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://icarus.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM tags: - osx artifacts: @@ -401,7 +401,7 @@ windows: - aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/InstallParity.exe.md5 --body nsis\InstallParity.exe.md5 - aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/win-installer.zip --body nsis\win-installer.zip - aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/win-installer.zip.md5 --body nsis\win-installer.zip.md5 - - curl --data "commit=%CI_BUILD_REF%&sha3=%SHA3%&filename=parity.exe&secret=%RELEASES_SECRET%" http://icarus.parity.io/push-build/%CI_BUILD_REF_NAME%/%PLATFORM% + - curl --data "commit=%CI_BUILD_REF%&sha3=%SHA3%&filename=parity.exe&secret=%RELEASES_SECRET%" http://icarus.parity.io:1337/push-build/%CI_BUILD_REF_NAME%/%PLATFORM% tags: - rust-windows artifacts: From efd4036a9af875587b400ba52be035ce9e16a483 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 17 Dec 2016 15:40:55 +0100 Subject: [PATCH 3/4] Fix build. --- updater/src/updater.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/updater/src/updater.rs b/updater/src/updater.rs index 31c021586..f347308e4 100644 --- a/updater/src/updater.rs +++ b/updater/src/updater.rs @@ -22,7 +22,6 @@ use target_info::Target; use util::misc; use ipc_common_types::{VersionInfo, ReleaseTrack}; use util::path::restrict_permissions_owner; -use util::misc::platform; use util::{Address, H160, H256, FixedHash, Mutex, Bytes}; use ethsync::{SyncProvider}; use ethcore::client::{BlockId, BlockChainClient, ChainNotify}; From d98f0d8fb5810137fc5ec6da8b9dd2d82631b90a Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 17 Dec 2016 16:00:33 +0100 Subject: [PATCH 4/4] No need to test windows for every PR. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 16f78d972..233aa0be9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -426,7 +426,7 @@ test-darwin: test-windows: stage: test only: -# - triggers + - triggers before_script: - git submodule update --init --recursive script: