Skip to content

[config] - configura ambiente de testes, worksflows do github e rotinas de pre-commit #19

[config] - configura ambiente de testes, worksflows do github e rotinas de pre-commit

[config] - configura ambiente de testes, worksflows do github e rotinas de pre-commit #19

Workflow file for this run

name: front-ci
on:
push:
branches: [main, devel]
pull_request:
branches:
- main
- devel
types: [opened, synchronize, reopened]
jobs:
# ------------------------ TO DO: ADICIONAR BIBLIOTECAS DE ESTILIZACAO DE CODIGO (ES-LINT E PRETTIER) ---------------------------------
# format:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# - name: Use Node.js 20.x
# uses: actions/setup-node@v3
# with:
# node-version: 20.x
# - name: 📬 Caching
# uses: actions/cache@v3
# with:
# path: |
# ${{ github.workspace }}/node_modules
# ${{ github.workspace }}/dist
# key: ${{ runner.os }}-vite-${{ hashFiles('*/package-lock.json') }}-${{ hashFiles('/.{js,jsx,ts,tsx}') }}
# restore-keys: |
# ${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-
# - name: 🧰 Instala bibliotecas e dependências
# run: npm i
# - name: 🔍 Verifica estilização do código
# run: npm run check-format
# lint:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# - name: Use Node.js 20.x
# uses: actions/setup-node@v3
# with:
# node-version: 20.x
# - name: 📬 Caching
# uses: actions/cache@v3
# with:
# path: |
# ${{ github.workspace }}/node_modules
# ${{ github.workspace }}/dist
# key: ${{ runner.os }}-vite-${{ hashFiles('*/package-lock.json') }}-${{ hashFiles('/.{js,jsx,ts,tsx}') }}
# restore-keys: |
# ${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-
# - name: 🧰 Instala bibliotecas e dependências
# run: npm i
# - name: 🧹 Verifica eslint
# run: npm run check-lint
# ------------------------ TO DO: ADICIONAR BIBLIOTECAS DE ESTILIZACAO DE CODIGO (ES-LINT E PRETTIER) ---------------------------------
test:
runs-on: ubuntu-latest
# TO DO: adicionar variaveis de ambiente conforme necessario
# env:
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: 📬 Caching
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/dist
key: ${{ runner.os }}-vite-${{ hashFiles('*/package-lock.json') }}-${{ hashFiles('/.{js,jsx,ts,tsx}') }}
restore-keys: |
${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-
- name: 🧰 Instala bibliotecas e dependências
run: npm i
- name: 🧪 Roda suíte de testes
run: npm test
build:
# TO DO: adicionar format e lint apos configurar prettier e es-lint
# needs: [format, lint]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: 📬 Caching
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/dist
key: ${{ runner.os }}-vite-${{ hashFiles('*/package-lock.json') }}-${{ hashFiles('/.{js,jsx,ts,tsx}') }}
restore-keys: |
${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-
- name: 🧰 Instala bibliotecas e dependências
run: npm i
- name: 📦 Builda o projeto
run: npm run build
sonarcloud:
# TO DO: adicionar variaveis de ambiente conforme necessario
# env:
name: sonarcloud
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: 📬 Caching
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/dist
key: ${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.{js,jsx,ts,tsx}') }}
restore-keys: |
${{ runner.os }}-vite-${{ hashFiles('**/package-lock.json') }}-
- name: 🧰 Instala bibliotecas e dependências
run: npm i
# TODO: Setup eslint
# - name: 📜 Relatório do eslint
# run: npx eslint -f json -o reports/eslint-report.json src || true
- name: 🧪 Testes e cobertura
run: VITEST_REPORTER=vitest-sonar-reporter CI=true npm test -- --coverage
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}