diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..cc474e3 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,49 @@ +# Woodpecker CI pipeline for Helix Engage Server (sidecar) +# +# Runs unit tests. Teams notification on completion. + +when: + - event: [push, manual] + +steps: + unit-tests: + image: node:20 + commands: + - npm ci + - npm test -- --ci --forceExit + + notify-teams: + image: curlimages/curl + commands: + - | + if [ "${CI_PIPELINE_STATUS}" = "success" ]; then + ICON="✅" + else + ICON="❌" + fi + 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\": \"${ICON} Helix Engage Server — Pipeline #${CI_PIPELINE_NUMBER}\"}, + {\"type\": \"TextBlock\", \"text\": \"**Branch:** ${CI_COMMIT_BRANCH}\", \"wrap\": true}, + {\"type\": \"TextBlock\", \"text\": \"**Status:** ${CI_PIPELINE_STATUS}\", \"wrap\": true}, + {\"type\": \"TextBlock\", \"text\": \"**Commit:** ${CI_COMMIT_MESSAGE}\", \"wrap\": true} + ], + \"actions\": [ + {\"type\": \"Action.OpenUrl\", \"title\": \"View Pipeline\", \"url\": \"https://operations.healix360.net/repos/2/pipeline/${CI_PIPELINE_NUMBER}\"} + ] + } + }] + }" + environment: + TEAMS_WEBHOOK: + from_secret: teams_webhook + when: + - status: [success, failure]