feat: add scafolding
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
102
.gitlab-ci.yml
102
.gitlab-ci.yml
@@ -1,13 +1,97 @@
|
||||
# You can override the included template(s) by including variable overrides
|
||||
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
|
||||
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/#customization
|
||||
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
|
||||
# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
|
||||
# Note that environment variables can be set in several places
|
||||
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
|
||||
stages:
|
||||
- test
|
||||
- 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
|
||||
- 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
|
||||
|
Reference in New Issue
Block a user