Skip to content

fix: remplacer la dépendance 'yaml' par 'yaml-lint' dans package.json… #539

fix: remplacer la dépendance 'yaml' par 'yaml-lint' dans package.json…

fix: remplacer la dépendance 'yaml' par 'yaml-lint' dans package.json… #539

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
DOCKER_INTERACTIVE: false
steps:
# === SETUP PHASE ===
- name: Checkout
uses: actions/checkout@v5
with:
submodules: recursive
- name: Setup Docker Compose
uses: docker/setup-compose-action@v1
- name: Setup Task
uses: go-task/setup-task@v1
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Setup cache
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
# === BUILD PHASE ===
- name: Install dependencies
run: |
if [ ! -d node_modules ]; then
npm install
fi
- name: Setup environment files
run: |
cp .env.example .env
- name: lint all
run: task lint:all
launch:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
DOCKER_INTERACTIVE: false
steps:
# === SETUP PHASE ===
- name: Checkout
uses: actions/checkout@v5
with:
submodules: recursive
- name: Setup Docker Compose
uses: docker/setup-compose-action@v1
- name: Setup Task
uses: go-task/setup-task@v1
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Repository lampy
uses: actions/checkout@v5
with:
submodules: recursive
repository: koromerzhin/lampy
ref: '4.3'
path: lampy
- name: Setup cache
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
# === BUILD PHASE ===
- name: Install dependencies
run: |
if [ ! -d node_modules ]; then
npm install
fi
- name: Setup environment files
run: |
cp .env.example .env
- name: Setup database and infrastructure
run: |
task laravel:copysql
cd lampy && task lampy:exec
- name: Deploy containers
run: |
task laravel:getpull-image
task laravel:getapacheconf
task create:apps
task laravel:deploy
task laravel:waiting
# === LINTING PHASE ===
- name: Frontend linting
run: |
# Run markdown linting with warning on failure
npm run lint:markdown || echo "::warning::Markdown linting issues found"
- name: Setup PHP tools and permissions
run: |
task laravel:ls
sudo chown -R "$USER:$USER" "./apps"
sudo chmod -R 755 "./apps"
- name: Run Cypress tests
uses: cypress-io/github-action@v6
continue-on-error: true
with:
wait-on-timeout: 120
browser: chrome
record: false
parallel: false
config: screenshotOnRunFailure=true,video=true,videoCompression=32,defaultCommandTimeout=10000,requestTimeout=10000,responseTimeout=10000,retries={"runMode":2,"openMode":0}
env:
CYPRESS_CACHE_FOLDER: ~/.cache/Cypress
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- name: Docker stack stop
if: always()
run: |
docker stack rm laravel
docker stack rm lampy
# === ARTIFACTS PHASE ===
- name: Archive test results
uses: actions/upload-artifact@v4
if: always()
with:
name: "test-results-${{ github.run_number }}-${{ github.sha }}"
path: |
cypress/screenshots
cypress/videos
cypress/reports
retention-days: 7
if-no-files-found: ignore
compression-level: 6