Add dd0c/drift notifications, infra, CI: Slack Block Kit, Dockerfiles, Gitea Actions

- Notification service: Slack Block Kit (remediate/accept buttons), webhook delivery, rate limit handling
- Dispatcher with severity-based channel filtering
- Agent Dockerfile: multi-stage Go build, static binary
- SaaS Dockerfile: multi-stage Node build
- Fly.io config: scale-to-zero, shared-cpu
- Gitea Actions: Go test+vet, Node typecheck+test, cross-compile agent (linux/darwin/windows)
This commit is contained in:
2026-03-01 02:46:47 +00:00
parent e67cef518e
commit 5d67de6486
6 changed files with 304 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
agent-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Test agent
run: go test ./...
working-directory: products/02-iac-drift-detection/agent
- name: Vet
run: go vet ./...
working-directory: products/02-iac-drift-detection/agent
saas-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install deps
run: npm ci
working-directory: products/02-iac-drift-detection/saas
- name: Type check
run: npx tsc --noEmit
working-directory: products/02-iac-drift-detection/saas
- name: Test
run: npm test
working-directory: products/02-iac-drift-detection/saas
agent-build:
runs-on: ubuntu-latest
needs: agent-test
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Build agent binaries
run: |
GOOS=linux GOARCH=amd64 go build -o dist/drift-linux-amd64 ./cmd/drift
GOOS=darwin GOARCH=arm64 go build -o dist/drift-darwin-arm64 ./cmd/drift
GOOS=windows GOARCH=amd64 go build -o dist/drift-windows-amd64.exe ./cmd/drift
working-directory: products/02-iac-drift-detection/agent

View File

@@ -0,0 +1,19 @@
name: Deploy
on:
push:
branches: [main]
paths: ['products/02-iac-drift-detection/saas/**']
jobs:
deploy-saas:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: superfly/flyctl-actions/setup-flyctl@master
- name: Deploy SaaS to Fly.io
run: flyctl deploy --config fly.toml --remote-only
working-directory: products/02-iac-drift-detection/saas
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}