83 lines
1.7 KiB
YAML
83 lines
1.7 KiB
YAML
variables:
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
BUILD_IMAGE_LINUX_AMD64: $CI_REGISTRY/veilid/ci-cd/veilid-build-linux-amd64:latest
|
|
|
|
stages:
|
|
- clippy
|
|
- test
|
|
- build
|
|
|
|
############# Clippy Lint
|
|
|
|
clippy:
|
|
stage: clippy
|
|
image: ${BUILD_IMAGE_LINUX_AMD64}
|
|
cache:
|
|
key: $CI_COMMIT_REF_SLUG-linux-amd64
|
|
paths:
|
|
- target/
|
|
tags:
|
|
- linux
|
|
- amd64
|
|
script:
|
|
- cargo clippy
|
|
# Only run clippy on non-protected branches, for development
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
when: never
|
|
- if: $CI_MERGE_REQUEST_IID
|
|
when: never
|
|
- if: $CI_COMMIT_REF_PROTECTED == "false"
|
|
|
|
############# Unit Testing
|
|
|
|
.test_rules_common:
|
|
# Only do tests for tags, protected branches, or merge requests
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
- if: $CI_MERGE_REQUEST_IID
|
|
- if: $CI_COMMIT_REF_PROTECTED == "true"
|
|
|
|
test_linux_amd64:
|
|
stage: test
|
|
image: ${BUILD_IMAGE_LINUX_AMD64}
|
|
cache:
|
|
key: $CI_COMMIT_REF_SLUG-linux-amd64
|
|
paths:
|
|
- target/
|
|
tags:
|
|
- linux
|
|
- amd64
|
|
script:
|
|
- RUST_BACKTRACE=1 dbus-run-session -- cargo test -- --nocapture
|
|
rules:
|
|
- !reference [.test_rules_common, rules]
|
|
|
|
############# Build
|
|
|
|
.build_rules_common:
|
|
# Only build for tags or protected branches
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
- if: $CI_COMMIT_REF_PROTECTED == "true"
|
|
|
|
build_linux_amd64:
|
|
stage: build
|
|
image: ${BUILD_IMAGE_LINUX_AMD64}
|
|
cache:
|
|
key: $CI_COMMIT_REF_SLUG-linux-amd64
|
|
paths:
|
|
- target/
|
|
tags:
|
|
- linux
|
|
- amd64
|
|
script:
|
|
- cargo build --release
|
|
artifacts:
|
|
name: $CI_COMMIT_REF_SLUG-linux-amd64
|
|
paths:
|
|
- target/release/veilid-cli
|
|
- target/release/veilid-server
|
|
rules:
|
|
- !reference [.build_rules_common, rules]
|