diff --git a/.github/workflows/DocCleanup.yml b/.github/workflows/DocCleanup.yml new file mode 100644 index 00000000..07ca4454 --- /dev/null +++ b/.github/workflows/DocCleanup.yml @@ -0,0 +1,30 @@ +name: Doc Cleanup +on: + # runs on the 1st day of every month at 03:00 UTC + schedule: + - cron: '0 3 1 * *' + workflow_dispatch: +permissions: + contents: write +jobs: + doc-cleanup: + runs-on: ubuntu-latest + steps: + - name: Checkout gh-pages branch + uses: actions/checkout@v7 + with: + ref: gh-pages + - name: Delete old docs + run: | + keep="$(readlink stable)" + git config user.name "Documenter.jl" + git config user.email "documenter@juliadocs.github.io" + git rm -rf --ignore-unmatch v[0-9]*.[0-9]* + git checkout HEAD -- "$keep" + if git diff --cached --quiet; then + echo "No old docs to delete" + else + git commit -m "Keep latest docs only" + git branch gh-pages-new $(echo "delete history" | git commit-tree HEAD^{tree}) + git push --force origin gh-pages-new:gh-pages + fi diff --git a/docs/make.jl b/docs/make.jl index 75c69056..83a22a2e 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -21,4 +21,9 @@ makedocs(; ] ) -deploydocs(; repo="github.com/JuliaML/TableTransforms.jl", devbranch="master", push_preview=true) +deploydocs(; + repo="github.com/JuliaML/TableTransforms.jl", + versions=["stable" => "v^", "dev" => "dev"], + devbranch="master", + push_preview=true +)