packages feed

hackport-0.9.0.0: cabal/.github/workflows/quick-jobs.yml

name: Quick jobs

# See: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency.
concurrency:
  group: ${{ github.ref }}-${{ github.workflow }}
  cancel-in-progress: true

on:
  push:
    branches:
      - master
  pull_request:
  release:
    types:
      - created

jobs:
  meta:
    name: Meta checks
    runs-on: ubuntu-latest
    # This job is not run in a container, any recent GHC should be fine
    steps:
      - name: Set PATH
        # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
        run: |
          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
      - uses: actions/cache@v3
        with:
          path: ~/.cabal/store
          key: linux-store-meta
      # See https://github.com/haskell/cabal/pull/8739
      - name: Sudo chmod to permit ghcup to update its cache
        run: |
          if [[ "${{ runner.os }}" == "Linux" ]]; then
            sudo ls -lah /usr/local/.ghcup/cache
            sudo mkdir -p /usr/local/.ghcup/cache
            sudo ls -lah /usr/local/.ghcup/cache
            sudo chown -R $USER /usr/local/.ghcup
            sudo chmod -R 777 /usr/local/.ghcup
          fi
      - name: ghcup
        run: |
          ghcup --version
          ghcup config set cache true
          ghcup install ghc recommended
          ghcup set ghc recommended
      - name: Update Hackage index
        run: cabal v2-update
      - name: Install alex
        run: cabal v2-install alex --constraint='alex ==3.2.7.3'
      - uses: actions/checkout@v3
      - name: Regenerate files
        run: |
          make -B lexer
          make -B spdx
          make -B templates
      - name: Check that diff is clean
        run: |
          git status > /dev/null
          git diff-files -p --exit-code
  doctest:
    name: Doctest Cabal
    runs-on: ubuntu-latest
    steps:
      - name: Set PATH
        run: |
          echo "$HOME/.cabal/bin" >> $GITHUB_PATH
      - uses: actions/cache@v3
        with:
          path: ~/.cabal/store
          key: linux-store-doctest
      # See https://github.com/haskell/cabal/pull/8739
      - name: Sudo chmod to permit ghcup to update its cache
        run: |
          if [[ "${{ runner.os }}" == "Linux" ]]; then
            sudo ls -lah /usr/local/.ghcup/cache
            sudo mkdir -p /usr/local/.ghcup/cache
            sudo ls -lah /usr/local/.ghcup/cache
            sudo chown -R $USER /usr/local/.ghcup
            sudo chmod -R 777 /usr/local/.ghcup
          fi
      - name: ghcup
        run: |
          ghcup --version
          ghcup config set cache true
          ghcup install ghc --set recommended
          ghcup install cabal --set latest
      - name: Update Hackage index
        run: cabal v2-update
      - uses: actions/checkout@v3
      - name: Install doctest
        run: make doctest-install
      - name: Doctest
        run: make doctest