name: "Hackage, Cabal, macOS" on: pull_request: push: branches: - master schedule: - cron: "45 03 * * *" env: cabalConfig: --enable-tests --disable-optimization --enable-deterministic jobs: build10: name: "GHC" runs-on: macos-latest strategy: matrix: packageRoot: [ hnix-store-core ] defaults: run: working-directory: "./${{ matrix.packageRoot }}" steps: - name: "Git checkout" uses: actions/checkout@v3 with: submodules: recursive - name: "Haskell env setup" id: HaskEnvSetup uses: haskell/actions/setup@v2 with: ghc-version: '9.0' - name: "Repository update" run: cabal v2-update - name: "Install additional system packages" run: cabal v2-install tasty-discover # NOTE: Freeze is for the caching - name: "Configuration freeze" run: cabal v2-freeze $cabalConfig - name: "Copy freeze file to the root dir" run: cp -a cabal.project.freeze ../cabal.project.freeze - name: "Configuring GitHub cache" uses: actions/cache@v3.0.1 with: path: | ${{ steps.HaskEnvSetup.outputs.cabal-store }} dist-newstyle key: ${{ matrix.packageRoot }}-${{ runner.os }}-Cabal-${{ hashFiles( 'cabal.project.freeze' ) }} restore-keys: ${{ matrix.packageRoot }}-${{ runner.os }}-Cabal- - name: "Build" run: cabal v2-build $cabalConfig - name: "Tests" run: cabal v2-test $cabalConfig