mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage
synced 2026-04-11 18:28:15 +00:00
70 lines
2.9 KiB
YAML
70 lines
2.9 KiB
YAML
# 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]
|