Refactor CI jobs for adding required jobs in Actions. #39
Workflow file for this run
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: Keras2onnx Unit Test (CI) | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }} | |
cancel-in-progress: true | |
jobs: | |
Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run Tests (Py38-TF2.9) | |
uses: ./.github/actions/keras_unit_test | |
with: | |
tf_version: '2.9.0' | |
python_version: '3.8' | |
ort_version: '1.16.3' | |
onnx_version: '1.16.1' | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Test Results (Py38-TF2.9-ubuntu) | |
path: ./**/test-results-*.xml | |
Test_max_py_with_latest_tf: # Do not change this name because it is used in Ruleset of this repo. | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run Tests (Py310-TF2.15) | |
uses: ./.github/actions/keras_unit_test | |
with: | |
tf_version: '2.15.0' | |
python_version: '3.10' | |
ort_version: '1.16.3' | |
onnx_version: '1.16.1' | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Test Results (Py310-TF2.15-ubuntu) | |
path: ./**/test-results-*.xml | |
Extra_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
name: | |
- 'py39-tf2.10' | |
- 'py39-tf2.15' | |
os: ['ubuntu-latest', 'windows-2022'] | |
ort_version: ['1.16.3'] | |
onnx_version: ['1.16.1'] | |
include: | |
- name: 'py39-tf2.10' | |
tf_version: '2.10.0' | |
python_version: '3.9' | |
- name: 'py39-tf2.15' | |
tf_version: '2.15.0' | |
python_version: '3.9' | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.ort_version }}) | |
uses: ./.github/actions/keras_unit_test | |
with: | |
tf_version: ${{ matrix.tf_version }} | |
python_version: ${{ matrix.python_version }} | |
ort_version: ${{ matrix.ort_version }} | |
onnx_version: ${{ matrix.onnx_version }} | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) | |
path: ./**/test-results*.xml | |
run_tests_tf_15: | |
strategy: | |
matrix: | |
tf_version: ['1.15.0'] | |
python_version: ['3.7'] # Max version that supports tf 1.15 | |
ort_version: ['1.14.1'] # Max version that supports python 3.7 | |
onnx_version: ['1.14.1'] # Max version that supports python 3.7 | |
os: ['ubuntu-latest', 'windows-2022'] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set up Python (${{ matrix.python_version }}) | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies (tf v${{ matrix.tf_version }}) | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
pip install onnxconverter-common | |
pip install onnx==${{ matrix.onnx_version }} | |
pip uninstall -y protobuf | |
pip install "protobuf~=3.20" | |
pip install h5py==3.7.0 | |
pip install parameterized | |
pip install timeout-decorator | |
pip install coloredlogs flatbuffers | |
pip install tensorflow==${{ matrix.tf_version }} | |
pip install pytest pytest-cov pytest-runner | |
pip install onnxruntime==${{ matrix.ort_version }} | |
pip install numpy==1.19.0 | |
pip install -e . | |
echo "----- List all of depdencies:" | |
pip freeze --all | |
- name: Run keras unit tests (${{ matrix.os }}) | |
run: | | |
python -c "import onnxruntime" | |
python -c "import onnxconverter_common" | |
pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) | |
path: ./**/test-results*.xml | |
publish-test-results: | |
name: "Publish Tests Results to Github" | |
needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests, run_tests_tf_15] | |
runs-on: ubuntu-latest | |
permissions: | |
checks: write | |
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" |