Skip to content
Snippets Groups Projects
Commit 81ebaf94 authored by Julian Ospald's avatar Julian Ospald :tea:
Browse files

Use ghcup-setup in CI

parent dcf19781
No related branches found
No related tags found
No related merge requests found
#!/bin/sh
if [ "${RUNNER_OS}" = "Windows" ] ; then
ext=".exe"
else
ext=''
fi
export DEBIAN_FRONTEND=noninteractive
export TZ=Asia/Singapore
export OS="$RUNNER_OS"
export PATH="$HOME/.local/bin:$PATH"
if [ "${RUNNER_OS}" = "Windows" ] ; then
# on windows use pwd to get unix style path
CI_PROJECT_DIR="$(pwd)"
export CI_PROJECT_DIR
export GHCUP_INSTALL_BASE_PREFIX="/c"
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/ghcup/bin"
export PATH="$GHCUP_BIN:$PATH"
export CABAL_DIR="C:\\Users\\runneradmin\\AppData\\Roaming\\cabal"
else
export CI_PROJECT_DIR="${GITHUB_WORKSPACE}"
export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR"
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin"
export PATH="$GHCUP_BIN:$PATH"
export CABAL_DIR="$CI_PROJECT_DIR/cabal"
export CABAL_CACHE="$CI_PROJECT_DIR/cabal-cache"
fi
......@@ -28,9 +28,14 @@ jobs:
ghc: '8.6'
steps:
- uses: actions/checkout@v4
- name: Install GHCup
uses: haskell/ghcup-setup@v1
- name: Setup toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_INSTALL_NO_STACK=1 BOOTSTRAP_HASKELL_GHC_VERSION=${{ matrix.ghc }} BOOTSTRAP_HASKELL_ADJUST_BASHRC=yes sh
ghcup install ghc --set ${{ matrix.ghc }}
ghcup install cabal --set latest
- if: runner.os == 'macOS'
name: Install system deps via brew
......@@ -46,7 +51,6 @@ jobs:
restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-
- name: Build
run: |
. ~/.ghcup/env
ghc --version
cabal --version
cabal update
......@@ -58,7 +62,6 @@ jobs:
cabal test all --test-show-details=direct
- name: Haddock
run: |
. ~/.ghcup/env
cabal haddock --disable-documentation
redhat-ubi9:
......@@ -66,14 +69,22 @@ jobs:
container:
image: redhat/ubi9:latest
steps:
- name: Install
- name: Install prerequisites
run: |
yum install -y gcc gmp gmp-devel make ncurses xz perl autoconf
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_GHC_VERSION=9.4.8 sh
- name: Install GHCup
uses: haskell/ghcup-setup@v1
- name: Setup toolchain
run: |
ghcup install ghc --set latest
ghcup install cabal --set latest
- uses: actions/checkout@v4
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
......@@ -85,14 +96,21 @@ jobs:
container:
image: fedora:37
steps:
- name: Install
- name: Install prerequisites
run: |
dnf install -y gcc gmp gmp-devel make ncurses ncurses-compat-libs xz perl autoconf
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
- name: Install GHCup
uses: haskell/ghcup-setup@v1
- name: Setup toolchain
run: |
ghcup install ghc --set latest
ghcup install cabal --set latest
- uses: actions/checkout@v4
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
......@@ -102,23 +120,14 @@ jobs:
i386:
runs-on: ubuntu-latest
container:
image: i386/ubuntu:bionic
steps:
- name: Install
run: |
apt-get update -y
apt-get install -y autoconf build-essential zlib1g-dev libgmp-dev curl
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_INSTALL_NO_STACK=1 sh
- uses: actions/checkout@v1
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
autoreconf -i
cabal v2-test --constraint 'optparse-applicative -process' --constraint 'QuickCheck +old-random' --constraint 'tasty -unix' all
- name: Checkout code
uses: actions/checkout@v4
- name: Run build (32 bit linux)
uses: docker://hasufell/i386-alpine-haskell:3.12
with:
args: sh -c "apk update && apk add --no-cache autoconf automake make && cabal update && autoreconf --version && autoreconf -i && cabal v2-test --constraint 'optparse-applicative -process' --constraint 'QuickCheck +old-random' --constraint 'tasty -unix' all"
arm:
runs-on: [self-hosted, Linux, ARM64]
......@@ -161,14 +170,25 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Install prerequisites
run: |
sudo pkg install -y curl gcc gmp gmake ncurses perl5 libffi libiconv git bash misc/compat10x misc/compat11x misc/compat12x gmake autoconf
- name: Install GHCup
uses: haskell/ghcup-setup@v1
- name: Setup toolchain
run: |
ghcup install ghc --set ${{ matrix.ghc }}
ghcup install cabal --set latest
- name: Run build
run: |
pkg install -y curl gcc gmp gmake ncurses perl5 libffi libiconv git bash misc/compat10x misc/compat11x misc/compat12x gmake autoconf
. .github/scripts/env.sh
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_INSTALL_NO_STACK=1 BOOTSTRAP_HASKELL_GHC_VERSION=${{ matrix.ghc }} BOOTSTRAP_HASKELL_ADJUST_BASHRC=yes sh
autoreconf --version
autoreconf -i
cabal update
cabal sdist -z -o .
cabal get unix-*.tar.gz
cd unix-*/
cabal test all --test-show-details=direct
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment