Update gdsfactory #1206
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: Test code | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
cache-dependency-path: pyproject.toml | |
- name: Test pre-commit hooks | |
run: | | |
python -m pip install --upgrade pip | |
pip install pre-commit | |
pre-commit run -a | |
test_code_pip: | |
runs-on: ubuntu-latest | |
container: ghcr.io/gdsfactory/gdsfactory:main | |
strategy: | |
fail-fast: false | |
max-parallel: 12 | |
matrix: | |
plugin: [femwell, gmsh, meow, sax, tidy3d, klayout, vlsir] | |
name: Test ${{ matrix.plugin }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/pip | |
key: ${{ hashFiles('pyproject.toml') }} | |
- name: Install dependencies | |
run: | | |
pip install -e .[${{ matrix.plugin }},dev] | |
pip install git+https://github.com/gdsfactory/gdsfactory --force-reinstall | |
- name: Test with pytest | |
env: | |
SIMCLOUD_APIKEY: ${{ secrets.SIMCLOUD_APIKEY }} | |
GDSFACTORY_DISPLAY_TYPE: klayout | |
run: pytest gplugins/${{ matrix.plugin }} | |
test_code_conda: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
micromamba-version: "1.3.1-0" | |
init-shell: bash | |
- name: Install dependencies | |
run: | | |
eval "$(micromamba shell hook --shell=bash)" | |
micromamba shell init --shell=bash --prefix=~/micromamba | |
micromamba activate | |
micromamba install -c conda-forge pymeep=*=mpi_mpich_* nlopt -y | |
pip install -e .[dev] | |
pytest gplugins/gmeep gplugins/modes | |
test_non_pip: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
max-parallel: 2 | |
matrix: | |
os: [ubuntu-latest] | |
plugin: [elmer] | |
name: Test ${{ matrix.plugin }} on ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/pip | |
key: ${{ hashFiles('pyproject.toml') }} | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Install dependencies | |
run: | | |
make gmsh | |
make ${{ matrix.plugin }} | |
pip install -e .[dev,gmsh] | |
- name: Test with pytest | |
env: | |
GDSFACTORY_DISPLAY_TYPE: klayout | |
run: pytest gplugins/${{ matrix.plugin }} | |
test_code_coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
micromamba-version: "1.3.1-0" | |
init-shell: bash | |
- name: Install dependencies | |
env: | |
SIMCLOUD_APIKEY: ${{ secrets.SIMCLOUD_APIKEY }} | |
GDSFACTORY_DISPLAY_TYPE: klayout | |
run: | | |
eval "$(micromamba shell hook --shell=bash)" | |
micromamba activate | |
micromamba install -c conda-forge pymeep=*=mpi_mpich_* nlopt -y | |
make dev | |
pip freeze > requirements.txt | |
pytest --cov=gplugins | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
test_docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gdsfactory/ | |
key: 0.0.1 | |
restore-keys: 0.0.1 | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
micromamba-version: "1.3.1-0" | |
init-shell: bash | |
- name: Install dependencies and build docs | |
env: | |
SIMCLOUD_APIKEY: ${{ secrets.SIMCLOUD_APIKEY }} | |
GDSFACTORY_DISPLAY_TYPE: klayout | |
run: | | |
eval "$(micromamba shell hook --shell=bash)" | |
micromamba activate | |
micromamba install -c conda-forge pymeep=*=mpi_mpich_* nlopt -y | |
make test-data | |
make dev | |
make docs | |
- name: Expose docs artifact | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: docs | |
path: docs/_build/html/ |