2016-07-28 17:34:32 +02:00
|
|
|
stages:
|
2016-11-04 06:45:26 +01:00
|
|
|
- test
|
2017-03-08 23:34:00 +01:00
|
|
|
- build
|
2018-06-02 03:22:02 +02:00
|
|
|
- package
|
|
|
|
- publish
|
2018-08-02 14:35:53 +02:00
|
|
|
- docs
|
2018-06-02 03:22:02 +02:00
|
|
|
|
|
|
|
image: parity/rust:gitlab-ci
|
|
|
|
|
2016-07-28 17:34:32 +02:00
|
|
|
variables:
|
2018-06-02 03:22:02 +02:00
|
|
|
CI_SERVER_NAME: "GitLab CI"
|
|
|
|
CARGO_HOME: "${CI_PROJECT_DIR}/cargo"
|
|
|
|
|
|
|
|
BUILD_TARGET: ubuntu
|
|
|
|
BUILD_ARCH: amd64
|
|
|
|
CARGO_TARGET: x86_64-unknown-linux-gnu
|
|
|
|
|
2016-07-28 17:34:32 +02:00
|
|
|
cache:
|
2018-06-02 03:22:02 +02:00
|
|
|
key: "${CI_JOB_NAME}"
|
2018-01-15 06:20:04 +01:00
|
|
|
paths:
|
2018-06-02 03:22:02 +02:00
|
|
|
- ${CI_PROJECT_DIR}/target/
|
|
|
|
- ${CI_PROJECT_DIR}/cargo/
|
|
|
|
|
|
|
|
.releaseable_branches: # list of git refs for building GitLab artifacts (think "pre-release binaries")
|
|
|
|
only: &releaseable_branches
|
|
|
|
- master
|
2016-11-04 07:59:48 +01:00
|
|
|
- stable
|
2017-01-19 20:32:52 +01:00
|
|
|
- beta
|
|
|
|
- tags
|
2018-06-02 03:22:02 +02:00
|
|
|
|
|
|
|
.publishable_branches: # list of git refs for publishing builds to the "production" locations
|
|
|
|
only: &publishable_branches
|
|
|
|
- nightly # Our nightly builds from schedule, on `master`
|
2018-08-24 21:56:53 +02:00
|
|
|
- "v2*" # Our version tags
|
2018-06-02 03:22:02 +02:00
|
|
|
|
|
|
|
.collect_artifacts: &collect_artifacts
|
2016-11-04 07:59:48 +01:00
|
|
|
artifacts:
|
2018-06-02 03:22:02 +02:00
|
|
|
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
|
|
|
|
when: on_success
|
|
|
|
expire_in: 1 mos
|
2016-11-04 07:59:48 +01:00
|
|
|
paths:
|
2018-06-02 03:22:02 +02:00
|
|
|
- artifacts/
|
|
|
|
|
|
|
|
.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
|
2016-11-04 07:59:48 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/test.sh stable
|
2016-11-04 07:59:48 +01:00
|
|
|
tags:
|
2018-06-02 03:22:02 +02:00
|
|
|
- rust-stable
|
|
|
|
|
|
|
|
.optional_test: &optional_test
|
|
|
|
<<: *test
|
|
|
|
allow_failure: true
|
2016-11-04 07:59:48 +01:00
|
|
|
only:
|
2018-06-02 03:22:02 +02:00
|
|
|
- master
|
|
|
|
|
|
|
|
test:rust:beta:
|
|
|
|
<<: *optional_test
|
2016-11-04 07:59:48 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/test.sh beta
|
|
|
|
|
|
|
|
test:rust:nightly:
|
|
|
|
<<: *optional_test
|
|
|
|
script:
|
|
|
|
- scripts/gitlab/test.sh nightly
|
|
|
|
|
|
|
|
#test:rustfmt:
|
|
|
|
# <<: *optional_test
|
|
|
|
# script:
|
|
|
|
# - scripts/gitlab/rustfmt.sh
|
|
|
|
|
|
|
|
#test:clippy:
|
|
|
|
# <<: *optional_test
|
|
|
|
# script:
|
|
|
|
# - scripts/gitlab/clippy.sh
|
|
|
|
|
|
|
|
test:coverage:
|
|
|
|
stage: test
|
2016-11-04 07:59:48 +01:00
|
|
|
only:
|
2018-06-02 03:22:02 +02:00
|
|
|
- master
|
2016-11-04 07:59:48 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/coverage.sh
|
2016-11-04 07:59:48 +01:00
|
|
|
tags:
|
2018-06-02 03:22:02 +02:00
|
|
|
- shell
|
|
|
|
allow_failure: true
|
|
|
|
|
|
|
|
|
|
|
|
#### stage: build
|
|
|
|
|
|
|
|
build:linux:ubuntu:amd64: &build
|
|
|
|
stage: build
|
|
|
|
only: *releaseable_branches
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET: x86_64-unknown-linux-gnu
|
2018-01-10 03:58:12 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/build-unix.sh
|
|
|
|
<<: *collect_artifacts
|
2018-01-10 03:58:12 +01:00
|
|
|
tags:
|
|
|
|
- rust-stable
|
2018-08-02 14:35:53 +02:00
|
|
|
allow_failure: true
|
2018-06-02 03:22:02 +02:00
|
|
|
|
2018-08-02 14:35:53 +02:00
|
|
|
build:linux:ubuntu:i386:
|
2018-06-02 03:22:02 +02:00
|
|
|
<<: *build
|
2018-08-02 14:35:53 +02:00
|
|
|
image: parity/rust-i686:gitlab-ci
|
2018-06-02 03:22:02 +02:00
|
|
|
variables:
|
2018-08-02 14:35:53 +02:00
|
|
|
CARGO_TARGET: i686-unknown-linux-gnu
|
2018-06-02 03:22:02 +02:00
|
|
|
|
|
|
|
build:linux:ubuntu:arm64:
|
|
|
|
<<: *build
|
|
|
|
image: parity/rust-arm64:gitlab-ci
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET: aarch64-unknown-linux-gnu
|
|
|
|
|
|
|
|
build:linux:ubuntu:armhf:
|
|
|
|
<<: *build
|
|
|
|
image: parity/rust-armv7:gitlab-ci
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET: armv7-unknown-linux-gnueabihf
|
|
|
|
|
|
|
|
build:linux:android:armhf:
|
|
|
|
<<: *build
|
|
|
|
image: parity/rust-android:gitlab-ci
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET: armv7-linux-androideabi
|
|
|
|
|
2018-08-24 22:05:00 +02:00
|
|
|
build:darwin:macos:x86_64:
|
2018-06-02 03:22:02 +02:00
|
|
|
<<: *build
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET: x86_64-apple-darwin
|
2018-08-02 14:35:53 +02:00
|
|
|
CC: gcc
|
|
|
|
CXX: g++
|
2016-11-04 07:59:48 +01:00
|
|
|
tags:
|
|
|
|
- osx
|
2018-06-02 03:22:02 +02:00
|
|
|
<<: *collect_artifacts
|
|
|
|
|
2018-08-24 22:05:00 +02:00
|
|
|
build:windows:msvc:x86_64:
|
2018-06-02 03:22:02 +02:00
|
|
|
stage: build
|
|
|
|
only: *releaseable_branches
|
2016-11-07 15:07:37 +01:00
|
|
|
cache:
|
2018-06-02 03:22:02 +02:00
|
|
|
key: "%CI_JOB_NAME%"
|
2016-11-04 07:59:48 +01:00
|
|
|
paths:
|
2018-06-02 03:22:02 +02:00
|
|
|
- "%CI_PROJECT_DIR%/target/"
|
|
|
|
- "%CI_PROJECT_DIR%/cargo/"
|
2018-08-02 14:35:53 +02:00
|
|
|
# No cargo caching, since fetch-locking on Windows gets stuck
|
2018-06-02 03:22:02 +02:00
|
|
|
variables:
|
|
|
|
CARGO_TARGET: x86_64-pc-windows-msvc
|
2018-05-02 09:20:59 +02:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- sh scripts/gitlab/build-windows.sh
|
2018-05-02 09:20:59 +02:00
|
|
|
tags:
|
2018-06-02 03:22:02 +02:00
|
|
|
- rust-windows
|
|
|
|
<<: *collect_artifacts
|
|
|
|
|
|
|
|
|
|
|
|
#### stage: package
|
|
|
|
|
|
|
|
package:linux:snap:amd64: &package_snap
|
|
|
|
stage: package
|
|
|
|
only: *releaseable_branches
|
2018-08-02 14:35:53 +02:00
|
|
|
cache: {}
|
2018-06-02 03:22:02 +02:00
|
|
|
before_script:
|
|
|
|
- *determine_version
|
2018-08-02 14:35:53 +02:00
|
|
|
variables:
|
|
|
|
CARGO_TARGET: x86_64-unknown-linux-gnu
|
2018-06-02 03:22:02 +02:00
|
|
|
dependencies:
|
|
|
|
- build:linux:ubuntu:amd64
|
2016-10-31 19:51:29 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/package-snap.sh
|
2016-10-31 19:51:29 +01:00
|
|
|
tags:
|
2016-11-25 19:57:58 +01:00
|
|
|
- rust-stable
|
2018-08-02 14:35:53 +02:00
|
|
|
<<: *collect_artifacts
|
|
|
|
|
|
|
|
package:linux:snap:i386:
|
|
|
|
<<: *package_snap
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: i386
|
|
|
|
CARGO_TARGET: i686-unknown-linux-gnu
|
|
|
|
dependencies:
|
|
|
|
- build:linux:ubuntu:i386
|
2018-06-02 03:22:02 +02:00
|
|
|
|
|
|
|
package:linux:snap:arm64:
|
|
|
|
<<: *package_snap
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: arm64
|
2018-08-02 14:35:53 +02:00
|
|
|
CARGO_TARGET: aarch64-unknown-linux-gnu
|
2018-06-02 03:22:02 +02:00
|
|
|
dependencies:
|
|
|
|
- build:linux:ubuntu:arm64
|
|
|
|
|
|
|
|
package:linux:snap:armhf:
|
|
|
|
<<: *package_snap
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: armhf
|
2018-08-02 14:35:53 +02:00
|
|
|
CARGO_TARGET: armv7-unknown-linux-gnueabihf
|
2018-06-02 03:22:02 +02:00
|
|
|
dependencies:
|
|
|
|
- build:linux:ubuntu:armhf
|
|
|
|
|
|
|
|
|
|
|
|
#### stage: publish
|
|
|
|
|
|
|
|
publish:linux:snap:amd64: &publish_snap
|
|
|
|
stage: publish
|
|
|
|
only: *publishable_branches
|
|
|
|
image: snapcore/snapcraft:stable
|
2018-08-02 14:35:53 +02:00
|
|
|
cache: {}
|
2018-06-02 03:22:02 +02:00
|
|
|
before_script:
|
|
|
|
- *determine_version
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: amd64
|
|
|
|
dependencies:
|
|
|
|
- package:linux:snap:amd64
|
2016-11-07 17:16:34 +01:00
|
|
|
script:
|
2018-06-02 03:22:02 +02:00
|
|
|
- scripts/gitlab/publish-snap.sh
|
|
|
|
tags:
|
|
|
|
- rust-stable
|
|
|
|
|
2018-08-02 14:35:53 +02:00
|
|
|
publish:linux:snap:i386:
|
|
|
|
<<: *publish_snap
|
|
|
|
before_script:
|
|
|
|
- *determine_version
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: i386
|
|
|
|
dependencies:
|
|
|
|
- package:linux:snap:i386
|
|
|
|
|
2018-06-02 03:22:02 +02:00
|
|
|
publish:linux:snap:arm64:
|
|
|
|
<<: *publish_snap
|
|
|
|
before_script:
|
|
|
|
- *determine_version
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: arm64
|
|
|
|
dependencies:
|
|
|
|
- package:linux:snap:arm64
|
|
|
|
|
|
|
|
publish:linux:snap:armhf:
|
|
|
|
<<: *publish_snap
|
|
|
|
before_script:
|
|
|
|
- *determine_version
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: armhf
|
|
|
|
dependencies:
|
|
|
|
- package:linux:snap:armhf
|
|
|
|
|
|
|
|
publish:docker:parity:amd64: &publish_docker
|
|
|
|
stage: publish
|
|
|
|
only: *publishable_branches
|
2018-08-02 14:35:53 +02:00
|
|
|
cache: {}
|
2018-06-02 03:22:02 +02:00
|
|
|
dependencies:
|
|
|
|
- build:linux:ubuntu:amd64
|
2016-11-07 17:16:34 +01:00
|
|
|
tags:
|
2018-06-02 03:22:02 +02:00
|
|
|
- shell
|
2018-08-02 14:35:53 +02:00
|
|
|
allow_failure: true
|
2018-06-02 03:22:02 +02:00
|
|
|
script:
|
|
|
|
- scripts/gitlab/publish-docker.sh parity
|
|
|
|
|
|
|
|
publish:docker:parity-evm:amd64:
|
|
|
|
<<: *publish_docker
|
|
|
|
script:
|
|
|
|
- scripts/gitlab/publish-docker.sh parity-evm
|
|
|
|
|
2018-08-24 22:05:00 +02:00
|
|
|
publish:github:and:s3:
|
2018-06-02 03:22:02 +02:00
|
|
|
stage: publish
|
|
|
|
only: *publishable_branches
|
2018-08-02 14:35:53 +02:00
|
|
|
cache: {}
|
2018-06-02 03:22:02 +02:00
|
|
|
dependencies:
|
2018-08-02 14:35:53 +02:00
|
|
|
- build:linux:ubuntu:amd64
|
|
|
|
- build:linux:ubuntu:i386
|
|
|
|
- build:linux:ubuntu:armhf
|
|
|
|
- build:linux:ubuntu:arm64
|
|
|
|
- build:macos:x86_64
|
|
|
|
- build-windows-x86_64
|
2018-06-02 03:22:02 +02:00
|
|
|
before_script:
|
|
|
|
- *determine_version
|
|
|
|
script:
|
2018-08-02 14:35:53 +02:00
|
|
|
- scripts/gitlab/push.sh
|
|
|
|
tags:
|
|
|
|
- shell
|
|
|
|
allow_failure: true
|
|
|
|
|
2018-06-02 03:22:02 +02:00
|
|
|
|
2018-08-02 14:35:53 +02:00
|
|
|
####stage: docs
|
2018-06-02 03:22:02 +02:00
|
|
|
|
2018-08-02 14:35:53 +02:00
|
|
|
json:rpc:docs:
|
|
|
|
stage: docs
|
2016-12-20 17:54:09 +01:00
|
|
|
only:
|
|
|
|
- tags
|
2018-08-02 14:35:53 +02:00
|
|
|
cache: {}
|
2016-12-20 17:54:09 +01:00
|
|
|
script:
|
2018-08-02 14:35:53 +02:00
|
|
|
- scripts/gitlab/rpc-docs.sh
|
2016-12-20 17:54:09 +01:00
|
|
|
tags:
|
2018-08-02 14:35:53 +02:00
|
|
|
- shell
|