Refactor CI jobs for adding required jobs in Actions. #35
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 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" |