Skip to content

Update streamly 0.11 #65

Update streamly 0.11

Update streamly 0.11 #65

Workflow file for this run

# packcheck-0.7.1
name: packcheck
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
jobs:
build:
name: >-
${{ matrix.runner }}
${{ matrix.command }}
${{ matrix.ghc_version }}
${{ matrix.name }}
env:
CABAL_REINIT_CONFIG: y
LC_ALL: C.UTF-8
GHCUP_VERSION: 0.1.50.2
GHCVER: ${{ matrix.ghc_version }}
PACKCHECK: "./packcheck.sh"
PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/composewell/packcheck"
PACKCHECK_GITHUB_COMMIT: "3d3c94bf48f18a99271d509c1f1702d15824b1f0"
PACKCHECK_COMMAND: ${{ matrix.command }} ${{ matrix.pack_options }}
SUBDIR: ${{ matrix.subdir }}
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- name: ci
runner: ubuntu-latest
command: cabal
ghc_version: 9.14.1
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
- name: bench-runner
runner: ubuntu-latest
command: cabal
ghc_version: 9.12.1
subdir: bench-runner
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_CHECK_RELAX=y
- name: ci
runner: ubuntu-latest
command: cabal
ghc_version: 9.12.1
# Removed "-f pipes" as the build was failing with heap overflow
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f machines -f streaming"
- name: Werror
runner: ubuntu-latest
command: cabal
ghc_version: 9.10.3
pack_options: >-
CABAL_PROJECT=cabal.project.Werror
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
- name: ci
runner: ubuntu-latest
command: cabal
ghc_version: 9.8.1
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
- name: ci
runner: macos-latest
command: cabal
ghc_version: 9.6.3
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
- name: no-fusion-plugin
runner: ubuntu-latest
command: cabal
ghc_version: 9.4.4
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming -f no-fusion-plugin"
- name: ci
runner: ubuntu-latest
command: cabal
ghc_version: 9.2.8
pack_options: >-
CABAL_PROJECT=cabal.project.user
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
# --- Legacy GHC Series (Docs Disabled) ---
- name: ci
runner: ubuntu-latest
command: cabal
ghc_version: 8.10.7
pack_options: >-
CABAL_PROJECT=cabal.project.user
DISABLE_DOCS=y
CABAL_BUILD_OPTIONS="-f drinkery -f conduit -f pipes -f machines -f streaming"
# --- Tooling Jobs ---
- name: ci
runner: ubuntu-latest
command: hlint
pack_options: >-
HLINT_VERSION=3.6.1
HLINT_OPTIONS="lint"
HLINT_TARGETS="lib Benchmarks"
#-----------------------------------------------------------------------------
# Usually you do need to change anything below, this is generic code for
# caching and running packcheck on Linux/Mac/Windows.
#-----------------------------------------------------------------------------
steps:
- uses: actions/checkout@v4
# This should happen before cache restore.
- name: Remove ~/.ghcup symlink (non-Windows)
if: runner.os != 'Windows'
run: |
rm -f ~/.ghcup
- name: Cache hackage package index (non-Windows)
uses: actions/cache@v4
if: runner.os != 'Windows'
with:
path: |
~/.cache/cabal/packages
# Bump the key version to clear the cache
key: cache-cabal-packages
# See the "cabal path" output in the CI logs to tweak the cache locations
# ghc is big but cheap to install, if cache size is a concern we can avoid
# caching it.
- name: Cache ghcup and ghc (non-Windows)
uses: actions/cache@v4
if: runner.os != 'Windows'
with:
path: |
~/.ghcup
key: ${{ matrix.runner }}-${{ matrix.ghc_version }}.${{ matrix.ghc_salt}}
# XXX If we want to invalidate the cache on resolver change we
# should use a separate cache for stack as it should be keyed on
# resolver as well. But that requires resolver as a matrix element
# and then copied to pack_options from there, needs some work. It
# should be fine as resolver minor version change can only increase
# the cache size.
- name: Cache build dependencies (non-Windows)
uses: actions/cache@v4
if: runner.os != 'Windows'
with:
# cabal: ~/.local/bin, ~/.local/state/cabal
# ~/.cache/cabal/packages can be cached, but will increase the
# cache size. But can save the "cabal update" time.
path: |
~/.local/bin
~/.local/state/cabal
~/.stack
# Bump the key version to clear the cache
key: ${{ matrix.runner }}-${{ matrix.command }}-${{ matrix.ghc_version }}-${{ matrix.name }}-v1
- name: Cache common directories (Windows)
uses: actions/cache@v4
if: runner.os == 'Windows'
with:
path: |
${{ env.APPDATA }}/local
C:/ghcup
C:/cabal
key: ${{ matrix.runner }}-${{ matrix.command }}-${{ matrix.ghc_version }}-${{ matrix.name }}-v1
- name: Download packcheck
# on windows-latest GitHub Actions defaults to PowerShell
shell: bash
run: |
if test ! -e "$PACKCHECK"
then
if test -z "$PACKCHECK_GITHUB_COMMIT"
then
die "PACKCHECK_GITHUB_COMMIT env var is not specified."
fi
PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh
curl --fail -sL -o "$PACKCHECK" $PACKCHECK_URL || exit 1
chmod +x $PACKCHECK
elif test ! -x "$PACKCHECK"
then
chmod +x $PACKCHECK
fi
- name: Run packcheck
# on windows-latest GitHub Actions defaults to PowerShell
shell: bash
run: |
if test -n "$SUBDIR"
then
mv "$PACKCHECK" "$SUBDIR/packcheck.sh"
# This is required otherwise dist-newstyle will be created in
# the top level directory as it is considered the working dir.
rm -f cabal.project
cd "$SUBDIR"
fi
# Commands like mount, sysctl for info require sbin
PATH_VAR=/bin:/usr/bin:/sbin:/usr/sbin
case "$(uname)" in
Linux)
# On Linux it defaults to /usr/local, during cache restore
# tar is unable to change permissions and restore fails.
export GHCUP_INSTALL_BASE_PREFIX=$HOME
;;
CYGWIN*|MINGW*|MSYS*)
PATH_VAR="$PATH_VAR:/c/Program Files/7-Zip:/mingw64/bin"
;;
esac
# Use "bash -c" instead of invoking directly to preserve quoted
# arguments in PACKCHECK_COMMAND e.g. DOCSPEC_OPTIONS="--timeout 60".
# Direct invocation would word-split on spaces inside quoted values.
echo "$PACKCHECK $PACKCHECK_COMMAND PATH=\"$PATH_VAR\""
bash -c "$PACKCHECK $PACKCHECK_COMMAND PATH=\"$PATH_VAR\""
- name: Check cache locations
if: runner.os != 'Windows'
run: |
# We want to see if it is a symlink; e.g. on github ~/.ghcup is a
# pre-existing symlink to /usr/local.
list="$HOME/.local/bin $HOME/.local/state/cabal $HOME/.ghcup $HOME/.stack"
for dir in $list; do
# macOS does not have --no-dereference option
if [ -L "$dir" ]; then
echo "$dir is a symlink -> $(readlink $dir)"
else
du -sh "$dir" 2>/dev/null || echo "$dir missing"
fi
done
echo
#ls -ld $list 2>/dev/null || true
ls -al $list 2>/dev/null || true