mirror of https://github.com/gmbrax/Pilgrim.git
64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
name: Pylint and SonarCloud
|
|
on:
|
|
push:
|
|
branches: [ main, master, staging ]
|
|
pull_request:
|
|
branches: [ main, master, staging ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.10"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Necessário para SonarCloud
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
pip install pylint ruff coverage pytest
|
|
|
|
- name: Analysing the code with pylint (console output)
|
|
run: |
|
|
pylint --disable=C0114,C0115,C0116 --exit-zero $(git ls-files '*.py') || true
|
|
|
|
- name: Generate Pylint report for SonarCloud
|
|
run: |
|
|
pylint --disable=C0114,C0115,C0116 --output-format=json --exit-zero $(git ls-files '*.py') > pylint-report.json || true
|
|
|
|
- name: Run Ruff
|
|
run: |
|
|
ruff check --output-format=json . > ruff-report.json || true
|
|
|
|
- name: Run tests with coverage (if you have tests)
|
|
run: |
|
|
if [ -d "tests" ] || [ -f "test_*.py" ] || [ -f "*_test.py" ]; then
|
|
coverage run -m pytest || true
|
|
coverage xml || true
|
|
else
|
|
echo "No tests found, skipping coverage"
|
|
fi
|
|
|
|
- name: SonarCloud Scan
|
|
uses: SonarSource/sonarqube-scan-action@v5.0.0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
with:
|
|
args: >
|
|
-Dsonar.projectKey=gmbrax_Pilgrim
|
|
-Dsonar.organization=gmbrax
|
|
-Dsonar.python.pylint.reportPaths=pylint-report.json
|
|
-Dsonar.python.ruff.reportPaths=ruff-report.json
|
|
-Dsonar.python.coverage.reportPaths=coverage.xml
|