chore: improve SEO and GEO #5153
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| permissions: | |
| contents: read | |
| pull-requests: read | |
| name: Testing => Run full test suite | |
| on: | |
| push: | |
| jobs: | |
| test: | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: impactco2 | |
| POSTGRES_PASSWORD: impactco2 | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Enable Corepack | |
| shell: bash | |
| run: corepack enable | |
| - name: Pin pnpm 11 | |
| shell: bash | |
| run: corepack prepare pnpm@11 --activate | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'pnpm' | |
| - name: Copy .env | |
| run: cp .env.dist .env | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Linter | |
| run: pnpm lint | |
| - name: Run build | |
| run: pnpm build | |
| env: | |
| NOTION_API_KEY: ${{ secrets.NOTION_API_KEY}} | |
| NEXT_PUBLIC_PROGRESS_TIME: 500 | |
| - name: Generate db | |
| run: pnpm prisma generate | |
| - name: Migrate db | |
| run: pnpm prisma migrate deploy | |
| - name: Start server | |
| run: pnpm start & | |
| - name: Unit tests => with Jest | |
| run: pnpm testu | |
| - name: API tests => with Jest | |
| run: pnpm testa | |
| - name: E2E tests => install Playwright | |
| run: pnpm playwright install chromium | |
| - name: E2E tests => with Playwright | |
| run: pnpm teste | |
| - run: mkdir -p ${{ github.workspace }}/tmp/artifacts | |
| - name: Lighthouse Check | |
| uses: foo-software/lighthouse-check-action@master | |
| id: lighthouseCheck | |
| with: | |
| device: all | |
| urls: 'http://localhost:3000,http://localhost:3000/outils/comparateur,http://localhost:3000/outils/usagenumerique,http://localhost:3000/outils/livraison,http://localhost:3000/outils/chauffage,http://localhost:3000/outils/transport,http://localhost:3000/outils/fruitsetlegumes,http://localhost:3000/outils/chauffage/pompeachaleur,http://localhost:3000/outils/usagenumerique/visioconference,http://localhost:3000/outils/quiz,http://localhost:3000/outils/alimentation' | |
| outputDirectory: ${{ github.workspace }}/tmp/artifacts | |
| - name: Verify Lighthouse Check results | |
| uses: foo-software/lighthouse-check-status-action@master | |
| with: | |
| lighthouseCheckResults: ${{ steps.lighthouseCheck.outputs.lighthouseCheckResults }} | |
| minAccessibilityScore: '100' | |
| minBestPracticesScore: '100' | |
| - name: Prune dev dependencies | |
| run: rm -rf node_modules && pnpm install --production | |
| - name: Check repository size | |
| run: ./scripts/check-repo-size.sh | |
| - name: Upload playwright artifacts | |
| uses: actions/upload-artifact@v5 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: test-results/ | |
| retention-days: 30 | |
| - name: Upload Lighthouse artifacts | |
| uses: actions/upload-artifact@v5 | |
| if: always() | |
| with: | |
| name: Lighthouse reports | |
| path: ${{ github.workspace }}/tmp/artifacts |