Sobol sensitivity #12
Workflow file for this run
This file contains hidden or 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
| # Build docs | |
| name: UQPCE Docs | |
| on: | |
| # Trigger on push, pull request | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| # Trigger via workflow_dispatch event | |
| workflow_dispatch: | |
| jobs: | |
| docs_ubuntu: | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # baseline versions except with pyoptsparse but no SNOPT | |
| # build docs to verify those that use pyoptsparse do not use SNOPT | |
| - NAME: baseline_no_snopt | |
| PY: '3.11' | |
| NUMPY: '1.26' | |
| SCIPY: '1.13' | |
| PYYAML: '6.0.2' | |
| JAX: '0.6.1' | |
| OPENMDAO: 'latest' | |
| DYMOS: 'latest' | |
| MPI4PY: '3.1.4' | |
| OPTIONAL: '[docs]' | |
| PUBLISH_DOCS: 1 | |
| # # make sure the latest versions of things don't break the docs | |
| # # sticking with Python 3.12 for now, 3.13 requires NumPy 2.1 which does not work yet with PETSc/pyoptsparse | |
| # # Pin PETSc back to 3.22.2 | |
| # - NAME: latest | |
| # PY: '3.12' | |
| # NUMPY: 1 | |
| # SCIPY: 1 | |
| # PETSc: 3.21.0 | |
| # PYOPTSPARSE: 'latest' | |
| # SNOPT: 7.7 | |
| # OPENMDAO: 'dev' | |
| # OPTIONAL: '[docs]' | |
| # JAX: 'latest' | |
| # PUBLISH_DOCS: 0 | |
| steps: | |
| - name: Display run details | |
| run: | | |
| echo "=============================================================" | |
| echo "Run #${GITHUB_RUN_NUMBER}" | |
| echo "Run ID: ${GITHUB_RUN_ID}" | |
| echo "Testing: ${GITHUB_REPOSITORY}" | |
| echo "Triggered by: ${GITHUB_EVENT_NAME}" | |
| echo "Initiated by: ${GITHUB_ACTOR}" | |
| echo "=============================================================" | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup conda | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| python-version: ${{ matrix.PY }} | |
| channels: conda-forge | |
| conda-remove-defaults: true | |
| - name: Install Numpy/Scipy | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install Numpy/Scipy" | |
| echo "=============================================================" | |
| conda install numpy=${{ matrix.NUMPY }} scipy=${{ matrix.SCIPY }} -q -y | |
| - name: Install OpenMDAO | |
| if: matrix.OPENMDAO | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install OpenMDAO" | |
| echo "=============================================================" | |
| if [[ "${{ matrix.OPENMDAO }}" == "dev" ]]; then | |
| pip install git+https://github.com/OpenMDAO/OpenMDAO | |
| elif [[ "${{ matrix.OPENMDAO }}" == "latest" ]]; then | |
| pip install openmdao | |
| else | |
| pip install openmdao==${{ matrix.OPENMDAO }} | |
| fi | |
| - name: Install Dymos | |
| if: matrix.DYMOS | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install Dymos" | |
| echo "=============================================================" | |
| if [[ "${{ matrix.DYMOS }}" == "dev" ]]; then | |
| pip install git+https://github.com/OpenMDAO/dymos | |
| elif [[ "${{ matrix.DYMOS }}" == "latest" ]]; then | |
| pip install dymos | |
| else | |
| pip install dymos==${{ matrix.DYMOS }} | |
| fi | |
| - name: Install PyYAML | |
| if: matrix.PYYAML | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install PyYAML" | |
| echo "=============================================================" | |
| pip install PyYAML==${{ matrix.PYYAML }} | |
| - name: Install JAX | |
| if: matrix.JAX | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install JAX" | |
| echo "=============================================================" | |
| pip install jax==${{ matrix.JAX }} | |
| - name: Install mpi4py | |
| if: matrix.MPI4PY | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install mpi4py" | |
| echo "=============================================================" | |
| conda install mpi4py==${{ matrix.MPI4PY }} -q -y | |
| - name: Install UQPCE | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Install UQPCE" | |
| echo "=============================================================" | |
| pip install .${{ matrix.OPTIONAL }} | |
| - name: Display environment info | |
| id: env_info | |
| shell: bash -l {0} | |
| run: | | |
| conda info | |
| conda list | |
| echo "=============================================================" | |
| echo "Check installed versions of Python, Numpy and Scipy" | |
| echo "=============================================================" | |
| python -c "import sys; assert str(sys.version).startswith(str(${{ matrix.PY }})), \ | |
| f'Python version {sys.version} is not the requested version (${{ matrix.PY }})'" | |
| python -c "import numpy; assert str(numpy.__version__).startswith(str(${{ matrix.NUMPY }})), \ | |
| f'Numpy version {numpy.__version__} is not the requested version (${{ matrix.NUMPY }})'" | |
| python -c "import scipy; assert str(scipy.__version__).startswith(str(${{ matrix.SCIPY }})), \ | |
| f'Scipy version {scipy.__version__} is not the requested version (${{ matrix.SCIPY }})'" | |
| - name: Display dependency tree | |
| if: failure() && steps.env_info.outcome == 'failure' | |
| run: | | |
| pip install pipdeptree | |
| pipdeptree | |
| - name: Build docs | |
| id: build_docs | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Building Docs" | |
| echo "=============================================================" | |
| export PYDEVD_DISABLE_FILE_VALIDATION=1 | |
| jupyter-book build -W --keep-going docs | |
| - name: Display doc build reports | |
| continue-on-error: True | |
| if: failure() && steps.build_docs.outcome == 'failure' | |
| run: | | |
| echo $PWD | |
| find docs/_build/html/reports/ -type f -name '*.log' \ | |
| -exec echo "#################################################################" \; \ | |
| -exec echo {} \; \ | |
| -exec echo "#################################################################" \; \ | |
| -exec cat {} \; | |
| - name: Publish docs to github.io | |
| if: | | |
| github.event_name == 'push' && matrix.PUBLISH_DOCS == '1' | |
| shell: bash -l {0} | |
| run: | | |
| echo "=============================================================" | |
| echo "Publishing Docs to github.io" | |
| echo "=============================================================" | |
| pip install ghp-import | |
| cd $HOME/work/UQPCE/UQPCE | |
| ghp-import -n -p -f docs/_build/html |