-
Notifications
You must be signed in to change notification settings - Fork 5
139 lines (121 loc) · 4.04 KB
/
example.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
132
133
134
135
136
137
138
139
name: Example
on:
pull_request:
push:
branches: main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
working-directory: example
jobs:
test:
strategy:
matrix:
runner:
- ubuntu-latest
# - macOS-latest
# - windows-latest
stack:
# - resolver: nightly
- resolver: lts
# - resolver: lts-22.7
# ghc: "9.6.4"
# - resolver: lts-20.2
# ghc: "9.2.5"
# - resolver: lts-19.33
# ghc: "9.0.2"
# - resolver: lts-18.28
# ghc: "8.10.7"
# - resolver: lts-16.31
# ghc: "8.8.4"
# - resolver: lts-12.26
# ghc: "8.4.4"
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- id: stack
uses: ./
with:
working-directory: example
stack-arguments: --resolver ${{ matrix.stack.resolver }}
cache-prefix: ${{ matrix.stack.resolver }}/
- name: Check compiler[-*] outputs
if: matrix.stack.ghc
shell: bash
run: |
[[ "${{ steps.stack.outputs.compiler }}" = ghc-${{ matrix.stack.ghc }} ]]
[[ "${{ steps.stack.outputs.compiler-version }}" = ${{ matrix.stack.ghc }} ]]
- name: Check presence of other outputs
shell: bash
run: |
# stack path | cut -d: -f1
[[ -n "${{ steps.stack.outputs.snapshot-doc-root }}" ]]
[[ -n "${{ steps.stack.outputs.local-doc-root }}" ]]
[[ -n "${{ steps.stack.outputs.local-hoogle-root }}" ]]
[[ -n "${{ steps.stack.outputs.stack-root }}" ]]
[[ -n "${{ steps.stack.outputs.project-root }}" ]]
[[ -n "${{ steps.stack.outputs.config-location }}" ]]
[[ -n "${{ steps.stack.outputs.bin-path }}" ]]
[[ -n "${{ steps.stack.outputs.programs }}" ]]
[[ -n "${{ steps.stack.outputs.compiler-exe }}" ]]
[[ -n "${{ steps.stack.outputs.compiler-bin }}" ]]
[[ -n "${{ steps.stack.outputs.compiler-tools-bin }}" ]]
[[ -n "${{ steps.stack.outputs.local-bin }}" ]]
# Actually blank in default setup
# [[ -n "${{ steps.stack.outputs.extra-include-dirs }}" ]]
# [[ -n "${{ steps.stack.outputs.extra-library-dirs }}" ]]
[[ -n "${{ steps.stack.outputs.snapshot-pkg-db }}" ]]
[[ -n "${{ steps.stack.outputs.local-pkg-db }}" ]]
[[ -n "${{ steps.stack.outputs.global-pkg-db }}" ]]
[[ -n "${{ steps.stack.outputs.ghc-package-path }}" ]]
[[ -n "${{ steps.stack.outputs.snapshot-install-root }}" ]]
[[ -n "${{ steps.stack.outputs.local-install-root }}" ]]
[[ -n "${{ steps.stack.outputs.dist-dir }}" ]]
[[ -n "${{ steps.stack.outputs.local-hpc-root }}" ]]
test-generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: generate
uses: ./generate-matrix
with:
working-directory: example
outputs:
stack-yamls: ${{ steps.generate.outputs.stack-yamls }}
test-stack-yamls:
needs: test-generate
runs-on: ubuntu-latest
strategy:
matrix:
stack-yaml: ${{ fromJSON(needs.test-generate.outputs.stack-yamls) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./
with:
working-directory: example
stack-yaml: ${{ matrix.stack-yaml }}
test-auto-nightly:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: stack
uses: ./
with:
working-directory: example
stack-yaml: stack-nightly.yaml
cache-prefix: auto-nightly/
test-auto-nightly-with-explicit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: stack
uses: ./
with:
working-directory: example
stack-yaml: stack-nightly.yaml
stack-arguments: --resolver nightly
cache-prefix: auto-nightly-explicit/