Per dtcenter/METplus#2336, call custom GHA to trigger METplus use cas… #42
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: SonarQube Scan | |
# Run SonarQube for Pull Requests and changes to the develop and main_vX.Y branches | |
on: | |
# Trigger analysis for pushes to develop and main_vX.Y branches | |
push: | |
branches: | |
- develop | |
- 'main_v**' | |
paths-ignore: | |
- 'docs/**' | |
- '.github/pull_request_template.md' | |
- '.github/ISSUE_TEMPLATE/**' | |
- '**/README.md' | |
- '**/LICENSE.md' | |
# Trigger analysis for pull requests to develop and main_vX.Y branches | |
pull_request: | |
types: [opened, synchronize, reopened] | |
branches: | |
- develop | |
- 'main_v**' | |
paths-ignore: | |
- 'docs/**' | |
- '.github/pull_request_template.md' | |
- '.github/ISSUE_TEMPLATE/**' | |
- '**/README.md' | |
- '**/LICENSE.md' | |
workflow_dispatch: | |
inputs: | |
reference_branch: | |
description: 'Reference Branch' | |
default: develop | |
type: string | |
jobs: | |
sonarqube: | |
name: SonarQube Scan | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Disable shallow clones for better analysis | |
fetch-depth: 0 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Retrieve METcalcpy repository develop branch | |
run: | | |
metcalcpy_dir="$RUNNER_WORKSPACE/METcalcpy" | |
git clone https://github.com/dtcenter/METcalcpy ${metcalcpy_dir} | |
cd ${metcalcpy_dir} | |
git -C ${metcalcpy_dir} checkout develop | |
python -m pip install -e ${metcalcpy_dir} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
python -m pip install pytest-cov | |
- name: Run Pytests | |
run: coverage run -m pytest | |
- name: Output coverage report | |
run: coverage report -m | |
if: always() | |
- name: Generate XML coverage report | |
run: coverage xml | |
if: always() | |
- name: Get branch name | |
id: get_branch_name | |
run: echo branch_name=${GITHUB_REF#refs/heads/} >> $GITHUB_OUTPUT | |
- name: Configure SonarQube | |
run: .github/jobs/configure_sonarqube.sh | |
env: | |
SOURCE_BRANCH: ${{ steps.get_branch_name.outputs.branch_name }} | |
WD_REFERENCE_BRANCH: ${{ github.event.inputs.reference_branch }} | |
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- name: SonarQube Scan | |
uses: sonarsource/sonarqube-scan-action@master | |
env: | |
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- name: SonarQube Quality Gate check | |
id: sonarqube-quality-gate-check | |
uses: sonarsource/sonarqube-quality-gate-action@master | |
# Force to fail step after specific time. | |
timeout-minutes: 5 | |
env: | |
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |