Skip to content

Commit

Permalink
Update ci_html_build.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
mgough-970 authored May 1, 2024
1 parent e7ab6a4 commit 96ee4f2
Showing 1 changed file with 122 additions and 10 deletions.
132 changes: 122 additions & 10 deletions .github/workflows/ci_html_build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,127 @@
name: Build HTML on merge
on:
pull_request:
branches:
- main
types: [closed]

workflow_dispatch:
on:
pull_request_target:
types: [closed]
paths:
- '**.ipynb'

env:
CASJOBS_PW: ${{ secrets.CASJOBS_PW }}
CASJOBS_USERID: ${{ secrets.CASJOBS_USERID }}
jobs:
Generate_HTML:
prepare_matrix:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- id: set-matrix
run: |
files=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} '*.ipynb')
#files_json=$(echo $files | jq -R -s -c 'split("\n")[:-1]')
files_json=$(echo "$files" | jq -R -s -c 'split("\n")[:-1]')
echo "::set-output name=matrix::${files_json}"
execute-notebooks:
if: github.event.pull_request.merged == true
needs: prepare_matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
notebook: ${{fromJson(needs.prepare_matrix.outputs.matrix)}}

steps:
- uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v3
with:
python-version: ${{ vars.PYTHON_VERSION }}

- name: Install Dependencies (if requirements.txt exists) and Execute Notebook
run: |
notebook="${{ matrix.notebook }}"
dir=$(dirname "$notebook")
if [ -f "$dir/requirements.txt" ]; then
pip install -r "$dir/requirements.txt"
fi
pip install notebook
jupyter nbconvert --to notebook --execute --inplace "$notebook"
- name: Commit modified file on current branch
run: |
git config user.name 'CI Bot'
git config user.email '[email protected]'
git add "${{ matrix.notebook }}"
git commit -m "Storing executed notebook ${{ matrix.notebook }}"
- name: Checkout only the file to the target branch
run: |
git fetch
git pull
git checkout -f gh-storage
git checkout @{-1} "${{ matrix.notebook }}"
- name: Commit and push modifications to target branch
run: |
git commit -m "Storing executed notebook ${{ matrix.notebook }}"
MAX_RETRIES=5
RETRY_DELAY=10s
for i in $(seq 1 $MAX_RETRIES); do
git push origin gh-storage --force && break || {
echo "Push $i failed... waiting $RETRY_DELAY"
sleep $RETRY_DELAY
}
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


generate_html:
if: github.event.pull_request.merged == true
uses: spacetelescope/notebook-ci-actions/.github/workflows/ci_builder.yml@v3
with:
python-version: ${{ vars.PYTHON_VERSION }}
needs: execute-notebooks
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ vars.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ vars.PYTHON_VERSION }}

- name: Install dependencies
run: |
pip install ghp-import
pip install jupyter-book==v0.15.1
pip install myst-nb
pip install astroid
pip install nbval
#pip install bs4
#pip install lxml
## test to bypass the jupyter-book lower version
pip install jsonschema==4.6.0
PATH="${PATH}:${HOME}/.local/bin"
- name: Build HTML
run: |
git fetch
git checkout origin/gh-storage -- notebooks/
jupyter-book build .
# Push the book's HTML to github-pages
- name: GitHub Pages action
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./_build/html

0 comments on commit 96ee4f2

Please sign in to comment.