CI/CD For Angular using netlify

implementando un ci/cd para angular utilizando GitHub actions y haciendo deploy a netlify
el reto principal son los tests, debido que angular usa karma para ejecutar la parte de pruebas, se deben agregar configuraciones que permitan ejecutar esto sin interfaz gráfica, para esto puedo recomendar 2 soluciones.
- configurar karma con puppeter
- cambiar karma por jest (recomendada)
solucionado el tema de los test, solo queda ir a nuestro repositorio y crear dos secrets, netlify_auth_token y netlify_site_id que se obtienen en la configuraron de netlify
prácticamente eso es todo, ahora creamos nuestro archivo .github/workflows/main.yml y listo.
name: ci cd
on:
push:
branches:
- main
jobs:
ci_cd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 16
- name: install dependencies
run: npm install
- name: tests
run: npm test
- name: build
run: npm run build
- name: deploy
run: |
npm install -g netlify-cli --force
netlify deploy --auth=${{ secrets.netlify_auth_token }} --dir dist/angular-ci-cd --site=${{secrets.netlify_site_id}} --prod