advanced60 minLección 2 de 5

Patrones de Integración CI/CD

Integra OpenCode en tus pipelines CI/CD. Aprende revisión automática de código, flujos de trabajo de pruebas, automatización de despliegue y compuertas de calidad para integración continua.

Patrones de Integración CI/CD

¿Por Qué Integrar OpenCode con CI/CD?

BeneficioDescripción
Revisión AutomatizadaLa IA detecta problemas antes de la revisión humana
Calidad ConsistenteLos mismos estándares en cada commit
Retroalimentación Más RápidaLos desarrolladores reciben retroalimentación instantánea
Reducción de CostosMenos ciclos de revisión humana

Integración con GitHub Actions

Flujo de Trabajo Básico

Crear .github/workflows/opencode-review.yml:

yaml
name: OpenCode Review on: pull_request: types: [opened, synchronize] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '18' - name: Install OpenCode run: npm install -g opencode - name: Run Code Review env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | opencode run "Review this pull request for security vulnerabilities and code quality issues" \ --output review.md - name: Comment on PR uses: actions/github-script@v7 with: script: | const fs = require('fs'); const review = fs.readFileSync('review.md', 'utf8'); github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body: review });

Integración con GitLab CI

Crear .gitlab-ci.yml:

yaml
stages: - review - test - deploy opencode-review: stage: review image: node:18 script: - npm install -g opencode - opencode run "Review changed files for issues" > review.txt artifacts: paths: - review.txt only: - merge_requests

Compuertas de Quality Gates

Hook Pre-commit

Crear .husky/pre-commit:

bash
#!/bin/bash opencode run "Check if staged files follow coding standards" || exit 1

Validación de PR

yaml
- name: Validate PR run: | opencode run "Validate: 1. All tests pass 2. No security vulnerabilities 3. Code follows style guide 4. Documentation is updated" \ --output validation-report.md

Pruebas Automatizadas

Generación de Pruebas

yaml
- name: Generate Tests run: | opencode run "Generate unit tests for all functions in src/utils.ts" \ --output tests/utils.test.ts

Cobertura de Pruebas

yaml
- name: Check Coverage run: | npm test -- --coverage opencode run "Analyze test coverage and suggest improvements" \ --output coverage-analysis.md

Automatización de Despliegue

Generación de Changelog

yaml
- name: Generate Changelog run: | opencode run "Generate changelog from git commits since last release" \ --output CHANGELOG.md

Notas de Release

yaml
- name: Create Release Notes if: starts_with(github.ref, 'refs/tags/') run: | opencode run "Create release notes for version ${{ github.ref_name }}" \ --output release-notes.md

Integración de Seguridad

Escaneo de Vulnerabilidades

yaml
- name: Security Scan run: | opencode run "Scan codebase for: 1. SQL injection vulnerabilities 2. XSS vulnerabilities 3. Hardcoded secrets 4. Insecure dependencies" \ --output security-report.md

Cumplimiento de Licencias

yaml
- name: License Check run: | opencode run "Check all dependencies have compatible licenses" \ --output license-report.md

Mejores Prácticas

PrácticaRazón
Cachear dependenciasEjecución más rápida del pipeline
Establecer timeoutsPrevenir trabajos colgados
Usar secretsNunca commitear API keys
Trabajos paralelosRetroalimentación más rápida
Almacenamiento de artefactosMantener reportes accesibles

Practice Questions

Practice Question

¿Cuál es el beneficio principal de integrar OpenCode con CI/CD?

Practice Question

¿Dónde se deben almacenar las API keys en GitHub Actions?

Practice Question

¿Qué hace el comando opencode run en CI/CD?

Practice Question

¿Cómo capturas la salida de OpenCode en CI/CD?

Practice Question

¿Qué debes hacer para prevenir que los trabajos de CI/CD se cuelguen?


Success

Key Takeaways

  • Integra OpenCode con GitHub Actions o GitLab CI para revisión automatizada
  • Usa el flag --output para capturar resultados en archivos
  • Almacena API keys en GitHub Secrets o Variables de GitLab CI
  • Las comppuertas de quality gates detectan problemas antes de la revisión humana
  • El escaneo de seguridad puede detectar vulnerabilidades automáticamente
  • Cachear dependencias y establecer timeouts para pipelines más rápidos y confiables
  • Los trabajos paralelos proporcionan retroalimentación más rápida a los desarrolladores
Progreso40%