From 15487d2a4647dcf178c6c8662c648854b88cb159 Mon Sep 17 00:00:00 2001 From: William Rusnack Date: Sun, 30 Jun 2024 10:53:31 -0400 Subject: [PATCH] update emulated ci for new tasty packages --- .github/workflows/ci.yml | 210 +-------------------------------------- 1 file changed, 1 insertion(+), 209 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9a58cca0..ffa6f5ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,107 +12,6 @@ defaults: shell: bash jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: true - matrix: - os: [ubuntu-latest] - ghc: ['8.4', '8.6', '8.8', '8.10', '9.0', '9.2', '9.4', '9.6', '9.8', '9.10'] - include: - - os: macOS-latest - ghc: 'latest' - steps: - - uses: actions/checkout@v4 - - uses: haskell-actions/setup@v2 - id: setup-haskell-cabal - with: - ghc-version: ${{ matrix.ghc }} - - name: Update cabal package database - run: cabal update - - uses: actions/cache@v3 - name: Cache cabal stuff - with: - path: | - ${{ steps.setup-haskell-cabal.outputs.cabal-store }} - dist-newstyle - key: ${{ runner.os }}-${{ matrix.ghc }} - - name: Test - run: | - cabal sdist -z -o . - cabal get bytestring-*.tar.gz - cd bytestring-*/ - cabal build bytestring:tests --enable-tests --enable-benchmarks - cabal test --enable-tests --enable-benchmarks --test-show-details=direct all - - name: Bench - run: | - cd bytestring-*/ - cabal bench --enable-tests --enable-benchmarks --benchmark-option=-l all - - name: Haddock - run: | - cd bytestring-*/ - cabal haddock all - - name: Cabal check - run: | - cd bytestring-*/ - cabal check - - windows-build: - runs-on: windows-latest - needs: build - strategy: - fail-fast: true - matrix: - ghc: ['9.2', '9.4', '9.6', '9.8', '9.10'] - steps: - - uses: actions/checkout@v4 - - uses: haskell-actions/setup@v2 - id: setup-haskell-cabal - with: - ghc-version: ${{ matrix.ghc }} - - name: Update cabal package database - run: cabal update - - uses: actions/cache@v3 - name: Cache cabal stuff - with: - path: | - ${{ steps.setup-haskell-cabal.outputs.cabal-store }} - dist-newstyle - key: ${{ runner.os }}-${{ matrix.ghc }} - # We rebuild tests several times to avoid intermittent failures on Windows - # https://github.com/haskell/actions/issues/36 - # We also use --enable-tests and --enable-benchmarks to avoid - # test and bench commands from reconfiguring and thus rebuilding. - - name: Build Test - run: | - cabal sdist -z -o . - cabal get bytestring-*.tar.gz - cd bytestring-*/ - bld() { cabal build bytestring:tests --enable-tests --enable-benchmarks; } - bld || bld || bld - - - name: Run Test - # test broken linking on windows: https://github.com/haskell/bytestring/issues/497 - run: | - cd bytestring-*/ - $bin = cabal list-bin bytestring-tests - $env:PATH = '' - & "$bin" - shell: pwsh - - - name: Bench - run: | - cd bytestring-*/ - cabal bench --enable-tests --enable-benchmarks --benchmark-option=-l all - - name: Haddock - run: | - cd bytestring-*/ - cabal haddock all - - name: Cabal check - run: | - cd bytestring-*/ - cabal check - # Emulation is incredibly slow and memory demanding. It seems that any # executable with GHC RTS takes at least 7-8 Gb of RAM, so we can run # `cabal` or `ghc` on their own, but cannot run them both at the same time, @@ -135,117 +34,10 @@ jobs: githubToken: ${{ github.token }} install: | apt-get update -y - apt-get install -y curl ghc libghc-tasty-quickcheck-dev libghc-syb-dev + apt-get install -y curl ghc libghc-tasty-quickcheck-dev libghc-tasty-hunit-dev libghc-tasty-expected-failure-dev libghc-syb-dev run: | curl -s https://hackage.haskell.org/package/data-array-byte-0.1/data-array-byte-0.1.tar.gz | tar xz ghc --version ghc --make -XHaskell2010 -XBangPatterns -XDeriveDataTypeable -XDeriveGeneric -XDeriveLift -XFlexibleContexts -XFlexibleInstances -XLambdaCase -XMagicHash -XMultiWayIf -XNamedFieldPuns -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XUnboxedTuples -optP-Wall -optP-Werror=undef -DPURE_HASKELL=0 -Iinclude -itests:tests/builder:data-array-byte-0.1 -o Main cbits/*.c tests/Main.hs +RTS -s ./Main +RTS -s - bounds-checking: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: haskell-actions/setup@v2 - id: setup-haskell-cabal - with: - ghc-version: 'latest' - - name: Update cabal package database - run: cabal update - - uses: actions/cache@v3 - name: Cache cabal stuff - with: - path: | - ${{ steps.setup-haskell-cabal.outputs.cabal-store }} - dist-newstyle - key: ${{ runner.os }}-latest - - name: Test - run: cabal test --ghc-options='-fcheck-prim-bounds -fno-ignore-asserts -DHS_BYTESTRING_ASSERTIONS' - - pure-haskell: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: haskell-actions/setup@v2 - id: setup-haskell-cabal - with: - ghc-version: 'latest' - - name: Update cabal package database - run: cabal update - - uses: actions/cache@v3 - name: Cache cabal stuff - with: - path: | - ${{ steps.setup-haskell-cabal.outputs.cabal-store }} - dist-newstyle - key: ${{ runner.os }}-latest-pure-haskell - - name: Test - run: cabal test -fpure-haskell --ghc-options=-fno-ignore-asserts --enable-tests --test-show-details=direct all - - old-gcc: - needs: build - runs-on: ubuntu-latest - container: - image: centos:7 - steps: - - name: install deps - run: | - yum install -y gcc gmp gmp-devel make ncurses ncurses-compat-libs xz perl - curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_GHC_VERSION=9.2.8 sh - - uses: actions/checkout@v3 #This version must stay old enough to remain compatible with the container image - - name: test - run: | - source ~/.ghcup/env - cabal update - cabal run bytestring-tests - - i386: - needs: build - 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 libncurses5 libtinfo5 libncurses5-dev libtinfo-dev - 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 #This version must stay old enough to remain compatible with the container image - - name: Test - run: | - source ~/.ghcup/env - cabal update - cabal test - - # We use github.com/haskell self-hosted runners for ARM testing. - # If they become unavailable in future, put ['armv7', 'aarch64'] - # back to emulation jobs above. - arm: - needs: build - runs-on: [self-hosted, Linux, ARM64] - strategy: - fail-fast: true - matrix: - arch: [arm32v7, arm64v8] - steps: - - uses: docker://hasufell/arm64v8-ubuntu-haskell:focal - name: Cleanup - with: - args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" - - - name: Checkout code - uses: actions/checkout@v4 - - - if: matrix.arch == 'arm32v7' - uses: docker://hasufell/arm32v7-ubuntu-haskell:focal - name: Run build (arm32v7 linux) - with: - args: sh -c "cabal update && cabal test" - - - if: matrix.arch == 'arm64v8' - uses: docker://hasufell/arm64v8-ubuntu-haskell:focal - name: Run build (arm64v8 linux) - with: - args: sh -c "cabal update && cabal test"