TEST: use Github based GPU instance for CI #407
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: Build Project [using jupyter-book] | |
on: [pull_request] | |
jobs: | |
preview: | |
runs-on: ubuntu-latest-gpu | |
env: | |
DOCKER_IMG_NAME: mmcky/quantecon-lecture-python:cuda-12.3.1-anaconda-2024-02-py311 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Restore Docker Image Cache if it exists | |
id: cache-docker-mmcky | |
uses: actions/cache@v4 | |
with: | |
path: ci/cache/docker/cuda | |
key: cache-docker-${{ env.DOCKER_IMG_NAME }} | |
- name: Update Docker Image Cache if cache miss | |
if: steps.cache-docker-mmcky.outputs.cache-hit != 'true' | |
run: | | |
docker pull $DOCKER_IMG_NAME | |
mkdir -p ci/cache/docker/cuda | |
docker image save $DOCKER_IMG_NAME --output ./ci/cache/docker/cuda/docker-img.tar | |
- name: Use Docker Image Cache if cache hit | |
if: steps.cache-docker-mmcky.outputs.cache-hit == 'true' | |
run: docker image load --input ./ci/cache/docker/cuda/docker-img.tar | |
# - name: Install JAX[CUDA] and Numpyro[CUDA] | |
# shell: bash -l {0} | |
# run: | | |
# pip install --upgrade "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html | |
# pip install --upgrade "numpyro[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html | |
- name: Check nvidia drivers | |
shell: bash -l {0} | |
run: | | |
nvidia-smi | |
- name: Check python version | |
shell: bash -l {0} | |
run: | | |
python --version | |
# - name: Display Conda Environment Versions | |
# shell: bash -l {0} | |
# run: conda list | |
- name: Display Pip Versions | |
shell: bash -l {0} | |
run: pip list | |
- name: Download "build" folder (cache) | |
uses: dawidd6/action-download-artifact@v3 | |
with: | |
workflow: cache.yml | |
branch: main | |
name: build-cache | |
path: _build | |
# Build Assets (Download Notebooks and PDF via LaTeX) | |
# - name: Build Download Notebooks (sphinx-tojupyter) | |
# shell: bash -l {0} | |
# run: | | |
# jb build lectures --path-output ./ --builder=custom --custom-builder=jupyter -n -W --keep-going | |
# mkdir -p _build/html/_notebooks | |
# cp -u _build/jupyter/*.ipynb _build/html/_notebooks | |
# - name: Build PDF from LaTeX | |
# shell: bash -l {0} | |
# run: | | |
# jb build lectures --builder pdflatex --path-output ./ -n -W --keep-going | |
# mkdir _build/html/_pdf | |
# cp -u _build/latex/*.pdf _build/html/_pdf | |
# Final Build of HTML | |
- name: Build HTML | |
shell: bash -l {0} | |
run: | | |
jb build lectures --path-output ./ -n -W --keep-going | |
- name: Upload build folder | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: _build | |
path: _build/ | |
- name: Upload Execution Reports | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: execution-reports | |
path: _build/html/reports | |
- name: Preview Deploy to Netlify | |
uses: nwtgck/actions-netlify@v2 | |
with: | |
publish-dir: '_build/html/' | |
production-branch: main | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
deploy-message: "Preview Deploy from GitHub Actions" | |
env: | |
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} |