mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 10:34:09 +00:00
161 lines
4.2 KiB
YAML
161 lines
4.2 KiB
YAML
---
|
|
|
|
# Select what we should cache between builds
|
|
cache:
|
|
paths:
|
|
- /vendor/
|
|
- .cache
|
|
- node_modules/
|
|
|
|
# Bring in any services we need http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service
|
|
# See http://docs.gitlab.com/ee/ci/services/README.html for examples.
|
|
services:
|
|
- name: postgis/postgis:17-3.5-alpine
|
|
alias: db
|
|
command:
|
|
- postgres
|
|
- "-c"
|
|
- max_connections=1000
|
|
- name: redis
|
|
alias: redis
|
|
|
|
# Set any variables we need
|
|
variables:
|
|
APP_ENV: test
|
|
GIT_DEPTH: 1
|
|
# Configure postgres environment variables (https://hub.docker.com/r/_/postgres/)
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
# configure database access
|
|
DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=17&charset=utf8
|
|
# fetch the chill-app using git submodules
|
|
# GIT_SUBMODULE_STRATEGY: recursive
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
REDIS_URL: redis://redis:6379
|
|
DEFAULT_CARRIER_CODE: BE
|
|
# force a timezone
|
|
TZ: Europe/Brussels
|
|
# avoid direct deprecations (using symfony phpunit bridge: https://symfony.com/doc/4.x/components/phpunit_bridge.html#internal-deprecations
|
|
SYMFONY_DEPRECATIONS_HELPER: max[total]=99999999&max[self]=0&max[direct]=45&verbose=0
|
|
|
|
stages:
|
|
- Composer install
|
|
- Tests
|
|
- Deploy
|
|
|
|
build:
|
|
stage: Composer install
|
|
image: chill/base-image:8.3-edge
|
|
before_script:
|
|
- composer config -g cache-dir "$(pwd)/.cache"
|
|
script:
|
|
- composer install --optimize-autoloader --no-ansi --no-interaction --no-progress
|
|
cache:
|
|
paths:
|
|
- .cache/
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- vendor/
|
|
|
|
code_style:
|
|
stage: Tests
|
|
image: chill/base-image:8.3-edge
|
|
script:
|
|
- php-cs-fixer fix --dry-run -v --show-progress=none
|
|
cache:
|
|
paths:
|
|
- .cache/
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- vendor/
|
|
|
|
phpstan_tests:
|
|
stage: Tests
|
|
image: chill/base-image:8.3-edge
|
|
variables:
|
|
COMPOSER_MEMORY_LIMIT: 3G
|
|
before_script:
|
|
- bin/console cache:clear --env=dev
|
|
script:
|
|
- composer exec phpstan -- analyze --memory-limit=3G
|
|
cache:
|
|
paths:
|
|
- .cache/
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- vendor/
|
|
|
|
rector_tests:
|
|
stage: Tests
|
|
image: chill/base-image:8.3-edge
|
|
before_script:
|
|
- bin/console cache:clear --env=dev
|
|
script:
|
|
- composer exec rector -- process --dry-run
|
|
cache:
|
|
paths:
|
|
- .cache/
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- vendor/
|
|
|
|
lint:
|
|
stage: Tests
|
|
image: node:20-alpine
|
|
before_script:
|
|
- apk add --no-cache python3 make g++ py3-setuptools
|
|
- export PYTHON="$(which python3)"
|
|
- export PATH="./node_modules/.bin:$PATH"
|
|
script:
|
|
- yarn install --ignore-optional
|
|
- npx eslint-baseline "src/**/*.{js,ts,vue}"
|
|
cache:
|
|
paths:
|
|
- node_modules/
|
|
|
|
# psalm_tests:
|
|
# stage: Tests
|
|
# image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82
|
|
# script:
|
|
# - bin/psalm
|
|
# allow_failure: true
|
|
# artifacts:
|
|
# expire_in: 30 min
|
|
# paths:
|
|
# - bin
|
|
# - tests/app/vendor/
|
|
|
|
unit_tests:
|
|
stage: Tests
|
|
image: chill/base-image:8.3-edge
|
|
variables:
|
|
COMPOSER_MEMORY_LIMIT: 3G
|
|
before_script:
|
|
- php bin/console doctrine:database:create -n --env=test
|
|
- php bin/console doctrine:migrations:migrate -n --env=test
|
|
- php bin/console chill:db:sync-views --env=test
|
|
- php bin/console cache:clear --env=test
|
|
- php bin/console doctrine:fixtures:load -n --env=test
|
|
script:
|
|
- composer exec phpunit -- --colors=never --exclude-group dbIntensive,openstack-integration
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- vendor/
|
|
|
|
release:
|
|
stage: Deploy
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
script:
|
|
- echo "running release_job"
|
|
release:
|
|
tag_name: '$CI_COMMIT_TAG'
|
|
description: "./.changes/$CI_COMMIT_TAG.md"
|