最近,由于配置简单且所有示例操作都成功了,我将我的Julia项目从Travis CI转移到了GitHub actions,并决定尝试使用相同的方法来处理我的Haskell项目。但是我发现没有一个Haskell操作示例能正常运行,其中大多数失败于安全性或gcc
编译器标志错误,即使对于在Travis CI中有效的完全相同的命令。
是否有可用的Haskell GitHub Actions示例?我怀疑我只是没有找到最新的可工作示例。
最近,由于配置简单且所有示例操作都成功了,我将我的Julia项目从Travis CI转移到了GitHub actions,并决定尝试使用相同的方法来处理我的Haskell项目。但是我发现没有一个Haskell操作示例能正常运行,其中大多数失败于安全性或gcc
编译器标志错误,即使对于在Travis CI中有效的完全相同的命令。
是否有可用的Haskell GitHub Actions示例?我怀疑我只是没有找到最新的可工作示例。
经过反复试验,我最终得到了大致如下的解决方案:test.yml,它非常完美地运行:
name: Tests
on:
pull_request:
push:
branches: [hackage, develop]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
ghc: ['8.8.3', '8.10.5']
cabal: ['2.4.1.0', '3.0.0.0']
os: [ubuntu-latest]
resolver: [lts-3.22 , lts-17, lts-18, lts]
exclude:
# GHC 8.8+ only works with cabal v3+
- ghc: 8.8.3
cabal: 2.4.1.0
name: ${{ matrix.resolver }} (${{ matrix.ghc }}/${{ matrix.cabal }})
steps:
- name: Check out
uses: actions/checkout@v2
- name: Setup Haskell
uses: haskell/actions/setup@v1
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
enable-stack: true
- name: Versions
run: |
stack --version
cabal --version
ghc --version
- name: Initalize stack for LTS
run: |
stack update
stack init --resolver ${{ matrix.resolver }} --force
- name: Build package dependencies
run: |
stack --resolver ${{ matrix.resolver }} build --no-run-tests --no-run-benchmarks --only-dependencies
- name: Build package
run: |
stack --resolver ${{ matrix.resolver }} build --no-run-tests --no-run-benchmarks
- name: Build testing dependencies
run: |
stack --resolver ${{ matrix.resolver }} build --no-run-tests --no-run-benchmarks --test --bench
- name: Run tests
run: |
stack --resolver ${{ matrix.resolver }} build --test --no-run-benchmarks
- name: Package list
run: |
stack --resolver ${{ matrix.resolver }} exec ghc-pkg list || true