UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

179 lines (143 loc) 3.96 kB
# CI Builder Workflow: {project_name} **Platform**: {platform} (GitHub Actions / Gitea Actions) **Builder Image**: {registry_url}/{image_name}:{tag} **Last Updated**: {date} --- ## Workflow File ```yaml # .github/workflows/ci.yml (or .gitea/workflows/ci.yml) name: CI on: push: branches: [{push_branches}] pull_request: branches: [{pr_branches}] workflow_dispatch: env: CI_BUILDER: {registry_url}/{image_name}:{tag} jobs: build: name: Build runs-on: {runner} container: image: ${{{{ env.CI_BUILDER }}}} credentials: username: ${{{{ secrets.REGISTRY_USER }}}} password: ${{{{ secrets.REGISTRY_TOKEN }}}} steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: {install_command} - name: Build run: {build_command} - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: build-output path: {build_artifact_path} test: name: Test needs: build runs-on: {runner} container: image: ${{{{ env.CI_BUILDER }}}} credentials: username: ${{{{ secrets.REGISTRY_USER }}}} password: ${{{{ secrets.REGISTRY_TOKEN }}}} steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: {install_command} - name: Run tests run: {test_command} - name: Upload coverage if: always() uses: actions/upload-artifact@v4 with: name: coverage path: {coverage_path} lint: name: Lint runs-on: {runner} container: image: ${{{{ env.CI_BUILDER }}}} credentials: username: ${{{{ secrets.REGISTRY_USER }}}} password: ${{{{ secrets.REGISTRY_TOKEN }}}} steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: {install_command} - name: Lint run: {lint_command} deploy: name: Deploy needs: [build, test, lint] if: github.ref == 'refs/heads/{deploy_branch}' && github.event_name == 'push' runs-on: {runner} environment: {deploy_environment} steps: - name: Checkout uses: actions/checkout@v4 - name: Deploy run: {deploy_command} env: DEPLOY_TOKEN: ${{{{ secrets.DEPLOY_TOKEN }}}} ``` --- ## Builder Image Update Workflow ```yaml # .github/workflows/builder.yml name: Update CI Builder on: push: paths: - 'ci/Dockerfile.builder' branches: [main] workflow_dispatch: jobs: build-builder: name: Build and Push CI Builder runs-on: {runner} steps: - name: Checkout uses: actions/checkout@v4 - name: Login to registry uses: docker/login-action@v3 with: registry: {registry_host} username: ${{{{ secrets.REGISTRY_USER }}}} password: ${{{{ secrets.REGISTRY_TOKEN }}}} - name: Build and push uses: docker/build-push-action@v5 with: context: . file: ci/Dockerfile.builder push: true tags: | {registry_url}/{image_name}:${{{{ github.sha }}}} {registry_url}/{image_name}:latest ``` --- ## Required Secrets | Secret | Purpose | |--------|---------| | `REGISTRY_USER` | Container registry username | | `REGISTRY_TOKEN` | Container registry access token | | `DEPLOY_TOKEN` | Deployment credential (deploy job only) | --- ## Customization Points | Variable | Description | Default | |----------|-------------|---------| | `{runner}` | Runner label | `ubuntu-latest` | | `{install_command}` | Dependency install | `npm ci` | | `{build_command}` | Build step | `npm run build` | | `{test_command}` | Test step | `npm test` | | `{lint_command}` | Lint step | `npm run lint` | | `{deploy_command}` | Deploy step | Project-specific | --- ## Notes {additional_notes}