Make the ensure_cabal similar to ensure_ghc #158
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# packcheck-0.7.0 | |
# You can use any of the options supported by packcheck as environment | |
# variables here. See https://github.com/composewell/packcheck for all | |
# options and their explanation. | |
name: packcheck | |
#----------------------------------------------------------------------------- | |
# Events on which the build should be triggered | |
#----------------------------------------------------------------------------- | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
#----------------------------------------------------------------------------- | |
# Build matrix | |
#----------------------------------------------------------------------------- | |
jobs: | |
build: | |
name: >- | |
${{ matrix.name }} | |
${{ matrix.command }} | |
${{ matrix.runner }} | |
${{ matrix.ghc_version }} | |
env: | |
# ------------------------------------------------------------------------ | |
# Common options | |
# ------------------------------------------------------------------------ | |
# GHC_OPTIONS: "-Werror" | |
CABAL_REINIT_CONFIG: y | |
LC_ALL: C.UTF-8 | |
# ------------------------------------------------------------------------ | |
# What to build | |
# ------------------------------------------------------------------------ | |
# DISABLE_TEST: "y" | |
# DISABLE_BENCH: "y" | |
# DISABLE_DOCS: "y" | |
# DISABLE_SDIST_BUILD: "y" | |
# DISABLE_SDIST_GIT_CHECK: "y" | |
# DISABLE_DIST_CHECKS: "y" | |
# ------------------------------------------------------------------------ | |
# Selecting tool versions | |
# ------------------------------------------------------------------------ | |
# For updating see: https://downloads.haskell.org/~ghcup/ | |
GHCUP_VERSION: 0.1.20.0 | |
GHCVER: ${{ matrix.ghc_version }} | |
GHCUP_GHC_OPTIONS: ${{ matrix.ghcup_ghc_options }} | |
# RESOLVER: ${{ matrix.stack_resolver }} | |
# ------------------------------------------------------------------------ | |
# stack options | |
# ------------------------------------------------------------------------ | |
# Note requiring a specific version of stack using STACKVER may fail due to | |
# github API limit while checking and upgrading/downgrading to the specific | |
# version. | |
#STACKVER: "1.6.5" | |
#STACK_UPGRADE: "y" | |
STACK_YAML: "stack.yaml" | |
# ------------------------------------------------------------------------ | |
# cabal options | |
# ------------------------------------------------------------------------ | |
CABAL_CHECK_RELAX: y | |
CABAL_HACKAGE_MIRROR: "hackage.haskell.org:http://hackage.fpcomplete.com" | |
CABAL_PROJECT: ${{ matrix.cabal_project }} | |
# ------------------------------------------------------------------------ | |
# Where to find the required tools | |
# ------------------------------------------------------------------------ | |
PATH: /opt/ghc/bin:/sbin:/usr/sbin:/bin:/usr/bin | |
#TOOLS_DIR: /opt | |
# ------------------------------------------------------------------------ | |
# Location of packcheck.sh (the shell script invoked to perform CI tests ). | |
# ------------------------------------------------------------------------ | |
# You can either commit the packcheck.sh script at this path in your repo or | |
# you can use it by specifying the PACKCHECK_REPO_URL option below in which | |
# case it will be automatically copied from the packcheck repo to this path | |
# during CI tests. In any case it is finally invoked from this path. | |
PACKCHECK: "./packcheck.sh" | |
# If you have not committed packcheck.sh in your repo at PACKCHECK | |
# then it is automatically pulled from this URL. | |
PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/composewell/packcheck" | |
PACKCHECK_GITHUB_COMMIT: "v0.7.0" | |
# ------------------------------------------------------------------------ | |
# Final build variables | |
# ------------------------------------------------------------------------ | |
PACKCHECK_COMMAND: ${{ matrix.command }} ${{ matrix.pack_options }} | |
# ubuntu seems to have better support than debian on CI systems | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# The name of the CI is built using the name and other info from CI, | |
# therefore, the "name" field is same for all tests here. | |
# | |
# The reason we have an explicit "name" field here is to force | |
# an additional config instead of adding to an existing config | |
# while adding additional configs. | |
# Look at <https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix> | |
# for more info about adding matrix elements. | |
# Adding any element to the list will increase the number of matrix | |
# elements proportional to the cross product. | |
include: | |
- name: ci | |
command: cabal | |
runner: ubuntu-latest | |
ghc_version: head | |
cabal_project: cabal.project.ghc-head | |
ghcup_ghc_options: -u https://gitlab.haskell.org/ghc/ghc/-/jobs/artifacts/master/raw/ghc-x86_64-linux-deb10-int_native-validate.tar.xz?job=x86_64-linux-deb10-int_native-validate | |
- name: ci | |
command: cabal | |
runner: ubuntu-latest | |
ghc_version: 9.8.1 | |
cabal_project: cabal.project | |
- name: ci | |
command: stack | |
runner: ubuntu-latest | |
cabal_project: cabal.project | |
- name: ci | |
ghc_version: 9.8.1 | |
command: cabal | |
runner: macos-latest | |
cabal_project: cabal.project | |
- name: ci | |
command: hlint | |
runner: ubuntu-latest | |
pack_options: >- | |
HLINT_VERSION=3.6.1 | |
HLINT_OPTIONS="lint" | |
HLINT_TARGETS="src" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v2 | |
name: Cache common directories | |
with: | |
path: | | |
~/.local | |
~/.cabal | |
~/.stack | |
~/.ghcup | |
key: ${{ matrix.command }}-${{ matrix.ghc_version }}-${{ matrix.runner }} | |
- name: Download packcheck | |
run: | | |
if test ! -e "$PACKCHECK" | |
then | |
if test -z "$PACKCHECK_GITHUB_COMMIT" | |
then | |
die "PACKCHECK_GITHUB_COMMIT 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 | |
run: | | |
bash -c "$PACKCHECK $PACKCHECK_COMMAND" |