diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 75bad83..44b4939 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -12,18 +12,18 @@ on: jobs: build: - runs-on: ${{ matrix.os }} + runs-on: [ self-hosted, "${{ matrix.os }}" ] strategy: fail-fast: false matrix: - ghc: ["9.0.1", "8.10.7", "8.8.4", "8.6.5"] - os: [ubuntu-latest] + ghc: ["9.6.6"] + os: [macOS] steps: - uses: actions/checkout@v2 - - uses: haskell/actions/setup@v1 + - uses: haskell-actions/setup@v2 id: setup-haskell with: ghc-version: ${{ matrix.ghc }} @@ -36,21 +36,18 @@ jobs: - name: Configure project run: cabal configure --enable-tests --enable-benchmarks --write-ghc-environment-files=ghc8.4.4+ - - name: Restore cabal cache - uses: haskell-works/cabal-cache-action@v1 + - name: Cabal cache over S3 + uses: action-works/cabal-cache-s3@v1 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - BINARY_CACHE_REGION: ${{ secrets.BINARY_CACHE_REGION }} - BINARY_CACHE_THREADS: ${{ secrets.BINARY_CACHE_THREADS }} - BINARY_CACHE_URI: ${{ secrets.BINARY_CACHE_URI }} with: - args: | - sync-from-archive \ - --threads "$BINARY_CACHE_THREADS" \ - --archive-uri "$BINARY_CACHE_URI" \ - --region "$BINARY_CACHE_REGION" \ - --store-path "${{ steps.setup-haskell.outputs.cabal-store }}" + region: us-west-2 + dist-dir: dist-newstyle + store-path: ${{ steps.setup-haskell.outputs.cabal-store }} + threads: 16 + archive-uri: ${{ secrets.BINARY_CACHE_URI }}/${{ env.CABAL_CACHE_VERSION }}/${{ runner.os }}/${{ matrix.cabal }}/${{ matrix.ghc }} + skip: "${{ secrets.BINARY_CACHE_URI == '' }}" - name: Build # Try building it twice in case of flakey builds on Windows @@ -62,23 +59,6 @@ jobs: run: | cabal test all --enable-tests --enable-benchmarks --write-ghc-environment-files=ghc8.4.4+ - - name: Save cabal cache - uses: haskell-works/cabal-cache-action@v1 - if: ${{ always() }} - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - BINARY_CACHE_REGION: ${{ secrets.BINARY_CACHE_REGION }} - BINARY_CACHE_THREADS: ${{ secrets.BINARY_CACHE_THREADS }} - BINARY_CACHE_URI: ${{ secrets.BINARY_CACHE_URI }} - with: - args: | - sync-to-archive \ - --threads "$BINARY_CACHE_THREADS" \ - --archive-uri "$BINARY_CACHE_URI" \ - --region "$BINARY_CACHE_REGION" \ - --store-path "${{ steps.setup-haskell.outputs.cabal-store }}" - check: needs: build runs-on: ubuntu-latest