fix: fetch job status before check #1395
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: CI Pipeline | |
on: | |
pull_request: | |
type: [ opened, synchronize ] | |
push: | |
branches: [ main ] | |
env: | |
WANDB_MODE: offline | |
SETUPTOOLS_ENABLE_FEATURES: legacy-editable | |
jobs: | |
pytest: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- "3.9" | |
- "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: 'false' | |
submodules: 'recursive' | |
ssh-key: ${{ secrets.git_ssh_key }} | |
- name: Get changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
list-files: shell | |
base: 'main' | |
filters: | | |
py_modified: | |
- added|modified: "./**/*.py" | |
- name: Setup Python | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
cache: 'pip' | |
- name: Setup Go | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.18.4' | |
- name: Install Python dependencies | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: pip install -e '.[modules, test]' | |
- name: Install CUE | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: go install cuelang.org/go/cmd/cue@latest | |
- name: Run pytest | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: coverage run -m py.test ./tests/unit | |
- name: Send coverage repot to codecov | |
uses: codecov/codecov-action@v3 | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
with: | |
files: /home/runner/work/zetta_utils/zetta_utils/coverage.xml | |
pylint-isort: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- "3.9" | |
- "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: 'false' | |
submodules: 'recursive' | |
ssh-key: ${{ secrets.git_ssh_key }} | |
- name: Get changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
base: 'main' | |
list-files: shell | |
filters: | | |
py_modified: | |
- added|modified: "./**/*.py" | |
- name: Setup Python | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
cache: 'pip' | |
- name: Install Python dependencies | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: pip install -e '.[modules, test]' | |
- name: Run pylint | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: pylint ${{ steps.filter.outputs.py_modified_files }} | |
- name: Run isort | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: isort --check-only --df --verbose --profile black . | |
mypy: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- "3.9" | |
- "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: 'false' | |
submodules: 'recursive' | |
ssh-key: ${{ secrets.git_ssh_key }} | |
- name: Get changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
list-files: shell | |
base: 'main' | |
filters: | | |
py_modified: | |
- added|modified: "./**/*.py" | |
- name: Setup Python | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
cache: 'pip' | |
- name: Install Python dependencies | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: pip install -e '.[modules, test]' | |
- name: Run mypy | |
if: ${{ steps.filter.outputs.py_modified == 'true' }} | |
run: mypy . | |
test-docs: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- "3.9" | |
- "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: 'false' | |
submodules: 'recursive' | |
ssh-key: ${{ secrets.git_ssh_key }} | |
- name: Get changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
list-files: shell | |
base: 'main' | |
filters: | | |
docs_modified: | |
- added|modified: "./**/*.rst" | |
py_modified: | |
- added|modified: "./**/*.py" | |
- name: Setup Python | |
if: ${{ steps.filter.outputs.docs_modified == 'true' || steps.filter.outputs.py_modified == 'true'}} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
cache: 'pip' | |
- name: Install Python dependencies | |
if: ${{ steps.filter.outputs.docs_modified == 'true' || steps.filter.outputs.py_modified == 'true'}} | |
run: pip install -e '.[modules, docs]' | |
- name: Doctest | |
if: ${{ steps.filter.outputs.docs_modified == 'true' || steps.filter.outputs.py_modified == 'true'}} | |
run: make -C docs doctest | |
- name: Build Docs | |
if: ${{ steps.filter.outputs.docs_modified == 'true' || steps.filter.outputs.py_modified == 'true'}} | |
run: make -C docs html | |
all-checks-test: | |
runs-on: ubuntu-20.04 | |
needs: [mypy, pytest, pylint-isort, test-docs] | |
if: always() | |
steps: | |
- name: Success | |
if: ${{ !(contains(needs.*.result, 'failure')) }} | |
run: exit 0 | |
- name: Failure | |
if: ${{ contains(needs.*.result, 'failure') }} | |
run: exit 1 |