65 lines
1.5 KiB
YAML
65 lines
1.5 KiB
YAML
stages:
|
|
- test
|
|
- build
|
|
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
|
|
# 🔍 Étape tests (optionnelle mais recommandée)
|
|
test:
|
|
stage: test
|
|
image: laravelsail/php84-composer
|
|
services:
|
|
- name: mysql:8.0
|
|
alias: mysql
|
|
|
|
variables:
|
|
MYSQL_ROOT_PASSWORD: root
|
|
MYSQL_DATABASE: hunting_api
|
|
MYSQL_USER: root
|
|
MYSQL_PASSWORD: root
|
|
DB_CONNECTION: mysql
|
|
DB_HOST: mysql
|
|
DB_PORT: 3306
|
|
DB_DATABASE: hunting_api
|
|
DB_USERNAME: root
|
|
DB_PASSWORD: root
|
|
APP_ENV: testing
|
|
APP_KEY: base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
|
|
before_script:
|
|
- apt-get update && apt-get install -y git zip unzip
|
|
- cp .env .env.ci || true
|
|
- php artisan key:generate --force
|
|
- php artisan migrate --force
|
|
|
|
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
|