| name: Publish Elixir documentation | |
| on: | |
| push: | |
| branches: ["master"] | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| pages: write | |
| id-token: write | |
| # Allow only one concurrent GitHub Pages workflow | |
| concurrency: | |
| group: "pages" | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Read .tool-versions | |
| uses: marocchino/tool-versions-action@18a164fa2b0db1cc1edf7305fcb17ace36d1c306 # v1.2.0 | |
| id: versions | |
| - name: Set up Elixir | |
| uses: erlef/setup-beam@fc68ffb90438ef2936bbb3251622353b3dcb2f93 # v1.24.0 | |
| with: | |
| elixir-version: ${{steps.versions.outputs.elixir}} | |
| otp-version: ${{ steps.versions.outputs.erlang}} | |
| - name: Restore Elixir dependencies cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 | |
| with: | |
| path: | | |
| deps | |
| _build | |
| priv/plts | |
| key: ${{ runner.os }}-mix-v1-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: ${{ runner.os }}-mix-v1- | |
| - name: Install Mix dependencies | |
| run: mix deps.get | |
| - name: Build documentation | |
| run: mix docs | |
| - name: Deploy to GitHub Pages | |
| uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: ./doc | |