diff --git a/.github/workflows/ExportPluto.yaml b/.github/workflows/ExportPluto.yaml new file mode 100644 index 0000000000000000000000000000000000000000..618cb32a57ed825720109445c885395a1d7dff9b --- /dev/null +++ b/.github/workflows/ExportPluto.yaml @@ -0,0 +1,71 @@ +# Copy-pasted from https://github.com/JuliaPluto/static-export-template +name: Export Pluto notebooks +on: + push: + branches: + - main + - master + 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 + +# This action needs permission to write the exported HTML file to the gh-pages branch. +permissions: + contents: write + # (all other permission fields default to "none") + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout this repository + uses: actions/checkout@v4 + + - name: Install Julia + uses: julia-actions/setup-julia@v2 + with: + version: "1" # This will automatically pick the latest Julia version + + - 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-v2-${{ hashFiles('**/Project.toml', '**/Manifest.toml', '.github/workflows/*' ) }}-${{ hashFiles('**/*jl') }} + restore-keys: | + ${{ runner.os }}-pluto_state_cache-v2-${{ hashFiles('**/Project.toml', '**/Manifest.toml', '.github/workflows/*' ) }} + + + - name: Run & export Pluto notebooks + run: | + julia -e 'using Pkg + Pkg.activate(mktempdir()) + Pkg.add([ + Pkg.PackageSpec(name="PlutoSliderServer", version="0.3.2-0.3"), + ]) + + import PlutoSliderServer + + PlutoSliderServer.github_action("."; + Export_cache_dir="pluto_state_cache", + Export_baked_notebookfile=false, + Export_baked_state=false, + # more parameters can go here + )' + + + - name: Deploy to gh-pages + uses: JamesIves/github-pages-deploy-action@releases/v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + branch: gh-pages + folder: . + single-commit: true