Skip to content

Fix Zombie Attack with MTK notebook (#74) #128

Fix Zombie Attack with MTK notebook (#74)

Fix Zombie Attack with MTK notebook (#74) #128

Workflow file for this run

###
# HELLO
# Interested in setting up a cool github action like this one? Take a look at: https://github.com/JuliaPluto/static-export-template
name: Export Pluto notebooks
on:
push:
branches:
- main
workflow_dispatch:
# When two jobs run in parallel, cancel the older ones, to make sure that the website is generated from the most recent commit.
concurrency:
group: pluto-export
cancel-in-progress: true
jobs:
build-and-deploy:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Julia
uses: julia-actions/setup-julia@v2
with:
# note: this version should match the version in the other actions in this repo
version: "1.11"
- name: Cache Julia artifacts & such
uses: julia-actions/cache@v2
with:
cache-registries: "true"
# We set up a folder that Pluto can use to cache exported notebooks. If the notebook file did not change, then Pluto can take the exported file from cache instead of running the notebook.
- name: Set up notebook state cache
uses: actions/cache@v4
with:
path: pluto_state_cache
key: ${{ runner.os }}-pluto_state_cache-v3-${{ hashFiles('**/Project.toml', '**/Manifest.toml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-pluto_state_cache-v3-${{ hashFiles('**/Project.toml', '**/Manifest.toml') }}
- name: install GL dependencies
run: sudo apt-get update && sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev xsettingsd x11-xserver-utils
- name: Run & export Pluto notebooks
run: |
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia -e '
import Pkg
Pkg.activate("pluto-deployment-environment")
Pkg.instantiate()
import PlutoSliderServer, Pluto
isdir("output") && rm("output"; recursive=true)
# run PlutoSliderServer
PlutoSliderServer.github_action("src";
Export_output_dir="output",
Export_cache_dir="pluto_state_cache",
# more parameters can go here
)
# custom index
index_html_contents = Pluto.generate_index_html(;
version=PlutoSliderServer.try_get_exact_pluto_version(),
featured_direct_html_links=true,
featured_sources_js="""[
// notebooks from this repo
{
url:`./pluto_export.json`
},
// additional: plutojl.org website
{
id: "pluto website",
url: "https://plutojl.org/pluto_export.json",
// this is one month before the expiry date of our domain registration at njal.la
valid_until: "2025-10",
},
]""",
)
write(joinpath("output", "index.html"), index_html_contents)
cp("netlify.toml", joinpath("output", "netlify.toml"))'
- name: Deploy to dist
uses: JamesIves/github-pages-deploy-action@releases/v4
with:
branch: dist
folder: output