From 8dd8809d3db90051a98b80611cc4d28ab725aec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Juli=C3=A1n=20Espina?= Date: Tue, 1 Oct 2024 16:35:21 -0600 Subject: [PATCH] feat: introduce TiCS analysis to the repo --- .github/workflows/nightly-TICS.yaml | 36 +++++++++++++++++++++++++++++ .gitignore | 1 + repository.py | 3 ++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/nightly-TICS.yaml diff --git a/.github/workflows/nightly-TICS.yaml b/.github/workflows/nightly-TICS.yaml new file mode 100644 index 0000000..1ae82ee --- /dev/null +++ b/.github/workflows/nightly-TICS.yaml @@ -0,0 +1,36 @@ +name: Nightly TICS scan + +on: + schedule: + - cron: '15 17 * * *' # Every day at 17:15 UTC + workflow_dispatch: + +permissions: + contents: read + +jobs: + TICS: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + python3 -m pip install tox pylint flake8 + python3 -m pip install --requirement test-requirements.txt + + - name: Run coverage tests + run: | + tox -e unit + + - name: TICS GitHub Action + uses: tiobe/tics-github-action@v3 + with: + mode: qserver + project: slurm-charms + viewerUrl: https://canonical.tiobe.com/tiobeweb/TICS/api/cfg?name=default + branchdir: ${{ env.GITHUB_WORKSPACE }} + ticsAuthToken: ${{ secrets.TICS_AUTH_TOKEN }} + installTics: true + calc: ALL diff --git a/.gitignore b/.gitignore index 0dac78f..2eb8b9f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ version .ruff_cache/ _build .charmhub.secret +cover diff --git a/repository.py b/repository.py index 29ced54..9d09b30 100755 --- a/repository.py +++ b/repository.py @@ -511,7 +511,8 @@ def unit_test_cli( logger.info("Generating global results...") subprocess.run(["coverage", "combine"] + files, check=True) subprocess.run(["coverage", "report"], check=True) - logger.info(f"File generated at {ROOT_DIR}/.coverage") + subprocess.run(["coverage", "xml", "-o", "cover/coverage.xml"]) + logger.info(f"XML report generated at {ROOT_DIR}/cover/coverage.xml") def build_cli(