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