stages: - test - build image: parity/rust:substrate variables: CI_SERVER_NAME: "GitLab CI" CARGO_HOME: "${CI_PROJECT_DIR}/cargo" BUILD_TARGET: ubuntu BUILD_ARCH: amd64 CARGO_TARGET: x86_64-unknown-linux-gnu .releaseable_branches: # list of git refs for building GitLab artifacts (think "pre-release binaries") only: &releaseable_branches - master - stable - beta - tags - gitlab-next .publishable_branches: # list of git refs for publishing builds to the "production" locations only: &publishable_branches - nightly # Our nightly builds from schedule, on `master` - "v*" # Our version tags - gitlab-next .collect_artifacts: &collect_artifacts artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 1 mos paths: - target/release/substrate .determine_version: &determine_version | export VERSION=$(grep -m 1 "version =" Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n") echo "Version" $VERSION #### stage: test test:rust:stable: &test stage: test variables: RUST_TOOLCHAIN: stable TARGET: native script: - ./scripts/init.sh - export PATH="${CI_PROJECT_DIR}/cargo/bin/:$PATH" - export RUST_BACKTRACE=1 - ./scripts/build.sh - time cargo test --all --release --locked tags: - rust-stable .optional_test: &optional_test <<: *test allow_failure: true only: - master #### stage: build build:linux:ubuntu:amd64: &build stage: build only: *releaseable_branches variables: CARGO_TARGET: x86_64-unknown-linux-gnu TARGET: native RUST_TOOLCHAIN: stable script: - ./scripts/init.sh - export PATH="${CI_PROJECT_DIR}/cargo/bin/:$PATH" - ./scripts/build.sh - cargo build --release <<: *collect_artifacts tags: - rust-stable allow_failure: true