From 0c3295f0e08c7c5c1ea700ba633af3c67035c4ef Mon Sep 17 00:00:00 2001 From: klaudio0707 Date: Sat, 13 Jun 2026 23:19:53 -0300 Subject: [PATCH 1/4] feat: initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) 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 From b395e247e83ad9edb4970944b014dd172865f2a1 Mon Sep 17 00:00:00 2001 From: klaudio0707 Date: Sun, 14 Jun 2026 00:08:52 -0300 Subject: [PATCH 2/4] ci(workflow): add automated tests and coverage validation on PR --- .github/workflows/02-tests-ci.yml | 43 +++++++++++++++++++++-- .github/workflows/03-build-containers.yml | 4 +-- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/.github/workflows/02-tests-ci.yml b/.github/workflows/02-tests-ci.yml index 3a9801b..c0e0e8e 100644 --- a/.github/workflows/02-tests-ci.yml +++ b/.github/workflows/02-tests-ci.yml @@ -20,11 +20,50 @@ 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" From 44cd5c350c9fa7d664bcc916eb735de9a428b169 Mon Sep 17 00:00:00 2001 From: klaudio0707 Date: Sun, 14 Jun 2026 00:14:17 -0300 Subject: [PATCH 3/4] ci: implement automated tests with minimum 80% coverage --- .github/workflows/02-tests-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/02-tests-ci.yml b/.github/workflows/02-tests-ci.yml index c0e0e8e..0f42c9d 100644 --- a/.github/workflows/02-tests-ci.yml +++ b/.github/workflows/02-tests-ci.yml @@ -22,7 +22,6 @@ jobs: # LOGICA DE TESTES ### - ### - name: "Setup Node.js" uses: actions/setup-node@v4 with: From 6fc0913d5e9f20ce36ff3eede52f26f73d5e88ae Mon Sep 17 00:00:00 2001 From: klaudio0707 Date: Sun, 14 Jun 2026 00:20:06 -0300 Subject: [PATCH 4/4] ci: implement automated tests with minimum 80% coverage --- .github/workflows/02-tests-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/02-tests-ci.yml b/.github/workflows/02-tests-ci.yml index 0f42c9d..1c9dd47 100644 --- a/.github/workflows/02-tests-ci.yml +++ b/.github/workflows/02-tests-ci.yml @@ -21,7 +21,6 @@ jobs: uses: actions/checkout@v4 # LOGICA DE TESTES - ### - name: "Setup Node.js" uses: actions/setup-node@v4 with: