-
Notifications
You must be signed in to change notification settings - Fork 7
180 lines (161 loc) · 5.41 KB
/
ci-lib.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
name: Build
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
########################################################################
## CONFIGURATION
########################################################################
env:
IDRIS2_COMMIT: v0.6.0
SCHEME: scheme
ELAB_COMMIT: 87f9d910f4669b38d9d2cd67b5a63922dffb1ab1
SOP_COMMIT: 87a30cf81117f387824f945374081ffa2effa8a0
jobs:
ubuntu-chez:
runs-on: ubuntu-latest
env:
PACK_DIR: /root/.pack
strategy:
fail-fast: false
container: ghcr.io/stefan-hoeck/idris2-pack:latest
steps:
- name: Checkout idris2-tls
uses: actions/checkout@v2
- name: Install idris2-sop
run: pack install sop
- name: Build package
run: make install
- name: Test package
run: make test
windows-chez:
runs-on: windows-latest
env:
MSYSTEM: MINGW64
MSYS2_PATH_TYPE: inherit
SCHEME: scheme
CC: gcc
steps:
- name: Init
run: |
git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v2
# This caching step allows us to save a lot of building time by only
# rebuilding Idris2 from boostrap if absolutely necessary
- name: Cache Idris2
uses: actions/cache@v2
id: cache-idris2
with:
path: |
ChezScheme
.idris2
key: ${{ runner.os }}-${{ env.IDRIS2_COMMIT }}
- name: Get Chez Scheme
if: steps.cache-idris2.outputs.cache-hit != 'true'
run: |
git clone --depth 1 https://github.com/cisco/ChezScheme
c:\msys64\usr\bin\bash -l -c "pacman -S --noconfirm tar make mingw-w64-x86_64-gcc"
echo "PWD=$(c:\msys64\usr\bin\cygpath -u $(pwd))" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Configure and Build Chez Scheme
if: steps.cache-idris2.outputs.cache-hit != 'true'
run: |
c:\msys64\usr\bin\bash -l -c "cd $env:PWD && cd ChezScheme && ./configure --threads && make"
- name: Set Path
run: |
$chez="$(pwd)\ChezScheme\ta6nt\bin\ta6nt"
$idris="$(pwd)\.idris2"
echo "$chez" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "$idris\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "IDRIS_PREFIX=$idris" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "PREFIX=$(c:\msys64\usr\bin\cygpath -u $idris)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Test Scheme
run: |
scheme --version
- name: Install Idris2
if: steps.cache-idris2.outputs.cache-hit != 'true'
run: |
git clone https://github.com/idris-lang/idris2
cd idris2
git checkout ${{ env.IDRIS2_COMMIT }}
c:\msys64\usr\bin\bash -l -c "cd $env:PWD && cd idris2 && make bootstrap && make install"
- name: Install idris2-elab-util
run: |
git clone https://github.com/stefan-hoeck/idris2-elab-util
cd idris2-elab-util
git checkout ${{ env.ELAB_COMMIT }}
make install
- name: Install idris2-sop
run: |
git clone https://github.com/stefan-hoeck/idris2-sop
cd idris2-sop
git checkout ${{ env.SOP_COMMIT }}
idris2 --install sop.ipkg
- name: Checkout idris2-tls
uses: actions/checkout@v2
with:
path: tls
- name: Build package
run: |
cd tls
echo "TLS=$(c:\msys64\usr\bin\cygpath -u $(pwd))" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
make install
- name: Test package
run: c:\msys64\usr\bin\bash -l -c "cd $env:TLS && make test"
macos-chez:
runs-on: macos-latest
env:
SCHEME: chez
steps:
# This caching step allows us to save a lot of building time by only
# rebuilding Idris2 from boostrap if absolutely necessary
- name: Cache Idris2
uses: actions/cache@v2
id: cache-idris2
with:
path: |
~/.idris2
key: ${{ runner.os }}-${{ env.IDRIS2_COMMIT }}
- name: Install Idris2 build dependencies
run: |
brew install chezscheme
brew install coreutils
echo "$HOME/.idris2/bin" >> "$GITHUB_PATH"
- name: Build Idris 2 from bootstrap
if: steps.cache-idris2.outputs.cache-hit != 'true'
run: |
git clone https://github.com/idris-lang/idris2
cd idris2
git checkout ${{ env.IDRIS2_COMMIT }}
chmod -R a-w bootstrap
make bootstrap && make install
shell: bash
- name: Install idris2-elab-util
run: |
git clone https://github.com/stefan-hoeck/idris2-elab-util
cd idris2-elab-util
git checkout ${{ env.ELAB_COMMIT }}
make install
shell: bash
- name: Install idris2-sop
run: |
git clone https://github.com/stefan-hoeck/idris2-sop
cd idris2-sop
git checkout ${{ env.SOP_COMMIT }}
idris2 --install sop.ipkg
shell: bash
- name: Checkout idris2-tls
uses: actions/checkout@v2
with:
path: tls
- name: Build package
run: |
cd tls
make install
- name: Test package
run: |
cd tls
make test