Skip to content

Create a recursive graph iterator and use it to refactor UnusedFuncti… #6797

Create a recursive graph iterator and use it to refactor UnusedFuncti…

Create a recursive graph iterator and use it to refactor UnusedFuncti… #6797

Workflow file for this run

name: CI
on:
schedule:
# Run weekly on Mondays and Wednesdays 00:00
- cron: '00 00 * * MON,WED'
push:
branches:
- main
- 'gh/**/base' # ghstack base branches
- rel-*
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
name:
- py312-torch-nightly
- py311
- py311-torch-nightly
- py311-onnx-weekly
- py311-ort-nightly
- py311-experimental-torchlib-tracing
- py311-experimental-torchlib-onnx-ir
- py310
- py39
- py38
include:
- name: py311
python-version: "3.11"
nox-tag: test build
- name: py310
python-version: "3.10"
nox-tag: test
- name: py39
python-version: "3.9"
nox-tag: test
- name: py38
python-version: "3.8"
nox-tag: test
- name: py312-torch-nightly
python-version: "3.12"
nox-tag: test-torch-nightly
- name: py311-torch-nightly
python-version: "3.11"
nox-tag: test-torch-nightly
- name: py311-onnx-weekly
python-version: "3.11"
nox-tag: test-onnx-weekly
- name: py311-ort-nightly
python-version: "3.11"
nox-tag: test-ort-nightly
- name: py311-experimental-torchlib-tracing
python-version: "3.11"
nox-tag: test-experimental-torchlib-tracing
- name: py311-experimental-torchlib-onnx-ir
python-version: "3.11"
nox-tag: test-experimental-torchlib-onnx-ir
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install nox
run: python -m pip install nox
- name: Pull Test Data
run: git lfs pull
- name: Run tests
run: nox -t ${{ matrix.nox-tag }} --forcecolor -- --cov=onnxscript --cov-report=xml --cov-append --cov-branch -n=auto --junit-xml pytest.xml
env:
CATCH_ORT_SEGFAULT: "${{ matrix.os == 'ubuntu-latest' && '1' || '0' }}"
CREATE_REPRODUCTION_REPORT: "${{ matrix.os == 'ubuntu-latest' && '1' || '0' }}"
- name: Upload coverage to Codecov
if: always()
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: Test Results (${{ matrix.name }}-${{ matrix.os }})
path: pytest.xml
- name: Upload torchlib error reports
if: always()
uses: actions/upload-artifact@v3
with:
name: Error reports (${{ matrix.name }}-${{ matrix.os }})
path: error_reports
- name: Upload IR profiling results
if: matrix.name == 'py311' || matrix.name == 'py311-onnx-weekly'
uses: actions/upload-artifact@v3
with:
name: IR profiling results
path: tests/ir/serde_test_profiles
build_docs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
cache-dependency-path: "**/requirements-dev.txt"
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
- name: Versions
run: |
pip list | grep numpy
pip list | grep onnx
pip list | grep torch
- name: Install package
run: pip install .
- name: Build documentation
run: python -m sphinx docs dist/html
update_readme:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
- name: Update readme
run: |
python docs/update_readme.py
git diff --exit-code -- 'README.md'
if [ $? -ne 0 ]; then
echo "Update readme by running `python docs/update_readme.py`"
exit 1
fi
publish-test-results:
name: "Publish Tests Results to Github"
needs: test
runs-on: ubuntu-latest
permissions:
checks: write
# only needed unless run with comment_mode: off
pull-requests: write
if: always()
steps:
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: "artifacts/**/*.xml"