Skip to content

Refactor CI jobs for adding required jobs in Actions. #32

Refactor CI jobs for adding required jobs in Actions.

Refactor CI jobs for adding required jobs in Actions. #32

name: Keras2onnx App 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:
run_tests:
strategy:
fail-fast: false
matrix:
name:
- 'py38-tf2.9'
- 'py39-tf2.10'
- 'py39-tf2.15'
os: ['ubuntu-latest', 'windows-2022']
opset_version: ['18', '15']
ort_version: ['1.16.3']
onnx_version: ['1.16.1']
include:
- name: 'py38-tf2.9'
tf_version: '2.9.0'
python_version: '3.8'
- 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: 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 onnxruntime==${{ matrix.ort_version }}
pip install Pillow==8.2.0
pip install opencv-python
pip install tqdm
pip install keras-segmentation==0.2.0
git clone https://github.com/matterport/Mask_RCNN
cd Mask_RCNN
pip install -r requirements.txt
python setup.py install
cd ..
pip install matplotlib
git clone https://github.com/qqwweee/keras-yolo3
pip install keras-resnet
pip install git+https://www.github.com/keras-team/keras-contrib.git
pip install keras-tcn==2.8.3
pip install git+https://github.com/qubvel/efficientnet
pip install transformers==4.2.0
pip install keras-self-attention
pip install pytest pytest-cov pytest-runner
pip install "numpy<2"
pip install -e .
echo "----- List all of depdencies:"
pip freeze --all
- name: Run keras application tests (${{ matrix.os }})
run: |
python -c "import onnxruntime"
pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml
cd tests/keras2onnx_applications/nightly_build
python run_all_v2.py
- 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
run_tests_tf_15:
strategy:
matrix:
tf_version: ['1.15.0']
python_version: ['3.7'] # Max version that supports tf 1.15
opset_version: ['18', '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 keras==2.3.1
pip install onnxruntime==${{ matrix.ort_version }}
pip install Pillow==8.2.0
pip install opencv-python
pip install tqdm
pip install keras-segmentation==0.2.0
git clone https://github.com/matterport/Mask_RCNN
cd Mask_RCNN
pip install -r requirements.txt
python setup.py install
cd ..
pip install matplotlib
git clone https://github.com/qqwweee/keras-yolo3
pip install keras-resnet
pip install git+https://www.github.com/keras-team/keras-contrib.git
pip install keras-tcn==2.8.3
pip install git+https://github.com/qubvel/efficientnet
pip install transformers==4.2.0
pip install keras-self-attention
pip install pytest pytest-cov pytest-runner
pip install numpy==1.19.0
pip install h5py==2.9.0
pip install -e .
echo "----- List all of depdencies:"
pip freeze --all
- name: Run keras application tests (${{ matrix.os }})
run: |
python -c "import onnxruntime"
pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml
cd tests/keras2onnx_applications/nightly_build
python run_all_v2.py --exclude "test_keras_applications_v2.py"
- 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: run_tests
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"
publish-test-results-tf-15:
name: "Publish Tests Results(TF15) to Github"
needs: 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"