📈 Fix #29 Added test coverage on everything, codecov at 100% #60
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: # Quando será rodado? | |
push: # Quando acontecer um push | |
branches: # na branch "main" | |
- "main" | |
pull_request: # E Quando acontecer um pull_request para "main" | |
branches: | |
- "main" | |
workflow_dispatch: #Pode rodar manualmente mesmo que não tenha um pull request | |
jobs: | |
lint: # teste de formatação | |
strategy: #Estrategias para rodar os tests | |
fail-fast: true # em formato "true" se falhar um teste, ele falha todos direto | |
matrix: #configura versão | |
python-version: ['3.11'] # python que ele ira usar para test | |
os: [ubuntu-latest] # Sistema operacional que ira usar para o test | |
runs-on: ${{ matrix.os }} # Usado para unificar as configurações da matrix | |
steps: #o que ele ira fazer? | |
- uses: actions/checkout@v2 #Fazer um checout na branch local na versão 2 | |
- uses: actions/setup-python@v2 #Utilizando o setup python na versão 2 | |
with: | |
python-version: ${{ matrix.python-version }} # Vai utilizar os python na versão especificada | |
- name: Install Project | |
run: pip install '.[test]' # instalando o programa em forma de test | |
# - name: Typing | |
# run: mypy --ignore-missing-imports dundie | |
- name: Look for style erros | |
run: pflake8 # Rodando o flake para verificar se tem erro de formatação | |
- name: Check for importing style | |
run: isort --profile=black -m 3 --check --diff dundie tests integration | |
- name: Look for auto format erros | |
run: black --check --diff dundie tests integration # Verificar se está correto a formtação do black | |
tests: #Vai rodar os tests aqui dentro | |
needs: lint # Antes de iniciar os test, é preciso ter ocorrido tudo certo com o lint | |
strategy: #Estrategias para rodar os tests | |
fail-fast: false # em formato "true" se falhar um teste, ele falha todos direto | |
matrix: #configura versão | |
python-version: ['3.9', '3.10', '3.11'] # python que ele ira usar para test | |
os: [ubuntu-latest] # Sistema operacional que ira usar para o test | |
runs-on: ${{ matrix.os }} # Usado para unificar as configurações da matrix | |
steps: #o que ele ira fazer? | |
- uses: actions/checkout@v2 #Fazer um checout na branch local na versão 2 | |
- uses: actions/setup-python@v2 #Utilizando o setup python na versão 2 | |
with: | |
python-version: ${{ matrix.python-version }} # Vai utilizar os python na versão especificada | |
- name: Install Project | |
run: pip install '.[test]' # instalando o programa em forma de test | |
- name: Run tests | |
run: pytest -v --cov=dundie --cov-report=xml --forked --junitxml=test-results.xml # Rodando os test e gerando um arquivo como relatorio | |
- name: Upload coverage to Codecov | |
uses: codecov/[email protected] | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.xml | |
fail_ci_if_error: true | |
- name: Publish Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 # publicar os test unitarios que viram no arquivo xml | |
if: always() # Sempre publicar, seja com erro ou com acerto no test | |
with: | |
files: test-results.xml | |
check_name: Test Result (Python ${{matrix.python-version}}) |