forked from neuromatch/NeuroAI_Course
-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (115 loc) · 4.82 KB
/
publish-book.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: publish-book
on:
workflow_dispatch:
env:
NB_KERNEL: python
ORG: neuromatch
NMA_REPO: chatify_NeuroAI_Course
NMA_MAIN_BRANCH: main
PREREQ_REPO: precourse
PREREQ_INTRO: NeuroAI
CHATIFY: true
SOURCE_REPO: chatify_chatify_NeuroAI_Course
MOD_REPO: chatify_NeuroAI_Course
# This job installs dependencies, build the book, and pushes it to `gh-pages`
jobs:
build-and-deploy-book:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Get commit message
run: |
readonly local msg=$(git log -1 --pretty=format:"%s")
echo "COMMIT_MESSAGE=$msg" >> $GITHUB_ENV
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install CI tools
run: |
BRANCH=`python -c 'import os, re; m = re.search(r"nmaci:([\w-]+)", os.environ["COMMIT_MESSAGE"]); print("main" if m is None else m.group(1))'`
# NOTE: might enventually change this back if we integrate changes
wget https://github.com/$ORG/nmaci/archive/refs/heads/$BRANCH.tar.gz
tar -xzf $BRANCH.tar.gz
pip install --upgrade pip
pip install -r nmaci-$BRANCH/requirements.txt
mv nmaci-$BRANCH/scripts/ ci/
rm -r nmaci-$BRANCH
rm -r $BRANCH.tar.gz
echo ci/ >> .gitignore
- name: Install Chatify, Add to Notebooks, Commit Changes
if: env.CHATIFY == 'true'
run: |
pip install -r ci/chatify/requirements.txt
python ci/chatify/process_notebooks.py
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add '**/student/*.ipynb'
git diff-index --quiet HEAD || git commit -m "Add chatify to student tutorial notebooks"
- name: Push Chatify Changes to Main
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: main
force: false
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install jupyter-book==0.14.0 ghp-import
# pip install jupyter_client==7.3.5 # downgrade jupyter-client to fix hangs
- name: Install XKCD fonts
if: "!contains(env.COMMIT_MESSAGE, 'skip ci')"
run: |
sudo apt-get update -yq
wget http://archive.ubuntu.com/ubuntu/pool/universe/f/fonts-humor-sans/fonts-humor-sans_1.0-4_all.deb
sudo dpkg -i --force-all fonts-humor-sans_1.0-4_all.deb <<< 'yes'
sudo apt install -fy
rm -f $HOME/.matplotlib/fontList.cache
- name: Install backend libs
if: "!contains(env.COMMIT_MESSAGE, 'skip ci')"
run: |
# required for macrocircuits project
sudo apt-get install -y libglew-dev
sudo apt-get install -y libglfw3
sudo apt install -y ffmpeg
echo "MUJOCO_GL=egl" >> $GITHUB_ENV
- name: Install Graphviz
uses: tlylt/install-graphviz@v1
# - name: Copy tutorials from precourse repo
# if: "!contains(env.COMMIT_MESSAGE, 'skip precourse')"
# run: |
# BRANCH=`python -c 'import os, re; m = re.search(r"precourse:([\w-]+)", os.environ["COMMIT_MESSAGE"]); print("main" if m is None else m.group(1))'`
# wget https://github.com/$ORG/$PREREQ_REPO/archive/refs/heads/$BRANCH.tar.gz
# tar -xzf $BRANCH.tar.gz
# mv precourse-$BRANCH/tutorials/W0D* tutorials/
# cat precourse-main/tutorials/materials.yml tutorials/materials.yml > out.yml
# mv out.yml tutorials/materials.yml
# mv precourse-$BRANCH/prereqs .
# rm -r precourse-$BRANCH
# rm -r $BRANCH.tar.gz
- name: Build student book
run: |
python ci/generate_book.py student
jupyter-book toc migrate /home/runner/work/chatify_NeuroAI_Course/chatify_NeuroAI_Course/book/_toc.yml -o /home/runner/work/chatify_NeuroAI_Course/chatify_NeuroAI_Course/book/_toc.yml
ln -s ../tutorials book/tutorials
ln -s ../projects book/projects
ln -s ../prereqs book/prereqs
jupyter-book build book
python ci/parse_html_for_errors.py student
- name: Commit book
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
ghp-import -n -c "chatify.neuroai.neuromatch.io" -m "Update course book" book/_build/html
git checkout -f gh-pages
- name: Publish to gh-pages
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
force: true