Skip to content
Snippets Groups Projects
  • Eugen Snitko's avatar
    Cargo caching with forklift (#2466) · e6b9da13
    Eugen Snitko authored
    This PR adds cargo caching feature with custom ['forklift'
    tool](https://gitlab.parity.io/parity/infrastructure/ci_cd/forklift/forklift)
    Forklift acts as RUSTC_WRAPPER, intercepts rustc calls and stores
    produced artifacts in S3 bucket (see [forklift
    readme](https://gitlab.parity.io/parity/infrastructure/ci_cd/forklift/forklift/-/blob/main/README.MD?ref_type=heads)
    for detailed description)
    
    All settings are made in [`.forklift` job's
    before_script](https://github.com/paritytech/polkadot-sdk/blob/es/forklift-test/.gitlab-ci.yml#L119)
    and affect all jobs that extend `.docker-env` job
    
    To disable feature set `FORKLIFT_BYPASS` variable to true in [project
    settings in
    gitlab](https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/settings/ci_cd)
    Unverified
    e6b9da13
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
This GitLab CI configuration is invalid: Project `parity/infrastructure/ci_cd/shared` not found or access denied! Make sure any includes in the pipeline configuration are correctly defined. Learn more
.gitlab-ci.yml 11.51 KiB
# polkadot-sdk | CI definitions (via GitLab CI)
#
# FYI: Pipelines can be triggered manually through the web UI (if you have enough permissions)
#
# Currently, entire CI instructions are split into different subfiles. Each CI stage has a corresponding
# file which can be found here: .gitlab/pipeline/<stage_name>.yml

stages:
  - check
  - test
  - build
  - publish
  - short-benchmarks
  - zombienet
  - deploy
  - notify

workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH

variables:
  CI_IMAGE: !reference [.ci-unified, variables, CI_IMAGE]
  # BUILDAH_IMAGE is defined in group variables
  BUILDAH_COMMAND: "buildah --storage-driver overlay2"
  RELENG_SCRIPTS_BRANCH: "master"
  RUSTY_CACHIER_SINGLE_BRANCH: master
  RUSTY_CACHIER_DONT_OPERATE_ON_MAIN_BRANCH: "true"
  RUSTY_CACHIER_COMPRESSION_METHOD: zstd
  NEXTEST_FAILURE_OUTPUT: immediate-final
  NEXTEST_SUCCESS_OUTPUT: final
  DOCKER_IMAGES_VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}"

default:
  retry:
    max: 2
    when:
      - runner_system_failure
      - unknown_failure
      - api_failure
  cache: {}
  interruptible: true

.collect-artifacts:
  artifacts:
    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
    when: on_success
    expire_in: 1 days
    paths:
      - artifacts/

.collect-artifacts-short:
  artifacts:
    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
    when: on_failure
    expire_in: 3 hours
    paths:
      - artifacts/

.prepare-env:
  before_script:
    # $WASM_BUILD_WORKSPACE_HINT enables wasm-builder to find the Cargo.lock from within generated
    # packages
    - export WASM_BUILD_WORKSPACE_HINT="$PWD"
    # ensure that RUSTFLAGS are set correctly
    - echo $RUSTFLAGS

.common-before-script:
  before_script: