-
Notifications
You must be signed in to change notification settings - Fork 67
executable file
·131 lines (128 loc) · 3.84 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Tests
on:
pull_request:
push:
branches:
- master
jobs:
tests:
name: tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- macos-latest
#- macos-13
#- ubuntu-latest
#- windows-latest
resolver:
#- 22.28
#- 21.25
#- 20.26
#- 19.33
- 18.28
steps:
- name: Install LLVM 13
if: ${{ matrix.os == 'macos-latest' && matrix.resolver < 20 }}
run: |
brew install llvm@13
echo "/opt/homebrew/opt/llvm@13/bin" >> "${GITHUB_PATH}"
echo extraLibDirs="--extra-lib-dirs /opt/homebrew/opt/llvm@13/lib" >> "${GITHUB_ENV}"
echo extraIncludeDirsLLVM="--extra-include-dirs /opt/homebrew/opt/llvm@13/include" >> "${GITHUB_ENV}"
echo extraIncludeDirsFFI="--extra-include-dirs /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi" >> ${GITHUB_ENV}
- name: Setup Haskell
if: ${{ contains( matrix.os , 'macos' ) }}
uses: haskell-actions/[email protected]
with:
enable-stack: true
stack-version: 'latest'
stack-no-global: true
cabal-update: false
- name: Clone project
uses: actions/checkout@v4
- name: Use Cache
uses: actions/cache@v4
with:
key: ${{ matrix.os }}_${{ matrix.resolver }}
path: |
~/.stack
~/.stack/config.yaml
~/.stack/global-project/
~/.stack/pantry/
~/.stack/setup-exe-cache/
~/.stack/setup-exe-src/
~/.stack/snapshots/*/*/*/lib/
~/.stack/snapshots/*/*/*/pkgdb/
~/.stack/stack.sqlite3
~/.stack/stack.sqlite3.pantry-write-lock
./.stack-work
./*/.stack-work
!${{ env
- name: Build and run tests
shell: bash
run: |
set -ex
stack --version
stack test $extraLibDirs $extraIncludeDirsLLVM $extraIncludeDirsFFI --fast --no-terminal --resolver=lts-${{ matrix.resolver }}
# macos-13:
# name: macos-13
# runs-on: macos-13
# concurrency: strategy
# strategy:
# fail-fast: true
# oldest: lts-16
#
# stack:
# name: Stack
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os:
# #- ubuntu-latest
# - macos-13
# - macos-latest
# #- windows-latest
# resolver:
# - lts-18.16 # Win32 issue
# - lts-16
# stack-yaml:
# - stack.yaml
# - stack-new-time.yaml
# exclude:
# - resolver: lts-16
# stack-yaml: stack-new-time.yaml
# - os: windows-latest
# stack-yaml: stack-new-time.yaml
# - os: macos-latest
# resolver: lts-16
#
# steps:
# - name: Clone project
# uses: actions/checkout@v2
# - name: Install LLVM 12
# shell: bash
# run: |
# set -ex
# echo "$(brew --prefix)"
# brew install llvm@12
# ls -F "$(brew --prefix)"
# ls -F "$(brew --prefix)/opt"
# ls -F "$(brew --prefix)/opt/llvm@12"
# echo "/opt/homebrew/opt/llvm@12/bin" >> "${GITHUB_PATH}"
# echo LDFLAGS="-L/opt/homebrew/opt/llvm@12/lib" >> "${GITHUB_ENV}"
# echo CPPFLAGS="-I/opt/homebrew/opt/llvm@12/include" >> "${GITHUB_ENV}"
# - name: Setup Haskell
# uses: haskell-actions/[email protected]
# with:
# enable-stack: true
# stack-version: 'latest'
# stack-no-global: true
# cabal-update: false
# - name: Build and run tests
# shell: bash
# run: |
# set -ex
# echo $PATH
# stack --version
# stack test --fast --no-terminal --stack-yaml=${{ matrix.stack-yaml }} --resolver=${{ matrix.resolver }}