name: Docs

on:
  push:
    branches: [master]

permissions:
  contents: write

jobs:
  build-and-deploy:
    concurrency: ci-${{ github.ref }}
    runs-on: ubuntu-latest
    steps:
      - name: Inject slug/short variables
        uses: rlespinasse/github-slug-action@v4

      - name: Install Crystal
        uses: crystal-lang/install-crystal@v1

      - name: Download source
        uses: actions/checkout@v3

      - name: Install dependencies
        run: shards install

      - name: Build docs
        run: crystal docs --project-version="${{ env.GITHUB_REF_SLUG }}" --source-refname="${{ env.GITHUB_SHA_SHORT }}"

      - name: Deploy docs 🚀
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          branch: gh-pages
          folder: docs
          clean: true
