Tipragot
2d3d955c02
La CI teste si le formatage est correcte et construit une image docker si un fichier Dockerfile est présent dans le dossier. De plus, elle execute les jobs en paralelle pour que l'execution soit plus rapide
63 lines
1.2 KiB
YAML
63 lines
1.2 KiB
YAML
stages:
|
|
- checks
|
|
- build
|
|
|
|
cargo-test:
|
|
image: rust:latest
|
|
stage: checks
|
|
script:
|
|
- cargo test --workspace
|
|
rules:
|
|
- exists:
|
|
- Cargo.toml
|
|
|
|
cargo-clippy:
|
|
image: rust:latest
|
|
stage: checks
|
|
before_script:
|
|
- rustup component add clippy
|
|
script:
|
|
- cargo clippy --workspace
|
|
rules:
|
|
- exists:
|
|
- Cargo.toml
|
|
|
|
cargo-fmt:
|
|
image: rust:latest
|
|
stage: checks
|
|
before_script:
|
|
- rustup install nightly
|
|
script:
|
|
- cargo +nightly fmt --check
|
|
rules:
|
|
- exists:
|
|
- Cargo.toml
|
|
|
|
development-image:
|
|
image: docker:latest
|
|
stage: build
|
|
services:
|
|
- docker:dind
|
|
script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
|
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
|
|
- exists:
|
|
- Dockerfile
|
|
|
|
production-image:
|
|
image: docker:latest
|
|
stage: build
|
|
services:
|
|
- docker:dind
|
|
script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
- docker build -t $CI_REGISTRY_IMAGE:latest
|
|
- docker push $CI_REGISTRY_IMAGE:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
- exists:
|
|
- Dockerfile
|