Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# .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
- bash --version
# Install cargo-kcov Cargo plugin
- cargo install --force cargo-kcov
- cargo kcov -vV
# Install kcov binary
- wget 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:
- |
./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