border-wars-old/.gitlab-ci.yml
Tipragot 2d3d955c02 Nouvelle CI permettant de faire plus de tests
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
2023-05-27 14:08:47 +02:00

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