53 lines
1.2 KiB
YAML
53 lines
1.2 KiB
YAML
stages:
|
|
- test
|
|
- build
|
|
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
|
|
test:
|
|
stage: test
|
|
image: laravelsail/php84-composer
|
|
|
|
variables:
|
|
APP_ENV: testing
|
|
APP_KEY: base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
DB_CONNECTION: sqlite
|
|
DB_DATABASE: ":memory:"
|
|
|
|
before_script:
|
|
- apt-get update && apt-get install -y git zip unzip
|
|
- composer install --no-interaction --prefer-dist
|
|
# on génère un .env de base pour que Laravel soit content
|
|
- cp .env.example .env || touch .env
|
|
|
|
script:
|
|
- php artisan test
|
|
|
|
# 🐳 Build + push image dans le registry GitLab
|
|
docker-build-push:
|
|
stage: build
|
|
image: docker:24
|
|
services:
|
|
- docker:24-dind
|
|
|
|
variables:
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE:${CI_COMMIT_SHORT_SHA}"
|
|
|
|
before_script:
|
|
# Login au registry GitLab
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
|
|
|
|
script:
|
|
# Build de l'image à partir du Dockerfile de la racine
|
|
- docker build -t "$IMAGE_TAG" .
|
|
# Tag 'latest' en plus (optionnel mais pratique)
|
|
- docker tag "$IMAGE_TAG" "$CI_REGISTRY_IMAGE:latest"
|
|
# Push des tags
|
|
- docker push "$IMAGE_TAG"
|
|
- docker push "$CI_REGISTRY_IMAGE:latest"
|
|
|
|
only:
|
|
- main
|