Nightly build #298
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: Nightly build | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '30 4 * * *' | |
defaults: | |
run: | |
shell: bash -l {0} | |
jobs: | |
pytests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- qutip-version: '4' | |
qutip-branch: 'qutip-4.7.X' | |
- qutip-version: '5' | |
qutip-branch: 'master' | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: gaurav-nelson/github-action-markdown-link-check@v1 | |
with: | |
use-quiet-mode: 'yes' | |
folder-path: tutorials-v${{ matrix.qutip-version }} | |
- name: Setup Mambaforge | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
activate-environment: test-environment | |
use-mamba: true | |
- name: Get Date | |
id: get-date | |
run: echo "::set-output name=today::$(/bin/date -u '+%Y%m%d')" | |
shell: bash | |
- name: Cache Conda env | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.CONDA }}/envs | |
key: conda-${{ runner.os }}--${{ runner.arch }}--${{ steps.get-date.outputs.today }}-${{ hashFiles('test_environment.yml') }}-${{ env.CACHE_NUMBER }}-qutip-${{ matrix.qutip-version }} | |
env: | |
# Increase this value to reset cache if etc/example-environment.yml has not changed | |
CACHE_NUMBER: 0 | |
id: cache | |
- name: Install environment | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: mamba env update -n test-environment -f test_environment.yml | |
- name: Install QuTiP | |
run: | | |
pip install --upgrade pip | |
git clone -b ${{ matrix.qutip-branch }} https://github.com/qutip/qutip.git | |
cd qutip | |
pip install -r requirements.txt | |
python setup.py develop | |
cd .. | |
git clone -b master https://github.com/qutip/qutip-qip.git | |
cd qutip-qip | |
pip install -e . | |
cd .. | |
git clone -b master https://github.com/qutip/qutip-qtrl.git | |
cd qutip-qtrl | |
# install qutip-qtrl without deps because it requires qutip 5.0.0a1 | |
pip install --no-deps -e . | |
- name: Install ffmpeg & LaTeX | |
run: | | |
sudo apt update | |
sudo apt install ffmpeg | |
sudo apt install texlive-latex-extra | |
- name: Convert Notebooks | |
run: | | |
rm -rf notebooks | |
mkdir notebooks | |
cp -r tutorials-v${{ matrix.qutip-version }}/* notebooks | |
cd notebooks | |
find . -name '*.md' -exec jupytext --to notebook {} + | |
find . -name '*.md' -delete | |
- name: Check PEP8 formatting | |
run: | | |
pip install nbqa flake8 | |
find . -name '*.ipynb' -exec nbqa flake8 --max-line-length=88 {} + | |
- name: Run tests | |
run: | | |
jupyter kernel & | |
cd notebooks | |
find . -name '*.ipynb' -exec pytest --nbmake --overwrite --nbmake-timeout=600 {} + | |
rm template.ipynb | |
- name: Create Notebook Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: executed-notebooks-v${{ matrix.qutip-version }} | |
path: | | |
notebooks/*.ipynb | |
notebooks/**/*.ipynb |