diff --git a/.github/workflows/02-tests-ci.yml b/.github/workflows/02-tests-ci.yml index 3a9801b..1c9dd47 100644 --- a/.github/workflows/02-tests-ci.yml +++ b/.github/workflows/02-tests-ci.yml @@ -20,11 +20,48 @@ jobs: - name: "Checkout do código" uses: actions/checkout@v4 - # INSIRA AQUI A LÓGICA PARA RODAR OS TESTES E VERIFICAR A COBERTURA - ### - ### - ### + # LOGICA DE TESTES + - name: "Setup Node.js" + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: "Instalar dependências" + run: npm ci + + - name: "Rodar testes com cobertura" + run: npm run tests + + - name: "Verificar cobertura mínima" + run: | + COVERAGE=$(npx nyc report --reporter=text-summary | grep -oP 'Statements\s*:\s*\K[0-9\.]+(?=%)' | head -1) + echo "Cobertura atual: $COVERAGE%" + echo "Mínimo exigido: ${{ env.COVERAGE_MIN }}%" + + if [ -z "$COVERAGE" ]; then + echo "❌ Não foi possível extrair a cobertura!" + exit 1 + fi + + node -e " + const coverage = parseFloat('$COVERAGE'); + const minimo = ${{ env.COVERAGE_MIN }}; + if (coverage >= minimo) { + console.log('✅ Cobertura aprovada: ' + coverage + '%'); + process.exit(0); + } else { + console.log('❌ Cobertura abaixo do mínimo: ' + coverage + '% < ' + minimo + '%'); + process.exit(1); + } + " + + - name: "Upload do relatório de cobertura" + uses: actions/upload-artifact@v4 + with: + name: coverage-report + path: coverage/ + retention-days: 30 + - name: "Extrair porcentagem de cobertura" # Esse step será validado pelo desafio, não altere o nome. No final, ele deve gerar o output "coverage" com a porcentagem de cobertura. id: coverage run: | diff --git a/.github/workflows/03-build-containers.yml b/.github/workflows/03-build-containers.yml index cbddc24..e62aaae 100644 --- a/.github/workflows/03-build-containers.yml +++ b/.github/workflows/03-build-containers.yml @@ -20,8 +20,8 @@ jobs: if: #???? runs-on: ubuntu-latest - steps: - # AQUI VAI O CÓDIGO DO DESAFIO :) + # steps: + # # AQUI VAI O CÓDIGO DO DESAFIO :) generate-certificate: # DAQUI PARA BAIXO, NÃO ALTERAR name: "Desafio Nível 3 - Certificado" diff --git a/README.md b/README.md index 7bb74fc..206150f 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Se inscreva na aula ao vivo e gratuita: https://quiz.linuxtips.io/github-actions Bem-vindo ao **Descomplicando GitHub Actions**! Este projeto foi criado pela comunidade **LINUXtips** para você aprender os conceitos básicos de CI/CD na prática de forma simples e direta. +Nome: Cláudio Roberto + Este projeto foi desenhado para ser o material de apoio do vídeo "Descomplicando GitHub Actions" no [canal da LINUXtips no YouTube](https://youtube.com/linuxtips). A ideia é que você possa codificar junto e aprender na prática. ## O que você vai aprender