ワンクリックで
ci-cd
Manage and extend the CI/CD pipeline (GitHub Actions, Docker, build scripts)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Manage and extend the CI/CD pipeline (GitHub Actions, Docker, build scripts)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Update CLAUDE.md and README.md to reflect code changes
Audit the codebase for hexagonal architecture violations (forbidden imports, dependency direction, port conformance)
Explain Theatrum's hexagonal (ports & adapters) architecture with concrete examples from the codebase
Expert reference on streaming protocols (HLS, DASH, RTMP, adaptive bitrate) grounded in Theatrum's implementation
Boot the app, stream via RTMP, watch via HLS/DASH, and validate the full pipeline
Write Go unit and e2e tests following Theatrum's exact conventions
| name | ci-cd |
| description | Manage and extend the CI/CD pipeline (GitHub Actions, Docker, build scripts) |
You help maintain and extend Theatrum's CI/CD infrastructure. Use $ARGUMENTS to specify what you need (e.g., /ci-cd add linting, /ci-cd fix failing workflow, /ci-cd add coverage).
Before making changes, read the current CI/CD files:
.github/workflows/ci.yml — GitHub Actions pipeline (test, build, release)Dockerfile — Multi-stage Docker build (Go builder + Alpine runtime with FFmpeg)scripts/local-build.sh — Local test + build scriptTriggers: All pushes and PRs to any branch.
Jobs:
go test ./... in src/ with Go 1.24CGO_ENABLED=0 go build -o theatrum ./cmd/main.gomain, after test+build pass. Cross-compiles for linux/amd64, linux/arm64, windows/amd64. Creates GitHub release via softprops/action-gh-release@v2 tagged latest.Multi-stage:
golang:1.24.2, downloads deps, builds static binaryalpine:latest, installs ca-certificates tzdata ffmpeg, runs as non-root appuser, exposes port 8080scripts/local-build.sh: Runs tests then builds the binary. Uses set -euo pipefail.
These are areas you can help add:
| Feature | Status | How to Add |
|---|---|---|
| Linting | Missing | Add golangci-lint to CI workflow + .golangci.yml config |
| Code coverage | Missing | Add -coverprofile to test step, upload to Codecov or similar |
| Docker build in CI | Missing | Add Docker build+push step (to GHCR or Docker Hub) |
| docker-compose | Missing | For local dev with test environment |
| Security scanning | Missing | Add Trivy for container image scanning |
| Changelog | Missing | Auto-generate from conventional commits |
| Branch protection | Missing | Require CI pass before merge to main |
| Cache optimization | Partial | Go module cache exists, Docker layer cache could be added |
1.24)working-directory: src for Go commands (source is in src/)cache-dependency-path: src/go.sum for Go setup actionneeds: [test, build]if: github.ref == 'refs/heads/main' && github.event_name == 'push'CGO_ENABLED=0 for static binariesffmpeg (required for live streaming)appuser)main, release binaries are theatrum-*EXPOSE 1935 if RTMP is needed)cd "$(dirname "$0")/../src")set -euo pipefail for strict error handling.golangci.yml at repo root with appropriate linterslint job to .github/workflows/ci.yml:lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.24"
cache-dependency-path: src/go.sum
- uses: golangci/golangci-lint-action@v6
with:
working-directory: src
Add to the test job:
- name: Run tests with coverage
working-directory: src
run: go test ./... -coverprofile=coverage.out -covermode=atomic
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
files: src/coverage.out
docker:
needs: [test, build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
with:
push: false
tags: theatrum:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
After any CI/CD change:
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/ci.yml'))"docker build -t theatrum:test .bash scripts/local-build.shneeds: dependencies