From 0bd2979c04d3903d828b5bda4db1d7166ebb2e7a Mon Sep 17 00:00:00 2001 From: "Denis S. Soldatov aka General-Beck" Date: Wed, 2 Oct 2019 23:01:20 +0300 Subject: [PATCH] Switching sccache from local to Redis (#10971) * Switching cache from local to Radis * sccache -s won't work. All the images are taken from own registry * new images addresses * statisticss after stop sccache server sccache CC&CXX --- .gitlab-ci.yml | 31 ++++----------------------- scripts/gitlab/build-linux.sh | 4 ++++ scripts/gitlab/test-cpp.sh | 4 ++++ scripts/gitlab/test-linux.sh | 6 ++++++ scripts/gitlab/validate-chainspecs.sh | 3 ++- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d065ad01b..024a957d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,16 +5,15 @@ stages: - optional image: ${REGISTRY}/parity-ci-linux:latest + variables: GIT_STRATEGY: fetch GIT_SUBMODULE_STRATEGY: recursive CI_SERVER_NAME: "GitLab CI" CARGO_HOME: "/ci-cache/${CI_PROJECT_NAME}/cargo/${CI_JOB_NAME}" - SCCACHE_DIR: "/ci-cache/${CI_PROJECT_NAME}/sccache" CARGO_TARGET: x86_64-unknown-linux-gnu REGISTRY: registry.parity.io/parity/infrastructure/scripts - .releaseable_branches: # list of git refs for building GitLab artifacts (think "pre-release binaries") only: &releaseable_branches - stable @@ -38,22 +37,6 @@ variables: before_script: - rustup show - cargo --version - - SCCACHE_ERROR_LOG=/builds/parity/parity-ethereum/sccache_debug.log - RUST_LOG=sccache=debug - sccache --start-server - - sccache -s - after_script: - # sccache debug info - - if test -e sccache_debug.log; - then - echo "_____All crate-types:_____"; - grep 'parse_arguments.*--crate-type' sccache_debug.log | sed -re 's/.*"--crate-type", "([^"]+)".*/\1/' | sort | uniq -c; - echo "_____Non-cacheable reasons:_____"; - grep CannotCache sccache_debug.log | sed -re 's/.*CannotCache\((.+)\).*/\1/' | sort | uniq -c; - else - echo "_____No logs from sccache_____"; - exit 0; - fi tags: - linux-docker @@ -63,7 +46,6 @@ variables: <<: *collect_artifacts script: - scripts/gitlab/build-linux.sh - - sccache -s after_script: - mkdir -p tools - cp -r scripts/docker/hub/* ./tools @@ -81,21 +63,21 @@ cargo-check 0 3: <<: *docker-cache-status script: - time cargo check --target $CARGO_TARGET --locked --no-default-features --verbose --color=always - - sccache -s + - sccache --stop-server cargo-check 1 3: stage: test <<: *docker-cache-status script: - time cargo check --target $CARGO_TARGET --locked --manifest-path util/io/Cargo.toml --no-default-features --verbose --color=always - - sccache -s + - sccache --stop-server cargo-check 2 3: stage: test <<: *docker-cache-status script: - time cargo check --target $CARGO_TARGET --locked --manifest-path util/io/Cargo.toml --features "mio" --verbose --color=always - - sccache -s + - sccache --stop-server cargo-check-evmbin: stage: test @@ -123,21 +105,18 @@ validate-chainspecs: <<: *docker-cache-status script: - ./scripts/gitlab/validate-chainspecs.sh - - sccache -s test-cpp: stage: build <<: *docker-cache-status script: - ./scripts/gitlab/test-cpp.sh - - sccache -s test-linux: stage: build <<: *docker-cache-status script: - ./scripts/gitlab/test-linux.sh stable - - sccache -s test-linux-beta: stage: build @@ -145,7 +124,6 @@ test-linux-beta: <<: *docker-cache-status script: - ./scripts/gitlab/test-linux.sh beta - - sccache -s test-linux-nightly: stage: build @@ -153,7 +131,6 @@ test-linux-nightly: <<: *docker-cache-status script: - ./scripts/gitlab/test-linux.sh nightly - - sccache -s allow_failure: true build-android: diff --git a/scripts/gitlab/build-linux.sh b/scripts/gitlab/build-linux.sh index 75a8682bb..e0f2876c0 100755 --- a/scripts/gitlab/build-linux.sh +++ b/scripts/gitlab/build-linux.sh @@ -3,6 +3,8 @@ set -e # fail on any error set -u # treat unset variables as error +export CC="sccache "$CC +export CXX="sccache "$CXX echo "__________Show ENVIROMENT__________" echo "CI_SERVER_NAME: " $CI_SERVER_NAME echo "CARGO_HOME: " $CARGO_HOME @@ -55,3 +57,5 @@ do echo "> ${binary} cannot be hashed with cross-compiled binary (keccak256)" fi done +#show sccache statistics +sccache --stop-server diff --git a/scripts/gitlab/test-cpp.sh b/scripts/gitlab/test-cpp.sh index 1cbd58a30..b61db1bb2 100755 --- a/scripts/gitlab/test-cpp.sh +++ b/scripts/gitlab/test-cpp.sh @@ -4,6 +4,8 @@ set -e # fail on any error set -u # treat unset variables as error #use nproc `linux only THREADS=$(nproc) +export CC="sccache gcc" +export CXX="sccache g++" echo "________Running the C++ example________" DIR=parity-clib/examples/cpp/build @@ -15,3 +17,5 @@ make VERBOSE=1 -j $THREADS # that to happen on CI cd - rm -rf $DIR +#show sccache statistics +sccache --stop-server diff --git a/scripts/gitlab/test-linux.sh b/scripts/gitlab/test-linux.sh index 2e63240e3..dc784de79 100755 --- a/scripts/gitlab/test-linux.sh +++ b/scripts/gitlab/test-linux.sh @@ -5,7 +5,10 @@ echo "________Running test-linux.sh________" set -e # fail on any error set -u # treat unset variables as error +export CC="sccache gcc" +export CXX="sccache g++" FEATURES="json-tests" + OPTIONS="--release" #use nproc `linux only THREADS=$(nproc) @@ -16,3 +19,6 @@ rustup show echo "________Running Parity Full Test Suite________" # Why are we using RUSTFLAGS? See https://github.com/paritytech/parity-ethereum/pull/10719 CARGO_INCREMENTAL=0 RUSTFLAGS="-C opt-level=3 -C overflow-checks=on -C debuginfo=2 -Ctarget-feature=+aes,+sse2,+ssse3" time cargo test $OPTIONS --features "$FEATURES" --locked --all --target $CARGO_TARGET --verbose --color=never -- --test-threads $THREADS + +#show sccache statistics +sccache --stop-server diff --git a/scripts/gitlab/validate-chainspecs.sh b/scripts/gitlab/validate-chainspecs.sh index 58391e131..cf5c126f7 100755 --- a/scripts/gitlab/validate-chainspecs.sh +++ b/scripts/gitlab/validate-chainspecs.sh @@ -15,5 +15,6 @@ done for spec in ethcore/res/ethereum/*.json; do if ! ./target/release/chainspec "$spec"; then ERR=1; fi done - +#show sccache statistics +sccache --stop-server exit $ERR