refactor(ci): local and jenkins audit use same docker compose and optimize npm cache
Some checks failed
Portfolio/pipeline/head There was a failure building this commit

This commit is contained in:
2026-01-12 17:51:35 +01:00
parent c6b0cde818
commit 478ff5f85a
4 changed files with 33 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ module.exports = {
staticDistDir: '/app/dist', staticDistDir: '/app/dist',
settings: { settings: {
chromeFlags: '--no-sandbox --disable-setuid-sandbox --headless=new --disable-gpu --disable-dev-shm-usage', chromeFlags: '--no-sandbox --disable-setuid-sandbox --headless=new --disable-gpu --disable-dev-shm-usage',
targets: ['filesystem'],
}, },
numberOfRuns: 1 numberOfRuns: 1
}, },

8
Jenkinsfile vendored
View File

@@ -21,9 +21,9 @@ pipeline {
// Create volumes but no run with safety // Create volumes but no run with safety
sh "docker rm -f audit-tmp lighthouse-audit || true" sh "docker rm -f audit-tmp lighthouse-audit || true"
sh "docker compose --profile audit create lighthouse-audit" sh "docker compose --profile audit create --no-build --remove-orphans lighthouse-audit"
// Extract astro data from image to tmp-dist // Extract astro data from temp container to tmp-dist folder
sh "docker create --name audit-tmp portfolio:${env.APP_VERSION}" sh "docker create --name audit-tmp portfolio:${env.APP_VERSION}"
sh "mkdir -p ./tmp-dist" sh "mkdir -p ./tmp-dist"
sh "docker cp audit-tmp:/usr/share/caddy/. ./tmp-dist" sh "docker cp audit-tmp:/usr/share/caddy/. ./tmp-dist"
@@ -32,9 +32,10 @@ pipeline {
// Inject data from tmp-dist and config to audit container // Inject data from tmp-dist and config to audit container
sh "docker cp ./tmp-dist/. lighthouse-audit:/app/dist/" sh "docker cp ./tmp-dist/. lighthouse-audit:/app/dist/"
sh "docker cp .lighthouserc.cjs lighthouse-audit:/app/dist/audit-config.cjs" sh "docker cp .lighthouserc.cjs lighthouse-audit:/app/dist/audit-config.cjs"
sh "rm -rf ./tmp-dist"
// Now run // Now run
sh "docker compose --profile audit run lighthouse-audit" sh "docker start -a lighthouse-audit"
// Get reports // Get reports
sh "mkdir -p ./.lighthouseci" sh "mkdir -p ./.lighthouseci"
@@ -42,7 +43,6 @@ pipeline {
// Clean // Clean
sh "docker rm -f lighthouse-audit" sh "docker rm -f lighthouse-audit"
sh "rm -rf ./tmp-dist"
} }
} }
stage('Deploy') { stage('Deploy') {

View File

@@ -20,14 +20,16 @@ services:
volumes: volumes:
- audit_dist:/app/dist - audit_dist:/app/dist
- audit_reports:/app/.lighthouseci - audit_reports:/app/.lighthouseci
- npm_cache:/root/.npm
environment: environment:
- CHROME_PATH=/usr/bin/chromium-browser - CHROME_PATH=/usr/bin/chromium-browser
working_dir: /app working_dir: /app
command: npx @lhci/cli@${LHCI_VERSION} collect --config=/app/dist/audit-config.cjs command: npx --prefer-offline @lhci/cli@${LHCI_VERSION} autorun --config=/app/dist/audit-config.cjs
volumes: volumes:
audit_dist: audit_dist:
audit_reports: audit_reports:
npm_cache:
networks: networks:
reverse-proxy: reverse-proxy:

View File

@@ -1,14 +1,28 @@
#!/bin/bash #!/bin/bash
mkdir -p ./.lighthouseci # Clean old audits and containers
rm -rf ./.lighthouseci
docker rm -f lighthouse-audit || true
docker run --rm \ # Load env file and avoid warning for unused portofolio version
--user 0:0 \ if [ -f .env.dist ]; then
-v ./dist:/app/dist \ export $(grep -v '^#' .env.dist | xargs)
-v ./.lighthouserc.cjs:/app/.lighthouserc.cjs \ fi
-v ./.lighthouseci:/app/.lighthouseci \ export PORTFOLIO_VERSION="local-audit"
-w /app \
-e CHROME_PATH=/usr/bin/chromium-browser \ # Create container but no start
zenika/alpine-chrome:with-node \ docker compose --profile audit create --no-build --remove-orphans lighthouse-audit
npx @lhci/cli@0.15.x collect \
--config=/app/.lighthouserc.cjs # Inject data and config to container
docker cp ./dist/. lighthouse-audit:/app/dist/
docker cp .lighthouserc.cjs lighthouse-audit:/app/dist/audit-config.cjs
# Now run
docker start -a lighthouse-audit
# Get reports
mkdir -p ./.lighthouseci
docker cp lighthouse-audit:/app/.lighthouseci/. ./.lighthouseci/
# Clean container
docker rm -f lighthouse-audit