Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill ci-cd-engineer명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | ci-cd-engineer |
| description | > Use when this capability is needed. |
Writing GitHub Actions workflows, debugging CI failures, setting up automated releases.
PR opened
→ validate: typecheck + lint + test
→ security: Trivy + Semgrep + Gitleaks
→ build: Docker image
Merge to main
→ validate + security + build (same)
→ publish: push image to registry
→ deploy: deploy to staging
→ smoke-test: verify staging
→ (manual approval)
→ deploy-prod: deploy to production
# .github/workflows/_validate.yml (reusable)
name: Validate
on:
workflow_call:
inputs:
node-version: { type: string, default: '20' }
secrets:
NPM_TOKEN: { required: false }
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- uses: pnpm/action-setup@v4
with: { version: 9 }
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
with: { node-version: ${{ inputs.node-version }}, cache: 'pnpm' }
- run: pnpm install --frozen-lockfile
- run: pnpm typecheck
- run: pnpm test --coverage
- run: pnpm build
# .github/workflows/ci.yml (caller)
name: CI
on: [push, pull_request]
jobs:
validate:
uses: ./.github/workflows/_validate.yml
with: { node-version: '20' }
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
# Secrets detection
- name: Gitleaks
uses: gitleaks/gitleaks-action@v2
# Dependency vulnerabilities
- name: Trivy
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8
with:
scan-type: 'fs'
severity: 'CRITICAL,HIGH'
exit-code: '1'
# SAST
- name: Semgrep
uses: semgrep/semgrep-action@v1
with:
config: "p/security-audit p/owasp-top-ten"
PASS: Pinned to full commit SHA
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
FAIL: Pinned to tag or branch
uses: actions/checkout@v4 # can be moved (supply chain risk)
uses: actions/checkout@main # can change any time
deploy-staging:
environment: staging # uses GitHub environment secrets
runs-on: ubuntu-latest
needs: [validate, security, build]
steps:
- name: Deploy to staging
run: kubectl set image deployment/myapp myapp=$IMAGE_TAG
env:
KUBECONFIG: ${{ secrets.STAGING_KUBECONFIG }}
deploy-prod:
environment: production # requires manual approval in GitHub UI
runs-on: ubuntu-latest
needs: [deploy-staging, smoke-test]
steps:
- name: Deploy to production
run: kubectl set image deployment/myapp myapp=$IMAGE_TAG
# View workflow run
gh run list --limit 5
gh run view <run-id> --log
# Re-run failed jobs
gh run rerun <run-id> --failed-only
# Debug with tmate (SSH into runner — last resort)
- uses: mxschmitt/action-tmate@v3
if: ${{ failure() }}
Source: Abhiram1106/omnix — distributed by TomeVault.