oro*_*ome 5 haskell github-actions
最近,我被 Travis CI 吸引到我的 Julia 项目的 GitHub 操作,因为我发现的所有示例操作都易于配置且开箱即用,并认为我会在我的Haskell 项目中尝试相同的操作。但是我发现的所有示例 Haskell Actions都没有功能,大多数都因安全性或gcc编译器标志错误而失败,即使对于在 Travis CI 中工作的完全相同的命令也是如此。
是否有运行Haskell GitHub Actions 的示例?我怀疑我只是没有在正确的地方寻找最新的工作示例。
最终,经过大量的尝试和错误,我最终得到了大致如下,效果完美:
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
Run Code Online (Sandbox Code Playgroud)
(尽管我不确定构建步骤的顺序是否符合我的意图,并且对缓存应该去哪里有一些疑问。)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |