From b2b3a0eb349b22353ca46bfef171a786a0cf1d4d Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 17 Dec 2016 14:36:30 +0100 Subject: [PATCH] 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