Skip to content

Merge pull request #29 from sony/bumpfw #140

Merge pull request #29 from sony/bumpfw

Merge pull request #29 from sony/bumpfw #140

Workflow file for this run

name: Run CI Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
precommit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python 3
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Run pre-commit
run: |
./install-pre-commit.sh
pre-commit run --all
- name: generate docs
run: |
./generate_docs.sh
if [ -n "$(git status docs --porcelain)" ];then
git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "GitHub Actions [Bot]"
set -x
branch=${{ github.head_ref }}
new_branch=${branch}_update_docs_$(date +%s)
git checkout -b $new_branch
git add docs
git commit -m "Update docs [Created by Github action]"
git push origin $new_branch
gh pr create --base $branch --head $new_branch --title "Update docs [Created by Github action]" --body "" \
--assignee ${{ github.actor }}
echo Docs are not up to date. Pull Request was created.
exit 1
else
echo Docs are up to date.
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run-tf-tests:
needs: [precommit]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# NOTE if newer versions are added, update sony_custom_layers.__init__ pinned_requirements!!!
py_ver: ["3.8", "3.9", "3.10", "3.11"]
tf_ver: ["2.10", "2.11", "2.12", "2.13", "2.14", "2.15"]
exclude:
- py_ver: "3.11"
tf_ver: "2.10"
- py_ver: "3.11"
tf_ver: "2.11"
- py_ver: "3.8"
tf_ver: "2.14"
- py_ver: "3.8"
tf_ver: "2.15"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python 3
uses: actions/setup-python@v5
with:
python-version: ${{matrix.py_ver}}
- name: Install dependencies
run: |
if [ ${{matrix.tf_ver}} == 2.10 ] || [ ${{matrix.tf_ver}} == 2.11 ];then
extra_req='numpy<2'
fi
pip install tensorflow==${{matrix.tf_ver}}.* $extra_req
pip install -r requirements_test.txt
pip list
- name: Run pytest
run: |
pytest sony_custom_layers/keras
run-torch-tests:
needs: [precommit]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Test selected versions combinations as following:
# * latest/earliest torch+torchvision X latest/earliest ort X latest/earliest ort-ext X latest/earliest onnx
# * each remaining version is covered by at least one test
# !!!NOTE!!! if newer versions are added, update sony_custom_layers.__init__ pinned_requirements
py_ver: [ "3.8", "3.9", "3.10", "3.11" ]
torch_ver: ["2.0", "2.1", "2.2", "2.3", "2.4"]
ort_ver: ["1.15", "1.19"]
ort_ext_ver: ["0.8", "0.12"]
onnx_ver: ["1.14", "1.16"]
exclude:
- py_ver: "3.11" # incompatible versions
ort_ext_ver: "0.8"
include:
# torchvision ver is coupled to a specific torch ver
- torch_ver: "2.4"
torchvision_ver: "0.19"
- torch_ver: "2.3"
torchvision_ver: "0.18"
- torch_ver: "2.2"
torchvision_ver: "0.17"
- torch_ver: "2.1"
torchvision_ver: "0.16"
- torch_ver: "2.0"
torchvision_ver: "0.15"
# non-covered versions (ort, ort-ext, onnx)
- py_ver: "3.11"
torch_ver: "2.4"
torchvision_ver: "0.19"
ort_ver: "1.16"
ort_ext_ver: "0.9"
onnx_ver: "1.15"
- py_ver: "3.11"
torch_ver: "2.3"
torchvision_ver: "0.18"
ort_ver: "1.17"
ort_ext_ver: "0.10"
onnx_ver: "1.14"
- py_ver: "3.11"
torch_ver: "2.2"
torchvision_ver: "0.17"
ort_ver: "1.18"
ort_ext_ver: "0.11"
onnx_ver: "1.16"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python 3
uses: actions/setup-python@v5
with:
python-version: ${{matrix.py_ver}}
- name: Install dependencies
run: |
pip install torch==${{matrix.torch_ver}}.* \
torchvision==${{matrix.torchvision_ver}}.* --index-url https://download.pytorch.org/whl/cpu
pip install onnxruntime==${{matrix.ort_ver}}.* \
onnxruntime_extensions==${{matrix.ort_ext_ver}}.* \
onnx==${{matrix.onnx_ver}}.* \
-r ./requirements_test.txt
pip check
pip list
- name: Run pytest
run: |
pytest sony_custom_layers/pytorch
build:
needs: [run-tf-tests, run-torch-tests]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python 3
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: get new dev tag
shell: bash
run : |
pip install packaging
git fetch --tags
latest_tag=$(git tag -l | sort -V -r | head -n 1)
if [ -z "$latest_tag" ]; then
new_version=0.0.0.dev0
else
latest_tag_without_v=${latest_tag#v}
new_version=$(python -c "
from packaging.version import parse
v = parse('$latest_tag_without_v')
if v.is_devrelease:
print(f'{v.major}.{v.minor}.{v.micro}.dev{v.dev + 1}')
else:
print(f'{v.major}.{v.minor+1}.{v.micro}.dev0')
")
fi
echo "new_ver=${new_version}" >> $GITHUB_ENV
echo "new_tag=v${new_version}" >> $GITHUB_ENV
echo "cat GITHUB_ENV"
cat $GITHUB_ENV
- name: update name and version to dev
shell: bash
run: |
echo "__version__ = '${{ env.new_ver }}'" > sony_custom_layers/version.py
echo "print sony_custom_layers/version.py"
cat sony_custom_layers/version.py
sed -i 's/name = sony-custom-layers/name = sony-custom-layers-dev/' setup.cfg
echo "print setup.cfg"
cat setup.cfg
- name: Build wheel
run: |
pip install build
python -m build --wheel
- name: Publish package pypi
shell: bash
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
run: |
pip install twine
twine upload --repository pypi dist/* -u __token__ -p ${{ secrets.PYPI_API_KEY }}
git tag ${{ env.new_tag }}
git push origin ${{ env.new_tag }}