# packcheck # 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 }} 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" # ------------------------------------------------------------------------ # 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" #RESOLVER: "lts-12" # ------------------------------------------------------------------------ # cabal options # ------------------------------------------------------------------------ CABAL_CHECK_RELAX: y CABAL_HACKAGE_MIRROR: "hackage.haskell.org:http://hackage.fpcomplete.com" # ------------------------------------------------------------------------ # 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.6.0" # ------------------------------------------------------------------------ # Final build variables # ------------------------------------------------------------------------ PACKCHECK_COMMAND: ${{ matrix.command }} ${{ matrix.pack_options }} runs-on: ${{ matrix.runner }} strategy: fail-fast: false matrix: include: - name: 8.4.4 ghc_version: 8.4.4 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 - name: 8.6.5 ghc_version: 8.6.5 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 - name: 8.8.4 ghc_version: 8.8.4 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 - name: 8.10.7 ghc_version: 8.10.7 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 - name: 8.10.7+no-charts ghc_version: 8.10.7 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 pack_options: >- CABAL_BUILD_OPTIONS="-f no-charts" DISABLE_TEST=y - name: 8.10.7+no-colors ghc_version: 8.10.7 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 pack_options: >- CABAL_BUILD_OPTIONS="-f no-colors" - name: 9.0.1 ghc_version: 9.0.1 runner: ubuntu-latest cabal_version: 3.2 command: cabal-v2 # - name: 9.2.1 # ghc_version: 9.2.1 # runner: ubuntu-latest # cabal_version: 3.6 # command: cabal-v2 # pack_options: >- # DISABLE_TEST=y # DISABLE_BENCH=y # - name: hlint # command: cabal-v2 # runner: ubuntu-latest # pack_options: >- # HLINT_OPTIONS="lint" # HLINT_TARGETS="app lib" steps: - uses: actions/checkout@v2 - uses: haskell/actions/setup@v1 with: ghc-version: ${{ matrix.ghc_version }} cabal-version: ${{ matrix.cabal_version }} - uses: actions/cache@v2 name: Cache common directories with: path: | ~/.cabal ~/.ghc ~/.local ~/.stack key: ${{ matrix.ghc_version }}-${{ matrix.runner }} - name: Run installer if: ${{ matrix.installer != '' }} run: ${{ matrix.installer }} - name: Setup stack if: ${{ matrix.command == 'stack' }} run: | # required for packcheck sudo apt-get install -y curl # required for outbound https for stack and for stack setup sudo apt-get install -y netbase xz-utils make # If a custom stack-yaml is specified, replace the default with that if test -e "$STACK_YAML"; then rm -f stack.yaml && ln -sv $STACK_YAML stack.yaml; else true; fi unset STACK_YAML - name: Download packcheck run: | # Get packcheck if needed CURL=$(which curl) PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh if test ! -e "$PACKCHECK"; then $CURL -sL -o "$PACKCHECK" $PACKCHECK_URL; fi; chmod +x $PACKCHECK - name: Run packcheck run: | bash -c "$PACKCHECK $PACKCHECK_COMMAND"