Generador de Flujos de Trabajo YAML para GitHub Actions CI/CD
Cree canalizaciones de flujos de trabajo YAML de GitHub Actions listas para producción para Node.js, Go, Python, compilaciones de Docker, pruebas y lanzamientos automatizados.
name: Node.js CI/CD Pipeline
on:
push:
branches:
- 'main'
- 'master'
pull_request:
branches:
- 'main'
- 'master'
workflow_dispatch:
release:
types: [published]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
jobs:
build-and-test:
name: NODE Test & Build
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
node-version: ['18.x', '20.x', '22.x']
steps:
- name: Checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install pnpm package manager
uses: pnpm/action-setup@v4
with:
version: 'latest'
- name: Set up Node.js runtime environment
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install project dependencies
run: pnpm install --frozen-lockfile
- name: Run code linter and style check
run: pnpm run lint
- name: Run static typecheck
run: pnpm run typecheck
- name: Run automated test suite
run: pnpm test -- --coverage
- name: Compile and build production bundle
run: pnpm run build
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: node-js-ci-cd-pipeline-artifact
path: dist/
retention-days: 7
- name: Create GitHub Release on tag
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: dist/**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Compilación Local Instantánea
Sintetice flujos de trabajo de GitHub Actions en la memoria del navegador sin transmitir datos del repositorio a la nube.
Endurecimiento de Seguridad Empresarial
Aplica permisos mínimos para GITHUB_TOKEN, cancelación de ejecuciones redundantes, límites de tiempo y fijación de versiones de acciones.
Soporte Multi-Lenguaje y Estrategia de Matrices
Plantillas optimizadas para Node.js, Python, Go, Rust, Docker y GitHub Pages con almacenamiento en caché automático de dependencias.