👷 Update order of pytest coverage comment (#1231) #3889
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
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
# This workflow helps you trigger a SonarCloud analysis of your code and populates | |
# GitHub Code Scanning alerts with the vulnerabilities found. | |
# Free for open source project. | |
# 1. Login to SonarCloud.io using your GitHub account | |
# 2. Import your project on SonarCloud | |
# * Add your GitHub organization first, then add your repository as a new project. | |
# * Please note that many languages are eligible for automatic analysis, | |
# which means that the analysis will start automatically without the need to set up GitHub Actions. | |
# * This behavior can be changed in Administration > Analysis Method. | |
# | |
# 3. Follow the SonarCloud in-product tutorial | |
# * a. Copy/paste the Project Key and the Organization Key into the args parameter below | |
# (You'll find this information in SonarCloud. Click on "Information" at the bottom left) | |
# | |
# * b. Generate a new token and add it to your Github repository's secrets using the name SONAR_TOKEN | |
# (On SonarCloud, click on your avatar on top-right > My account > Security | |
# or go directly to https://sonarcloud.io/account/security/) | |
# Feel free to take a look at our documentation (https://docs.sonarcloud.io/getting-started/github/) | |
# or reach out to our community forum if you need some help (https://community.sonarsource.com/c/help/sc/9) | |
name: SonarCloud analysis | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
workflow_dispatch: | |
permissions: | |
pull-requests: read # allows SonarCloud to decorate PRs with analysis results | |
jobs: | |
Analysis: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout the repository | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for proper blame data in SonarCloud | |
- name: Overwrite .mise.toml # Simplify mise in this workflow | |
run: | | |
cat <<EOF > .mise.toml | |
[tools] | |
python = "3.12" | |
"pipx:poetry" = "1.8" | |
uv = "0.4" | |
[settings] | |
experimental = true | |
jobs = 1 | |
pipx_uvx = true | |
python_compile = false | |
[env] | |
# Use Python/Mise managed virtual environment | |
POETRY_VIRTUALENVS_CREATE = "false" | |
# Setup Python Virtual Environment | |
_.python.venv = { path = ".venv", create = true } | |
[tasks."poetry:install"] | |
description = "Poetry Install dependencies for all submodules" | |
depends = ["poetry:install:*"] | |
EOF | |
- name: Install dependencies | |
uses: jdx/mise-action@v2 | |
with: | |
cache: true | |
experimental: true | |
install: true | |
# Install dependencies | |
- name: Install dependencies with Poetry | |
run: mise run poetry:install | |
# Run tests and generate coverage report | |
- name: Run Tests with Coverage | |
run: | | |
source .venv/bin/activate | |
set +e | |
cp .env.example .env | |
source .env | |
poetry run pytest --cov --cov-report=xml --ignore=app/tests/e2e/ --ignore=trustregistry/tests/e2e/ | |
# Analyze with SonarCloud | |
- name: Analyze with SonarCloud | |
uses: SonarSource/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ github.token }} # Needed to get PR information | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret) | |
with: | |
# Additional arguments for the SonarCloud scanner | |
args: > | |
-Dsonar.projectKey=didx-xyz_aries-cloudapi-python | |
-Dsonar.organization=didx-xyz | |
-Dsonar.coverage.exclusions=**/tests/** | |
-Dsonar.python.coverage.reportPaths=coverage.xml |