diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..cdd799f --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,60 @@ +# Generate the website with staple, and deploy it. +name: Generate and deploy docs to Pages + +on: + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment - on new push, stop building old docs +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + deploy-docs: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Install SBCL + run: | + sudo apt-get update + sudo apt install -y sbcl + - name: Install Quicklisp + run: | + curl -kLO https://beta.quicklisp.org/quicklisp.lisp + sbcl --non-interactive --load quicklisp.lisp --eval "(quicklisp-quickstart:install)" --eval "(ql-util:without-prompting (ql:add-to-init-file))" + - name: Checkout repository + uses: actions/checkout@v4 + with: + path: cvm + - name: Checkout Clostrum + uses: actions/checkout@v4 + with: + repository: s-expressionists/Clostrum + path: Clostrum + - name: Configure ASDF to find everything + run: | + mkdir -p $HOME/.config/common-lisp/source-registry.conf.d + echo "(:TREE #P\"${{ github.workspace }}/\")" > $HOME/.config/common-lisp/source-registry.conf.d/cleavir.conf + - name: Generate site with Staple + run: | # We quickload external dependencies since Staple doesn't. KLUDGE. + sbcl --non-interactive --eval "(ql:quickload '(:staple-markdown :closer-mop :alexandria :trucler :ecclesia :eclector :ieee-floats :clostrum :clostrum-basic :clostrum-trucler))" --eval "(staple:generate :cvm :output-directory #p\"_site/\")" + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: '_site/' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1