Fixed a couple PEP8 failures #420
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
# Build docs | |
name: Dymos Docs | |
on: | |
# Trigger on push, pull request | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master, develop ] | |
# Trigger via workflow_dispatch event | |
workflow_dispatch: | |
jobs: | |
test_ubuntu: | |
runs-on: ubuntu-latest | |
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.10' | |
NUMPY: 1.22 | |
SCIPY: 1.7 | |
PETSc: 3.17 | |
PYOPTSPARSE: 'v2.9.3' | |
OPENMDAO: 'latest' | |
OPTIONAL: '[docs]' | |
JAX: '0.3.24' | |
PUBLISH_DOCS: 1 | |
# make sure the latest versions of things don't break the docs | |
- NAME: latest | |
PY: 3 | |
NUMPY: 1 | |
SCIPY: 1 | |
PETSc: 3 | |
PYOPTSPARSE: 'latest' | |
SNOPT: 7.7 | |
OPENMDAO: 'dev' | |
OPTIONAL: '[docs]' | |
JAX: '0.3.24' | |
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: Create SSH key | |
shell: bash | |
env: | |
SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} | |
SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}} | |
run: | | |
mkdir -p ~/.ssh/ | |
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa | |
sudo chmod 600 ~/.ssh/id_rsa | |
echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Fetch tags | |
run: | | |
git fetch --prune --unshallow --tags | |
- name: Setup conda | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: ${{ matrix.PY }} | |
conda-version: "*" | |
channels: conda-forge,defaults | |
channel-priority: 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 jax | |
if: matrix.JAX | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Install jax" | |
echo "=============================================================" | |
python -m pip install jaxlib==${{ matrix.JAX }} jax==${{ matrix.JAX }} | |
- name: Install PETSc | |
if: matrix.PETSc | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Install PETSc" | |
echo "=============================================================" | |
if [[ "${{ matrix.OPENMPI }}" && "${{ matrix.MPI4PY }}" ]]; then | |
conda install openmpi=${{ matrix.OPENMPI }} mpi4py=${{ matrix.MPI4PY }} petsc4py=${{ matrix.PETSc }} -q -y | |
elif [[ "${{ matrix.MPI4PY }}" ]]; then | |
conda install mpi4py=${{ matrix.MPI4PY }} petsc4py=${{ matrix.PETSc }} -q -y | |
else | |
conda install mpi4py petsc4py=${{ matrix.PETSc }} -q -y | |
fi | |
echo "-----------------------" | |
echo "Quick test of mpi4py:" | |
mpirun -n 2 python -c "from mpi4py import MPI; print(f'Rank: {MPI.COMM_WORLD.rank}')" | |
echo "-----------------------" | |
echo "Quick test of petsc4py:" | |
mpirun -n 2 python -c "import numpy; from mpi4py import MPI; comm = MPI.COMM_WORLD; import petsc4py; petsc4py.init(); x = petsc4py.PETSc.Vec().createWithArray(numpy.ones(5)*comm.rank, comm=comm); print(x.getArray())" | |
echo "-----------------------" | |
echo "OMPI_MCA_rmaps_base_oversubscribe=1" >> $GITHUB_ENV | |
- name: Install pyOptSparse | |
if: matrix.PYOPTSPARSE | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Install pyoptsparse" | |
echo "=============================================================" | |
if [[ "${{ matrix.PYOPTSPARSE }}" == "conda-forge" ]]; then | |
if [[ "${{ matrix.SNOPT }}" ]]; then | |
echo "SNOPT ${{ matrix.SNOPT }} was requested but is not available on conda-forge" | |
fi | |
conda install -c conda-forge pyoptsparse | |
else | |
pip install git+https://github.com/OpenMDAO/build_pyoptsparse | |
if [[ "${{ matrix.PYOPTSPARSE }}" == "latest" ]]; then | |
LATEST_URL=`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/mdolab/pyoptsparse/releases/latest` | |
LATEST_VER=`echo $LATEST_URL | awk '{split($0,a,"/tag/"); print a[2]}'` | |
BRANCH="-b $LATEST_VER" | |
else | |
BRANCH="-b ${{ matrix.PYOPTSPARSE }}" | |
fi | |
if [[ "${{ matrix.PAROPT }}" ]]; then | |
PAROPT="-a" | |
fi | |
if [[ "${{ matrix.SNOPT }}" == "7.7" && "${{ secrets.SNOPT_LOCATION_77 }}" ]]; then | |
echo " > Secure copying SNOPT 7.7 over SSH" | |
mkdir SNOPT | |
scp -qr ${{ secrets.SNOPT_LOCATION_77 }} SNOPT | |
SNOPT="-s SNOPT/src" | |
elif [[ "${{ matrix.SNOPT }}" == "7.2" && "${{ secrets.SNOPT_LOCATION_72 }}" ]]; then | |
echo " > Secure copying SNOPT 7.2 over SSH" | |
mkdir SNOPT | |
scp -qr ${{ secrets.SNOPT_LOCATION_72 }} SNOPT | |
SNOPT="-s SNOPT/source" | |
elif [[ "${{ matrix.SNOPT }}" ]]; then | |
echo "SNOPT version ${{ matrix.SNOPT }} was requested but source is not available" | |
fi | |
build_pyoptsparse $BRANCH $PAROPT $SNOPT | |
fi | |
- 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 bokeh | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Install additional packages for testing/coverage" | |
echo "=============================================================" | |
conda install bokeh | |
- name: Install Dymos | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Install Dymos" | |
echo "=============================================================" | |
pip install .${{ matrix.OPTIONAL }} | |
- name: Display environment 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: Build docs | |
id: build_docs | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Building Docs" | |
echo "=============================================================" | |
pip install git+https://github.com/executablebooks/jupyter-book | |
cd docs | |
jupyter-book build -W --keep-going dymos_book | |
python copy_build_artifacts.py | |
- name: Display doc build reports | |
continue-on-error: True | |
if: failure() && steps.build_docs.outcome == 'failure' | |
run: | | |
echo $PWD | |
cd docs | |
find dymos_book/_build/html/reports/ -type f -name '*.log' \ | |
-exec echo "#################################################################" \; \ | |
-exec echo {} \; \ | |
-exec echo "#################################################################" \; \ | |
-exec cat {} \; | |
- name: Publish docs | |
if: | | |
github.event_name == 'push' && github.ref == 'refs/heads/master' && | |
matrix.PUBLISH_DOCS == '1' | |
shell: bash -l {0} | |
run: | | |
echo "=============================================================" | |
echo "Publishing Docs" | |
echo "=============================================================" | |
pip install ghp-import | |
cd $HOME/work/dymos/dymos | |
pwd | |
ghp-import -n -p -f docs/dymos_book/_build/html |