Skip to content

Improve conda env handling #1525

Improve conda env handling

Improve conda env handling #1525

Workflow file for this run

name: Test and Deploy bioimageio.spec
on:
push:
branches: [main]
pull_request:
branches: ["**"]
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11","3.12", "3.13"]
include:
- python-version: "3.12"
is-dev-version: true
run_expensive_tests: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -e .[dev]
- name: Get Date
id: get-date
run: |
echo "date=$(date +'%Y-%b')"
echo "date=$(date +'%Y-%b')" >> $GITHUB_OUTPUT
shell: bash
- uses: actions/cache/restore@v4
with:
path: bioimageio_cache
key: "py${{ matrix.python-version }}-${{ steps.get-date.outputs.date }}"
- name: Check autogenerated imports
run: python scripts/generate_version_submodule_imports.py check
- run: black --check .
if: matrix.is-dev-version
- name: install additinal deps for a full pyright check
run: pip install json_schema_for_humans
if: matrix.is-dev-version
- run: ruff check
if: matrix.is-dev-version
- run: pyright --version
if: matrix.is-dev-version
- run: pyright -p pyproject.toml --pythonversion ${{ matrix.python-version }}
if: matrix.is-dev-version
- run: pytest
env:
BIOIMAGEIO_CACHE_PATH: bioimageio_cache
SKIP_EXPENSIVE_TESTS: ${{ matrix.run_expensive_tests && 'false' || 'true' }}
- uses: actions/cache/save@v4
# explicit restore/save instead of cache action to cache even if coverage fails
with:
path: bioimageio_cache
key: "py${{ matrix.python-version }}-${{ steps.get-date.outputs.date }}"
- if: matrix.is-dev-version && github.event_name == 'pull_request'
uses: orgoro/[email protected]
with:
coverageFile: coverage.xml
token: ${{ secrets.GITHUB_TOKEN }}
thresholdAll: 0.7
thresholdNew: 0.9
thresholdModified: 0.6
- if: matrix.is-dev-version
run: |
pip install genbadge[coverage]
genbadge coverage --input-file coverage.xml --output-file ./dist/coverage/coverage-badge.svg
coverage html -d dist/coverage
- if: matrix.is-dev-version
uses: actions/upload-artifact@v4
with:
name: coverage
retention-days: 1
path: dist
deploy:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: coverage
path: dist
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -e .[dev]
- name: Generate spec docs
run: python scripts/generate_spec_documentation.py --dist dist/user_docs
- name: Generate interactive documentation
env:
PYTHONPATH: "./scripts"
run: python -m interactive_docs
- name: Generate JSON schemas
run: python scripts/generate_json_schemas.py
- run: pip install json_schema_for_humans
- name: Generate JSON schema documentation
run: python scripts/generate_json_schema_documentation.py
- name: Generate developer docs
run: ./scripts/pdoc/run.sh
- name: copy legacy file until BioImage.IO-packager is updated # TODO: remove if packager does not depend on it anymore
run: cp weight_formats_spec.json ./dist/weight_formats_spec.json
- name: Get branch name to deploy to
id: get_branch
shell: bash
run: |
if [[ -n '${{ github.event.pull_request.head.ref }}' ]]; then branch=gh-pages-${{ github.event.pull_request.head.ref }}; else branch=gh-pages; fi
echo "::set-output name=branch::$branch"
- name: Deploy to ${{ steps.get_branch.outputs.branch }} 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: ${{ steps.get_branch.outputs.branch }}
folder: dist
mamba-build:
runs-on: ubuntu-latest
needs: test
steps:
- name: checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
cache-environment: true
environment-name: build-env
condarc: |
channels:
- conda-forge
- nodefaults
create-args: >-
boa
- name: linux conda build
run: |
conda mambabuild -c conda-forge conda-recipe
shell: bash -l {0}
# rattler-build:
# name: Build package
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Build conda package
# uses: prefix-dev/[email protected]
# with:
# recipe-path: conda-recipe/recipe.yaml