Newer
Older
# .gitlab-ci.yml
#
- publish
image: parity/rust:nightly
variables:
CI_SERVER_NAME: "GitLab CI"
CARGO_HOME: "${CI_PROJECT_DIR}/.cargo"
cache:
key: "${CI_JOB_NAME}"
paths:
- ./.cargo/
.collect_artifacts: &collect_artifacts
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
when: on_success
expire_in: 7 days
- target/release/
# not needed atm
# .determine_version: &determine_version |
# export VERSION="$(sed -r -n '1,/^version/s/^version = "([^"]+)".*$/\1/p' Cargo.toml)";
# echo "Version = " $VERSION
before_script:
- ./scripts/build.sh
test:rust:stable: &test
stage: test
variables:
RUST_TOOLCHAIN: stable
TARGET: native
only:
- triggers
- tags
- master
- schedules
- web
- /^pr-[0-9]+$/
- /^[0-9]+$/
- linux-docker
script:
- time cargo test --all --release --verbose --locked
.optional_test: &optional_test
<<: *test
allow_failure: true
only:
- master
build:rust:linux:release: &build
only:
- master
- tags
- web
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
- linux-docker
script:
- time cargo build --release --verbose;
- ./target/release/substrate --version
- sha256sum ./target/release/substrate
#### stage: publish
publish:docker:release:
stage: publish
dependencies:
- build:rust:linux:release
cache: {}
only:
- master
- tags
- web
tags:
- shell
variables:
DOCKERFILE: scripts/docker/Dockerfile
CONTAINER_IMAGE: parity/substrate
before_script:
- test "$Docker_Hub_User_Parity" -a "$Docker_Hub_Pass_Parity"
|| ( echo "no docker credentials provided"; exit 1 )
- docker login -u "$Docker_Hub_User_Parity" -p "$Docker_Hub_Pass_Parity"
- docker info
- VERSION="$(./target/release/substrate --version | sed -n -r 's/^substrate ([0-9.]+-.*-[0-9a-f]{8})-.*$/\1/p')"
- export VERSION
- echo "Substrate version = ${VERSION}"
script:
# - CONTAINER_TAG="${CI_COMMIT_TAG:-latest}"
# - docker build --tag $CONTAINER_IMAGE:$CI_BUILD_REF --tag $CONTAINER_IMAGE:$CONTAINER_TAG -f $DOCKERFILE ./target/release/
# - docker push $CONTAINER_IMAGE:$CONTAINER_TAG
- test -z "${VERSION}" && exit 1
- docker build --tag $CONTAINER_IMAGE:$VERSION --tag $CONTAINER_IMAGE:latest -f $DOCKERFILE ./target/release/
- docker push $CONTAINER_IMAGE:$VERSION
- docker push $CONTAINER_IMAGE:latest
after_script:
- docker logout