mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +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"
 |