publish-docs.yml 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. name: Publish Elixir documentation
  2. on:
  3. push:
  4. branches: ["master"]
  5. # Allows you to run this workflow manually from the Actions tab
  6. workflow_dispatch:
  7. permissions:
  8. contents: write
  9. pages: write
  10. id-token: write
  11. # Allow only one concurrent GitHub Pages workflow
  12. concurrency:
  13. group: "pages"
  14. cancel-in-progress: true
  15. jobs:
  16. build:
  17. runs-on: ubuntu-latest
  18. steps:
  19. - name: Checkout
  20. uses: actions/checkout@v4
  21. - name: Read .tool-versions
  22. uses: marocchino/tool-versions-action@v1
  23. id: versions
  24. - name: Set up Elixir
  25. uses: erlef/setup-beam@v1
  26. with:
  27. elixir-version: ${{steps.versions.outputs.elixir}}
  28. otp-version: ${{ steps.versions.outputs.erlang}}
  29. - name: Restore Elixir dependencies cache
  30. uses: actions/cache@v4
  31. with:
  32. path: |
  33. deps
  34. _build
  35. priv/plts
  36. key: ${{ runner.os }}-mix-v1-${{ hashFiles('**/mix.lock') }}
  37. restore-keys: ${{ runner.os }}-mix-v1-
  38. - name: Install Mix dependencies
  39. run: mix deps.get
  40. - name: Build documentation
  41. run: mix docs
  42. - name: Deploy to GitHub Pages
  43. uses: peaceiris/actions-gh-pages@v4
  44. with:
  45. github_token: ${{ secrets.GITHUB_TOKEN }}
  46. publish_dir: ./doc