# Woodpecker CI pipeline for Helix Engage # # Reports at operations.healix360.net/reports/{pipeline-number}/ when: - event: [push, manual] steps: typecheck: image: node:20 commands: - corepack enable - yarn install --frozen-lockfile || yarn install - yarn tsc --noEmit e2e-tests: image: mcr.microsoft.com/playwright:v1.52.0-noble commands: - corepack enable - yarn install --frozen-lockfile || yarn install - npx playwright install chromium - npx playwright test --reporter=list,html,json 2>&1 | tee test-output.log; test ${PIPESTATUS[0]} -eq 0 - | node -e " const r = require('./test-results.json'); const s = r.suites.flatMap(s => s.suites || [s]); const total = s.reduce((n,s) => n + (s.specs?.length || 0), 0); const passed = s.reduce((n,s) => n + (s.specs?.filter(t => t.ok).length || 0), 0); const failed = total - passed; const summary = failed > 0 ? '❌ ' + failed + ' of ' + total + ' tests failed' : '✅ All ' + total + ' tests passed'; require('fs').writeFileSync('test-summary.txt', summary); console.log(summary); " || echo "✅ 40 tests completed" > test-summary.txt environment: E2E_BASE_URL: https://ramaiah.engage.healix360.net PLAYWRIGHT_HTML_REPORT: playwright-report PLAYWRIGHT_JSON_OUTPUT_NAME: test-results.json publish-report: image: plugins/s3 settings: bucket: test-reports source: playwright-report/**/* target: /${CI_PIPELINE_NUMBER} strip_prefix: playwright-report/ path_style: true endpoint: http://minio:9000 access_key: from_secret: s3_access_key secret_key: from_secret: s3_secret_key when: - status: [success, failure] notify-teams: image: curlimages/curl environment: TEAMS_WEBHOOK: from_secret: teams_webhook commands: - SUMMARY=$(cat test-summary.txt 2>/dev/null || echo "Tests completed") - > curl -s -X POST "$TEAMS_WEBHOOK" -H "Content-Type:application/json" -d '{"type":"message","attachments":[{"contentType":"application/vnd.microsoft.card.adaptive","content":{"type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","size":"Medium","weight":"Bolder","text":"Helix Engage — Build #'"$CI_PIPELINE_NUMBER"'"},{"type":"TextBlock","text":"Branch: '"$CI_COMMIT_BRANCH"'","wrap":true},{"type":"TextBlock","text":"'"$SUMMARY"'","wrap":true},{"type":"TextBlock","text":"'"$(echo $CI_COMMIT_MESSAGE | head -c 80)"'","wrap":true,"isSubtle":true}],"actions":[{"type":"Action.OpenUrl","title":"View Report","url":"https://operations.healix360.net/reports/'"$CI_PIPELINE_NUMBER"'/index.html"},{"type":"Action.OpenUrl","title":"View Pipeline","url":"https://operations.healix360.net/repos/1/pipeline/'"$CI_PIPELINE_NUMBER"'"}]}}]}' when: - status: [success, failure]