GitHub Actions Pipeline
Automatiza la validacion y conciliacion de casos de prueba en cada Pull Request y despliegue a la rama principal.
Flujo de Trabajo Recomendado
Sección titulada «Flujo de Trabajo Recomendado»- En Pull Requests: Ejecuta
testform validateytestform plan. El resultado del plan se publica automaticamente como comentario en el PR para revision por pares. - Al Fusionar en Main: Ejecuta
testform apply -auto-approvepara sincronizar los cambios aprobados en las plataformas de prueba remotas.
Archivo de Workflow (.github/workflows/testform.yml)
Sección titulada «Archivo de Workflow (.github/workflows/testform.yml)»name: Testform CI/CD
on: pull_request: paths: - 'tests/**' - 'main.yml' push: branches: - main paths: - 'tests/**' - 'main.yml'
jobs: testform: name: Testform Plan & Apply runs-on: ubuntu-latest
permissions: contents: read pull-requests: write
steps: - name: Checkout del Repositorio uses: actions/checkout@v4
- name: Configurar Node.js uses: actions/setup-node@v4 with: node-version: 20
- name: Instalar Dependencias run: npm ci
- name: Validar Sintaxis y Politicas run: npx testform validate
- name: Generar Plan de Ejecucion (Pull Request) if: github.event_name == 'pull_request' id: plan env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | npx testform plan -no-color > plan.txt echo "PLAN<<EOF" >> $GITHUB_ENV cat plan.txt >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV
- name: Comentar Plan en Pull Request if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const planOutput = process.env.PLAN; const body = `#### Resultado de Testform Plan \n\`\`\`text\n${planOutput}\n\`\`\``; github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: body });
- name: Aplicar Cambios Aprobados (Push a Main) if: github.event_name == 'push' && github.ref == 'refs/heads/main' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npx testform apply -auto-approve