diff --git a/.github/workflows/DocPreviewCleanup.yml b/.github/workflows/DocPreviewCleanup.yml new file mode 100644 index 0000000000..6af7934d0f --- /dev/null +++ b/.github/workflows/DocPreviewCleanup.yml @@ -0,0 +1,33 @@ +name: Doc Preview Cleanup + +on: + pull_request: + types: [closed] + +# Ensure that only one "Doc Preview Cleanup" workflow is force pushing at a time +concurrency: + group: doc-preview-cleanup + cancel-in-progress: false + +jobs: + doc-preview-cleanup: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout gh-pages branch + uses: actions/checkout@v7 + with: + ref: gh-pages + - name: Delete preview and history + push changes + run: | + if [ -d "${preview_dir}" ]; then + git config user.name "Documenter.jl" + git config user.email "documenter@juliadocs.github.io" + git rm -rf "${preview_dir}" + git commit -m "delete preview" + git branch gh-pages-new "$(echo "delete history" | git commit-tree "HEAD^{tree}")" + git push --force origin gh-pages-new:gh-pages + fi + env: + preview_dir: previews/PR${{ github.event.number }} diff --git a/docs/make.jl b/docs/make.jl index ee7d9f9c8e..37290158c5 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -145,5 +145,9 @@ makedocs(sitename="TrixiParticles.jl", "References" => "references.md" ]) +# Simulations in the doctests and literate tutorials generate VTK and other output files +# in `docs/build/tutorials/out`. Do not commit these files to `gh-pages`. +rm(joinpath("docs", "build", "tutorials", "out"); recursive=true, force=true) + deploydocs(repo="github.com/trixi-framework/TrixiParticles.jl", devbranch="main", push_preview=true)