# Production Deploy (run via Woodpecker UI: trigger deployment to "production") # No clone: runs without repo checkout; triggers Portainer stack webhook. # Secrets required: portainer_webhook_url (Portainer stack webhook URL), discord_webhook_url (Discord incoming webhook). skip_clone: true when: event: deployment evaluate: 'CI_PIPELINE_DEPLOY_TARGET == "production"' steps: - name: Deploy to Production image: curlimages/curl environment: PORTAINER_WEBHOOK_URL: from_secret: portainer_webhook_url commands: - curl -sS -X POST "$PORTAINER_WEBHOOK_URL" - name: Send Production Deploy Status image: curlimages/curl environment: DISCORD_WEBHOOK_URL: from_secret: discord_webhook_url commands: - | EMOJI="💩" [ "$CI_PIPELINE_STATUS" = "success" ] && EMOJI="🎉" BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Production Deploy %s %s"}' "$CI_REPO" "$CI_PIPELINE_NUMBER" "$CI_PIPELINE_STATUS" "$EMOJI") curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL" when: - status: [ success, failure ]