Skip to content

Merge pull request #97 from premAI-io/model-open #470

Merge pull request #97 from premAI-io/model-open

Merge pull request #97 from premAI-io/model-open #470

Workflow file for this run

# see https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml
name: site
on:
push: {branches: [main], tags-ignore: ['**']}
pull_request:
schedule: [{cron: '0 10 * * 6'}] # M H d m w (Sat 10:00)
permissions:
# allow GITHUB_TOKEN to deploy to GitHub Pages
contents: read
pages: write
id-token: write
concurrency: {group: "${{ github.ref }}-pages", cancel-in-progress: true}
env:
SITE_PREFIX: state-of-open-source-ai
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: {fetch-depth: 0}
- uses: actions/setup-python@v4
with: {python-version: '3.x'}
- run: pip install -r requirements.txt pyyaml
- name: check CITATION.cff & .zenodo.json
run: |
python <<EOF
import json, yaml
cff = yaml.safe_load(open("CITATION.cff"))
zen = json.load(open(".zenodo.json"))
assert cff['title'] == zen['title'] + " Book"
assert len(cff['authors']) - 1 == len(zen['creators'])
for cauth, zauth in zip(cff['authors'][:-1], zen['creators']):
assert zauth['name'] == f"{cauth['family-names']}, {cauth['given-names']}"
assert zauth.get('affiliation', "") == cauth.get('affiliation', "")
assert zauth.get('orcid', "") == cauth.get('orcid', "").rsplit("/", 1)[-1]
assert [{'name': cff['authors'][-1]['name'], 'type': "Other"}] == zen['contributors']
assert cff['abstract'] == zen['description']
assert cff['url'] == zen['related_identifiers'][0]['identifier']
assert cff['keywords'] == zen['keywords']
EOF
- name: linkcheck
# https://jupyterbook.org/en/stable/reference/cli.html
run: jupyter-book build --builder linkcheck --warningiserror --nitpick --keep-going .
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: {fetch-depth: 0}
- uses: actions/setup-python@v4
with: {python-version: '3.x'}
- id: pages
uses: actions/configure-pages@v3
- run: pip install -r requirements.txt
- name: jupyter-book build
run: |
sudo apt update -qq
sudo apt install -qq ghostscript fonts-freefont-otf # https://stackoverflow.com/a/69012150
sed -ri 's#^(\s*baseurl:).*#\1 ${{ steps.pages.outputs.base_url }}/'$SITE_PREFIX'#g' _config.yml
jupyter-book build --builder dirhtml --warningiserror --nitpick --keep-going .
# fix https://github.com/executablebooks/jupyter-book/issues/2066
sed -ri 's#(.*link rel="canonical" href=".*)\.html(".*)#\1/\2#' _build/dirhtml/*/index.html
jupyter-book build --builder latex --warningiserror --nitpick --keep-going .
cd _build/latex
# fix contrib.rocks
mv state-of-open-source-ai contrib-rocks.svg
convert contrib-rocks.svg contrib-rocks.png || :
sed -ri 's/(.*includegraphics\{\{)state-of-open-source-ai(\}\}.*)/\1contrib-rocks.png\2/g' book.tex
# fix undefined in FreeFont
sed -ri \
-e 's/[🆕🌈🎉💪💬💻📝📥🔠🔌🛠␂↔️⚙️]//g' \
-e 's/🔴/☒/g' \
-e 's/🟡/☐/g' \
-e 's/🟢/☑/g' \
book.tex
# insert PDF cover
curl -fsSLO https://static.premai.io/book/cover.pdf
- uses: xu-cheng/latex-action@v3
with:
working_directory: _build/latex
root_file: book.tex
args: -pdf -dvi- -ps- -file-line-error -f -interaction=nonstopmode
latexmk_use_xelatex: true
env:
XINDYOPTS: -L english -C utf8 -M sphinx.xdy
continue-on-error: true
- name: prepare _site pages
run: |
mkdir _site
mv _build/dirhtml _site/$SITE_PREFIX
mv _build/latex/book.pdf _site/$SITE_PREFIX.pdf
sed "s#DESTINATION#${{ steps.pages.outputs.base_url }}/$SITE_PREFIX#g" .redirect-template.html > _site/index.html
- uses: actions/upload-pages-artifact@v2
deploy:
if: github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: [check, build]
steps:
- id: deployment
uses: actions/deploy-pages@v2