# .gitlab-ci.yml # # ink # # pipelines can be triggered manually in the web stages: - test - build variables: GIT_STRATEGY: fetch CARGO_HOME: "/ci-cache/${CI_PROJECT_NAME}/cargo/${CI_JOB_NAME}" SCCACHE_DIR: "/ci-cache/${CI_PROJECT_NAME}/sccache" CARGO_INCREMENTAL: 0 CI_SERVER_NAME: "GitLab CI" RUSTFLAGS: "-C link-dead-code" .collect-artifacts: &collect-artifacts artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 7 days paths: - artifacts/ .docker-env: &docker-env image: parity/rust-builder:latest before_script: - rustup show - cargo --version - sccache -s only: - master - /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 - schedules - web - /^[0-9]+$/ # PRs tags: - linux-docker #### stage: test # addons: # apt: # packages: # - libcurl4-openssl-dev # - libelf-dev # - libdw-dev # - binutils-dev # - libiberty-dev # - g++ # - cmake # - zlib1g-dev test-linux: stage: test <<: *docker-env before_script: # Print rustc and cargo versions - rustc -vV - cargo -vV - rustup show - bash --version # Install cargo-kcov Cargo plugin # - cargo install --force cargo-kcov # - cargo kcov -vV # Install kcov binary # - curl https://github.com/SimonKagstrom/kcov/archive/v36.tar.gz # - tar xzf v36.tar.gz # - pushd kcov-36 # - mkdir build # - pushd build # - cmake .. # - make # - sudo make install # Puts kcov in the default location usually /usr/local/bin/kcov # - kcov --version # - popd # - popd # Export cargo binaries, python and misc settings # - export PATH=$HOME/.local/bin:$HOME/.cargo/bin:$HOME/Library/Python/2.7/bin:$PATH # Print current work directory state as directions. # - ls -lah # install rust components - rustup component add clippy rustfmt # - rustup target add wasm32-unknown-unknown script: - | rustup default nightly-2019-08-30 rustup target add wasm32-unknown-unknown ./scripts/check-workspace.sh check_workspace=$? # if [ $check_workspace -eq 0 ] # then # # Execute and upload kcov results # cargo kcov --verbose --coveralls --all --no-clean-rebuild # kcov=$? # bash <(curl -s https://codecov.io/bash) # fi ./scripts/check-examples.sh check_examples=$? if [ $check_examples -eq 0 ] && [ $check_workspace -eq 0 ] then echo "All checks have passed!" exit 0 else echo "Some checks have not passed!" exit 1 fi