Skip to content

fix: disable shallow clone for sonar ci #5

fix: disable shallow clone for sonar ci

fix: disable shallow clone for sonar ci #5

Workflow file for this run

name: Code Quality
on:
workflow_dispatch:
pull_request:
types:
- opened
- synchronize
- reopened
push:
branches:
- master
- develop
env:
SONAR_PROJECT_KEY: EuleMitKeule_eq3btsmart
SONAR_PROJECT_ORGANIZATION: eule
jobs:
cache:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Load cached Poetry installation
id: cached-poetry
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install Poetry
if: steps.cached-poetry.outputs.cache-hit != 'true'
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
- name: Load cached Poetry venv
id: cached-poetry-venv
uses: actions/cache@v3
with:
path: .venv
key: poetry-venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-venv.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
- name: Install package
run: poetry install --no-interaction
ruff:
needs: cache
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Load cached Poetry installation
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Load cached Poetry venv
uses: actions/cache@v3
with:
path: ~/.venv
key: poetry-venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install package
run: |
poetry install --no-interaction
- name: Run ruff
run: |
poetry run ruff eq3btsmart custom_components/eq3btsmart
mypy:
needs: cache
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Load cached Poetry installation
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Load cached Poetry venv
uses: actions/cache@v3
with:
path: ~/.venv
key: poetry-venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install package
run: |
poetry install --no-interaction
- name: Run mypy
run: |
poetry run mypy eq3btsmart custom_components/eq3btsmart
tests:
needs: cache
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Load cached Poetry installation
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Load cached Poetry venv
uses: actions/cache@v3
with:
path: ~/.venv
key: poetry-venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install package
run: |
poetry install --no-interaction
- name: Run tests
run: |
poetry run pytest --cov=eq3btsmart --cov-report=xml --cov-report=term tests
sonar:
needs: cache
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Load cached Poetry installation
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Load cached Poetry venv
uses: actions/cache@v3
with:
path: ~/.venv
key: poetry-venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install package
run: |
poetry install --no-interaction
- name: Run tests
run: |
poetry run pytest --cov=eq3btsmart --cov-report=xml --cov-report=term tests
- name: fix code coverage paths
run: |
sed -i 's/\/home\/runner\/work\/eq3btsmart\/eq3btsmart\//\/github\/workspace\//g' coverage.xml
- name: Run SonarCloud analysis
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
with:
args: >
-Dsonar.organization=${{ env.SONAR_PROJECT_ORGANIZATION }}
-Dsonar.projectKey=${{ env.SONAR_PROJECT_KEY }}
-Dsonar.python.coverage.reportPaths=coverage.xml
-Dsonar.sources=eq3btsmart
-Dsonar.tests=tests
-Dsonar.python.version=3.11