-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
- Loading branch information
1 parent
9583a9e
commit c9b2e53
Showing
1 changed file
with
104 additions
and
104 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,106 +1,106 @@ | ||
--- | ||
name: tox | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
create: # is used for publishing to PyPI and TestPyPI | ||
tags: # any tag regardless of its name, no branches | ||
- "**" | ||
push: # only publishes pushes to the main branch to TestPyPI | ||
branches: # any integration branch but not tag | ||
- "main" | ||
pull_request: | ||
workflow_call: | ||
|
||
jobs: | ||
pre: | ||
name: pre | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
matrix: ${{ steps.generate_matrix.outputs.matrix }} | ||
steps: | ||
- name: Determine matrix | ||
id: generate_matrix | ||
uses: coactions/dynamic-matrix@v1 | ||
with: | ||
min_python: "3.9" | ||
max_python: "3.12" | ||
default_python: "3.11" | ||
other_names: | | ||
lint | ||
pkg | ||
platforms: linux,macos | ||
macos: minmax | ||
build: | ||
name: ${{ matrix.name }} | ||
runs-on: ${{ matrix.os || 'ubuntu-22.04' }} | ||
needs: pre | ||
strategy: | ||
fail-fast: false | ||
matrix: ${{ fromJson(needs.pre.outputs.matrix) }} | ||
env: | ||
FORCE_COLOR: 1 | ||
|
||
steps: | ||
- name: Check out src from Git | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # needed by setuptools-scm | ||
|
||
- name: Set up Python ${{ matrix.python_version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
|
||
- name: Pre-commit cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pre-commit | ||
key: ${{ matrix.name }}-pre-commit-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }} | ||
|
||
- name: Pip cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: ${{ matrix.name }}-pip-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }} | ||
|
||
- name: Install tox | ||
run: python3 -m pip install --upgrade 'tox>=4.0.3' | ||
|
||
- name: Initialize tox envs | ||
run: python -m tox --notest --skip-missing-interpreters false -vv -e ${{ matrix.passed_name }} | ||
|
||
- name: "tox -e ${{ matrix.passed_name }}" | ||
continue-on-error: ${{ matrix.devel || false }} | ||
run: python3 -m tox -e ${{ matrix.passed_name }} | ||
name: tox | ||
|
||
- name: Archive logs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: logs.zip | ||
path: .tox/**/log/ | ||
|
||
- name: Upload coverage data | ||
if: ${{ startsWith(matrix.passed_name, 'py') }} | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
name: ${{ matrix.passed_name }} | ||
fail_ci_if_error: false # see https://github.com/codecov/codecov-action/issues/598 | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
verbose: true # optional (default = false) | ||
|
||
check: # This job does nothing and is only used for the branch protection | ||
if: always() | ||
|
||
needs: | ||
- build | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: Decide whether the needed jobs succeeded or failed | ||
uses: re-actors/alls-green@release/v1 | ||
with: | ||
jobs: ${{ toJSON(needs) }} | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
create: # is used for publishing to PyPI and TestPyPI | ||
tags: # any tag regardless of its name, no branches | ||
- "**" | ||
push: # only publishes pushes to the main branch to TestPyPI | ||
branches: # any integration branch but not tag | ||
- "main" | ||
pull_request: | ||
workflow_call: | ||
|
||
jobs: | ||
pre: | ||
name: pre | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
matrix: ${{ steps.generate_matrix.outputs.matrix }} | ||
steps: | ||
- name: Determine matrix | ||
id: generate_matrix | ||
uses: coactions/dynamic-matrix@v1 | ||
with: | ||
min_python: "3.9" | ||
max_python: "3.12" | ||
default_python: "3.11" | ||
other_names: | | ||
lint | ||
pkg | ||
platforms: linux,macos | ||
macos: minmax | ||
build: | ||
name: ${{ matrix.name }} | ||
runs-on: ${{ matrix.os || 'ubuntu-22.04' }} | ||
needs: pre | ||
strategy: | ||
fail-fast: false | ||
matrix: ${{ fromJson(needs.pre.outputs.matrix) }} | ||
env: | ||
FORCE_COLOR: 1 | ||
|
||
steps: | ||
- name: Check out src from Git | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # needed by setuptools-scm | ||
|
||
- name: Set up Python ${{ matrix.python_version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
|
||
- name: Pre-commit cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pre-commit | ||
key: ${{ matrix.name }}-pre-commit-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }} | ||
|
||
- name: Pip cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: ${{ matrix.name }}-pip-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }} | ||
|
||
- name: Install tox | ||
run: python3 -m pip install --upgrade 'tox>=4.0.3' | ||
|
||
- name: Initialize tox envs | ||
run: python -m tox --notest --skip-missing-interpreters false -vv -e ${{ matrix.passed_name }} | ||
|
||
- name: "tox -e ${{ matrix.passed_name }}" | ||
continue-on-error: ${{ matrix.devel || false }} | ||
run: python3 -m tox -e ${{ matrix.passed_name }} | ||
|
||
- name: Archive logs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: logs.zip | ||
path: .tox/**/log/ | ||
|
||
- name: Upload coverage data | ||
if: ${{ startsWith(matrix.passed_name, 'py') }} | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
name: ${{ matrix.passed_name }} | ||
fail_ci_if_error: false # see https://github.com/codecov/codecov-action/issues/598 | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
verbose: true # optional (default = false) | ||
|
||
check: # This job does nothing and is only used for the branch protection | ||
if: always() | ||
|
||
needs: | ||
- build | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: Decide whether the needed jobs succeeded or failed | ||
uses: re-actors/alls-green@release/v1 | ||
with: | ||
jobs: ${{ toJSON(needs) }} |