Skip to content

armory-matrix package for variable-parameter evaluation generation #107

armory-matrix package for variable-parameter evaluation generation

armory-matrix package for variable-parameter evaluation generation #107

Workflow file for this run

---
name: 🚧 Build & Test
on:
workflow_dispatch:
push:
pull_request:
branches:
- master
jobs:
code-linting:
name: 🧹 Code Linting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install pre-commit
run: pip3 install pre-commit taskipy
- name: Lint
run: task lint
unit-tests:
name: 🧪 Unit Tests
runs-on: ubuntu-latest
needs: code-linting
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
pip3 install --no-compile .
pip3 install --no-compile ./library
pip3 install --no-compile ./matrix
- name: Test
run: task test
integration-tests:
name: 🧪 Integration Tests - ${{ matrix.test.name }}
runs-on: ubuntu-latest
needs: code-linting
strategy:
fail-fast: false
matrix:
test:
- name: Image Classification
dir: examples/src/armory/examples/image_classification
script: mnist_vit_pgd.py --batch-size 2 --num-batches 1 --export-every-n-batches 1
- name: Object Detection
dir: examples/src/armory/examples/object_detection
script: license_plates_yolov5_robustdpatch.py --batch-size 2 --num-batches 1 --export-every-n-batches 1
python-version: ["3.8"]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install
# Consider switching to a non-yolo OD example and removing the yolo install,
# it adds 2-ish minutes to this install step.
run: |
pip3 install --no-compile ./library
pip3 install --no-compile ./matrix
pip3 install --no-compile ./examples[huggingface,yolo]
- name: Test
run: cd ${{ matrix.test.dir }} && python ${{ matrix.test.script }}
generate-docs:
name: 📖 Generate Docs
runs-on: ubuntu-latest
needs:
- unit-tests
- integration-tests
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install tools
run: pip install mkdocs mkdocstrings mkdocs-exclude mkdocs-material taskipy
- name: Generate
run: task docs
- name: Upload Docs
uses: actions/upload-artifact@v3
with:
name: armory-library-docs
path: public
retention-days: 1
build:
name: 🔨 Build - ${{ matrix.package }}
runs-on: ubuntu-latest
needs:
- unit-tests
- integration-tests
strategy:
fail-fast: false
matrix:
package:
- library
- matrix
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install
run: |
pip install pip>=23
pip install hatch
- name: Build Wheel
run: cd ${{ matrix.package }} && hatch build --clean --target wheel
- name: Upload Wheel
uses: actions/upload-artifact@v3
with:
name: armory-${{ matrix.package }}-wheel
path: ${{ matrix.package }}/dist/*.whl
retention-days: 7