feat: make Larastan bootstrap for phpstan and configurable via inputs

This commit is contained in:
Abdel LAMRANI 2026-08-03 11:08:11 +02:00
parent 647b49831f
commit 384b4da9ad
5 changed files with 58 additions and 6 deletions

View file

@ -1,9 +1,11 @@
npm-build:
stage: build
image: node:18
image: node:24
before_script:
- npm config set @ldc-web:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm config set @uwil:registry=https://lab.s-web.fr/api/v4/groups/ldc-web/-/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/groups/ldc-web/-/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm install
cache:
paths:

View file

@ -1,10 +1,11 @@
eslint:
stage: lint
image: node:20
image: node:24
before_script:
- npm config set @ldc-web:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config set @uwil:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm config set @uwil:registry=https://lab.s-web.fr/api/v4/groups/ldc-web/-/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/groups/ldc-web/-/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm install
cache:
paths:

View file

@ -1,3 +1,19 @@
spec:
inputs:
larastan_bootstrap:
default: false
type: boolean
db_connection:
default: "sqlite"
db_database:
default: ":memory:"
cache_store:
default: "array"
session_driver:
default: "array"
---
include:
- project: 'ldc-web/shared-ci'
ref: 'main'
@ -5,6 +21,12 @@ include:
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'lint/phpstan.yml'
inputs:
larastan_bootstrap: $[[ inputs.larastan_bootstrap ]]
db_connection: $[[ inputs.db_connection ]]
db_database: $[[ inputs.db_database ]]
cache_store: $[[ inputs.cache_store ]]
session_driver: $[[ inputs.session_driver ]]
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'lint/eslint.yml'

View file

@ -1,9 +1,35 @@
spec:
inputs:
larastan_bootstrap:
default: false
type: boolean
db_connection:
default: "sqlite"
db_database:
default: ":memory:"
cache_store:
default: "array"
session_driver:
default: "array"
---
phpstan:
stage: lint
image: $CI_REGISTRY/ldc-web/projets/ldc-web-images-docker/uwil-qa-8.5:latest
variables:
DB_CONNECTION: "$[[ inputs.db_connection ]]"
DB_DATABASE: "$[[ inputs.db_database ]]"
CACHE_STORE: "$[[ inputs.cache_store ]]"
SESSION_DRIVER: "$[[ inputs.session_driver ]]"
before_script:
- composer config gitlab-token.lab.s-web.fr $CI_DEPLOY_USER $CI_DEPLOY_PASSWORD
- composer install --no-scripts
- |
if [ "$[[ inputs.larastan_bootstrap ]]" = "true" ]; then
cp .env.example .env
php artisan key:generate
fi
script:
- vendor/bin/phpstan --error-format=junit > phpstan-report.xml
artifacts:

View file

@ -1,10 +1,11 @@
stylelint:
stage: lint
image: node:18
image: node:24
before_script:
- npm config set @ldc-web:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config set @uwil:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm config set @uwil:registry=https://lab.s-web.fr/api/v4/groups/ldc-web/-/packages/npm/
- npm config set -- '//${CI_SERVER_HOST}/api/v4/groups/ldc-web/-/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}"
- npm install
cache:
paths:
@ -19,4 +20,4 @@ stylelint:
allow_failure: false
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == "develop"
- if: $CI_COMMIT_BRANCH == "develop"