.gitlab-ci.yml 2.85 KB
Newer Older
Denis_P's avatar
Denis_P committed
# .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
Denis_P's avatar
Denis_P committed
    - rustc -vV
    - cargo -vV
    - rustup show
    - bash --version
Denis_P's avatar
Denis_P committed
    # Install cargo-kcov Cargo plugin
Denis_P's avatar
Denis_P committed
    # - cargo install --force cargo-kcov
    # - cargo kcov -vV
Denis_P's avatar
Denis_P committed
    # Install kcov binary
Denis_P's avatar
Denis_P committed
    # - 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
Denis_P's avatar
Denis_P committed
    # Export cargo binaries, python and misc settings
Denis_P's avatar
Denis_P committed
    # - export PATH=$HOME/.local/bin:$HOME/.cargo/bin:$HOME/Library/Python/2.7/bin:$PATH
Denis_P's avatar
Denis_P committed
    # Print current work directory state as directions.
Denis_P's avatar
Denis_P committed
    # - ls -lah
Denis_P's avatar
Denis_P committed
    # install rust components
    - rustup component add clippy rustfmt
    # - rustup target add wasm32-unknown-unknown
  script:
  - |
Denis_P's avatar
Denis_P committed
    rustup default nightly-2019-08-30
Denis_P's avatar
Denis_P committed
    ./scripts/check-workspace.sh
    check_workspace=$?
Denis_P's avatar
Denis_P committed
    # 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
Denis_P's avatar
Denis_P committed
    ./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