|
name: Build Connect Python OpenAPI Client |
|
|
|
on: |
|
push: |
|
branches: '*' |
|
tags: |
|
- '*' |
|
pull_request: |
|
branches: [ master ] |
|
|
|
jobs: |
|
build: |
|
name: Build and test on Python ${{ matrix.python-version }} |
|
runs-on: ubuntu-latest |
|
strategy: |
|
matrix: |
|
python-version: ['3.9', '3.10', '3.11', '3.12'] |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
with: |
|
fetch-depth: 0 |
|
- 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 |
|
pip install poetry |
|
poetry install |
|
- name: Linting |
|
run: | |
|
poetry run flake8 |
|
- name: Testing |
|
run: | |
|
poetry run pytest |
|
sonar: |
|
name: Sonar Checks |
|
needs: build |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
with: |
|
fetch-depth: 0 |
|
- name: Set up Python '3.10.0' |
|
uses: actions/setup-python@v4 |
|
with: |
|
python-version: '3.10' |
|
- name: Install dependencies |
|
run: | |
|
python -m pip install --upgrade pip |
|
pip install poetry |
|
poetry install --no-root |
|
- name: Testing |
|
run: | |
|
poetry run pytest |
|
- name: Fix coverage.xml for Sonar |
|
run: | |
|
sed -i 's/\/home\/runner\/work\/connect-python-openapi-client\/connect-python-openapi-client\//\/github\/workspace\//g' coverage.xml |
|
- name: SonarCloud |
|
uses: SonarSource/sonarcloud-github-action@master |
|
env: |
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |
|
- name: Wait sonar to process report |
|
uses: jakejarvis/wait-action@master |
|
with: |
|
time: '15s' |
|
- name: SonarQube Quality Gate check |
|
uses: sonarsource/sonarqube-quality-gate-action@master |
|
timeout-minutes: 5 |
|
env: |
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |