From 1b360e3592e83bf8bdea9da5c5567c1c851e6cd5 Mon Sep 17 00:00:00 2001 From: Igor Ranieri Date: Fri, 26 Sep 2025 23:25:05 +0200 Subject: [PATCH] Updated ci --- .forgejo/workflows/test.yaml | 62 +++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/.forgejo/workflows/test.yaml b/.forgejo/workflows/test.yaml index 0747c56..22f314d 100644 --- a/.forgejo/workflows/test.yaml +++ b/.forgejo/workflows/test.yaml @@ -1,5 +1,4 @@ name: Haskell CI - on: pull_request: branches: @@ -12,24 +11,65 @@ on: jobs: build: runs-on: docker - + container: + image: ubuntu:22.04 # Use Ubuntu base and install via ghcup like your local setup steps: - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Haskell - run: | - sudo apt update - sudo apt install -y haskell-platform cabal-install + uses: https://github.com/actions/checkout@v4 - name: Install dependencies run: | + apt-get update + apt-get install -y curl build-essential libffi-dev libgmp-dev zlib1g-dev + + - name: Install GHCup + run: | + curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh + echo "source ~/.ghcup/env" >> ~/.bashrc + + - name: Install GHC and Cabal (matching local versions) + run: | + source ~/.ghcup/env + ghcup install ghc 9.10.2 --set + ghcup install cabal 3.14.2.0 --set + + - name: Cache Cabal packages + uses: https://github.com/actions/cache@v4 + with: + path: | + ~/.cabal/packages + ~/.cabal/store + dist-newstyle + key: ${{ runner.os }}-ghc-9.10.2-cabal-${{ hashFiles('**/*.cabal', '**/cabal.project') }} + restore-keys: | + ${{ runner.os }}-ghc-9.10.2-cabal- + + - name: Update Cabal package index + run: | + source ~/.ghcup/env cabal update - cabal build --only-dependencies + + - name: Configure project + run: | + source ~/.ghcup/env + cabal configure --enable-tests --enable-benchmarks + + - name: Build dependencies + run: | + source ~/.ghcup/env + cabal build --only-dependencies --enable-tests --enable-benchmarks - name: Build project - run: cabal build + run: | + source ~/.ghcup/env + cabal build --enable-tests --enable-benchmarks - name: Run tests - run: cabal test + run: | + source ~/.ghcup/env + cabal test --test-show-details=direct + - name: Run documentation build + run: | + source ~/.ghcup/env + cabal haddock