7781cbbc57
* ci: reduce gitlab pipelines significantly * ci: build pipeline for PR * ci: remove dead weight * ci: remove github release script * ci: remove forever broken aura tests * ci: add random stuff to the end of the pipes * ci: add wind and mac to the end of the pipe * ci: remove snap artifacts * ci: (re)move dockerfiles * ci: clarify job names * ci: add cargo audit job * ci: make audit script executable * ci: ignore snap and docker files for rust check * ci: simplify audit script * ci: rename misc to optional * ci: add publish script to releaseable branches * ci: more verbose cp command for windows build * ci: fix weird binary checksum logic in push script * ci: fix regex in push script for windows * ci: simplify gitlab caching * docs: align README with ci changes * ci: specify default cargo target dir * ci: print verbose environment * ci: proper naming of scripts * ci: restore docker files * ci: use docker hub file * ci: use cargo home instead of cargo target dir * ci: touch random rust file to trigger real builds * ci: set cargo target dir for audit script * ci: remove temp file * ci: don't export the cargo target dir in the audit script * ci: fix windows unbound variable * docs: fix gitlab badge path * rename deprecated gitlab ci variables https://docs.gitlab.com/ee/ci/variables/#9-0-renaming * ci: fix git compare for nightly builds * test: skip c++ example for all platforms but linux * ci: add random rust file to trigger tests * ci: remove random rust file * disable cpp lib test for mac, win and beta (#9686)
179 lines
4.4 KiB
YAML
179 lines
4.4 KiB
YAML
stages:
|
|
- test
|
|
- build
|
|
- publish
|
|
- optional
|
|
|
|
image: parity/rust:gitlab-ci
|
|
|
|
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
|
|
|
|
cache:
|
|
key: "${CI_JOB_NAME}"
|
|
paths:
|
|
- ./target
|
|
- ./.cargo
|
|
|
|
.releaseable_branches: # list of git refs for building GitLab artifacts (think "pre-release binaries")
|
|
only: &releaseable_branches
|
|
- stable
|
|
- beta
|
|
- tags
|
|
|
|
.collect_artifacts: &collect_artifacts
|
|
artifacts:
|
|
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
|
|
when: on_success
|
|
expire_in: 1 mos
|
|
paths:
|
|
- artifacts/
|
|
|
|
.determine_version: &determine_version
|
|
- VERSION="$(sed -r -n '1,/^version/s/^version = "([^"]+)".*$/\1/p' Cargo.toml)"
|
|
- DATE_STR="$(date +%Y%m%d)"
|
|
- ID_SHORT="$(echo ${CI_COMMIT_SHA} | cut -c 1-7)"
|
|
- test "${CI_COMMIT_REF_NAME}" = "nightly" && VERSION="${VERSION}-${ID_SHORT}-${DATE_STR}"
|
|
- export VERSION
|
|
- echo "Version = ${VERSION}"
|
|
|
|
test-linux:
|
|
stage: test
|
|
variables:
|
|
RUN_TESTS: all
|
|
script:
|
|
- scripts/gitlab/test-all.sh stable
|
|
tags:
|
|
- rust-stable
|
|
|
|
build-linux:
|
|
stage: build
|
|
only: *releaseable_branches
|
|
variables:
|
|
CARGO_TARGET: x86_64-unknown-linux-gnu
|
|
script:
|
|
- scripts/gitlab/build-unix.sh
|
|
<<: *collect_artifacts
|
|
tags:
|
|
- rust-stable
|
|
|
|
build-darwin:
|
|
stage: build
|
|
only: *releaseable_branches
|
|
variables:
|
|
CARGO_TARGET: x86_64-apple-darwin
|
|
CC: gcc
|
|
CXX: g++
|
|
script:
|
|
- scripts/gitlab/build-unix.sh
|
|
tags:
|
|
- rust-osx
|
|
<<: *collect_artifacts
|
|
|
|
build-windows:
|
|
stage: build
|
|
only: *releaseable_branches
|
|
variables:
|
|
CARGO_TARGET: x86_64-pc-windows-msvc
|
|
script:
|
|
- sh scripts/gitlab/build-windows.sh
|
|
tags:
|
|
- rust-windows
|
|
<<: *collect_artifacts
|
|
|
|
publish-docker:
|
|
stage: publish
|
|
only: *releaseable_branches
|
|
cache: {}
|
|
dependencies:
|
|
- build-linux
|
|
tags:
|
|
- shell
|
|
script:
|
|
- scripts/gitlab/publish-docker.sh parity
|
|
|
|
publish-awss3:
|
|
stage: publish
|
|
only: *releaseable_branches
|
|
cache: {}
|
|
dependencies:
|
|
- build-linux
|
|
- build-darwin
|
|
- build-windows
|
|
before_script: *determine_version
|
|
script:
|
|
- scripts/gitlab/publish-awss3.sh
|
|
tags:
|
|
- shell
|
|
|
|
docs-jsonrpc:
|
|
stage: optional
|
|
only:
|
|
- tags
|
|
cache: {}
|
|
script:
|
|
- scripts/gitlab/docs-jsonrpc.sh
|
|
tags:
|
|
- shell
|
|
|
|
cargo-audit:
|
|
stage: optional
|
|
script:
|
|
- scripts/gitlab/cargo-audit.sh
|
|
tags:
|
|
- rust-stable
|
|
|
|
test-android:
|
|
stage: optional
|
|
image: parity/rust-android:gitlab-ci
|
|
variables:
|
|
CARGO_TARGET: armv7-linux-androideabi
|
|
script:
|
|
- scripts/gitlab/test-all.sh stable
|
|
tags:
|
|
- rust-arm
|
|
|
|
test-darwin:
|
|
stage: optional
|
|
variables:
|
|
CARGO_TARGET: x86_64-apple-darwin
|
|
CC: gcc
|
|
CXX: g++
|
|
RUN_TESTS: cargo
|
|
script:
|
|
- scripts/gitlab/test-all.sh stable
|
|
tags:
|
|
- rust-osx
|
|
|
|
test-windows:
|
|
stage: optional
|
|
variables:
|
|
CARGO_TARGET: x86_64-pc-windows-msvc
|
|
RUN_TESTS: cargo
|
|
script:
|
|
- sh scripts/gitlab/test-all.sh stable
|
|
tags:
|
|
- rust-windows
|
|
|
|
test-beta:
|
|
stage: optional
|
|
variables:
|
|
RUN_TESTS: cargo
|
|
script:
|
|
- scripts/gitlab/test-all.sh beta
|
|
tags:
|
|
- rust-beta
|
|
|
|
test-nightly:
|
|
stage: optional
|
|
variables:
|
|
RUN_TESTS: all
|
|
script:
|
|
- scripts/gitlab/test-all.sh nightly
|
|
tags:
|
|
- rust-nightly
|