api/.gitlab-ci.yml

70 lines
1.8 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

stages:
- test
- build
variables:
DOCKER_DRIVER: overlay2
test:
stage: test
image: laravelsail/php84-composer
services:
- name: mysql:8.0
alias: mysql
variables:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: hunting_api
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
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
# 1⃣ Installer les dépendances PHP
- composer install --no-interaction --prefer-dist
# 2⃣ Générer un .env pour la CI (à partir de .env.example si tu l'as)
- cp .env.example .env || touch .env
# 3⃣ Regénérer la clé (APP_KEY déjà dans les variables mais ça ne gêne pas)
- php artisan key:generate --force
# 4⃣ Lancer les migrations (DB du service mysql)
- 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