feat: add scafolding

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-03-27 11:07:54 +00:00
parent 0e141eebae
commit 4f0f8ddbe1
15 changed files with 4648 additions and 100 deletions

View File

@@ -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