This repository has been archived on 2025-07-31. You can view files and clone it, but cannot push or open issues or pull requests.
Files
veil/.gitlab-ci.yml
Nikolaos Karaolidis 4f0f8ddbe1 feat: add scafolding
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-03-28 14:36:37 +00:00

98 lines
1.8 KiB
YAML

stages:
- build
- test
- release
cache: &global_cache
key:
files:
- Cargo.lock
- Cargo.toml
paths:
- target/debug/deps
- target/debug/build
- target/release/deps
- target/release/build
policy: pull-push
variables:
RUSTFLAGS: "-Dwarnings"
build:
image: registry.karaolidis.com/karaolidis/veil/rust
stage: build
cache:
<<: *global_cache
script:
- cargo build
test:
image: registry.karaolidis.com/karaolidis/veil/rust
stage: test
cache:
<<: *global_cache
script:
- cargo test
lint:
image: registry.karaolidis.com/karaolidis/veil/rust
stage: test
cache:
<<: *global_cache
script:
- cargo fmt --all -- --check
- cargo clippy --all-targets --all-features
depcheck:
image: registry.karaolidis.com/karaolidis/veil/rust
stage: test
cache:
<<: *global_cache
script:
- cargo outdated
- cargo udeps --all-targets
sast:
stage: test
include:
- template: Security/SAST.gitlab-ci.yml
build-release:
image: registry.karaolidis.com/karaolidis/veil/rust
stage: release
cache:
<<: *global_cache
script:
- cargo build --release
after_script:
- echo "JOB_ID=$CI_JOB_ID" >> job.env
artifacts:
paths:
- target/release/veil
expire_in: 1d
reports:
dotenv: job.env
only:
- tags
release:
image: registry.gitlab.com/gitlab-org/release-cli
stage: release
needs:
- job: build-release
artifacts: true
script:
- echo "Create Release $CI_COMMIT_TAG"
release:
name: Release $CI_COMMIT_TAG
tag_name: $CI_COMMIT_TAG
description: Release $CI_COMMIT_SHA
ref: $CI_COMMIT_TAG
assets:
links:
- name: veil
url: https://gitlab.com/karaolidis/veil/-/jobs/$CI_JOB_ID/artifacts/raw/target/release/veil
link_type: other
only:
- tags