-
Notifications
You must be signed in to change notification settings - Fork 39
131 lines (107 loc) · 3.56 KB
/
ci.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: [push, pull_request]
jobs:
test_awfy:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- { name: Java, id: java, folder: Java }
- { name: SOM, id: som, folder: SOM }
- { name: Crystal, id: crystal, folder: Crystal }
- { name: JavaScript, id: js, folder: JavaScript }
- { name: SOMns, id: somns, folder: SOMns }
#- { name: Pharo, id: pharo, folder: Smalltalk }
- { name: Squeak 64-bit, id: squeak64, folder: Smalltalk }
- { name: Ruby, id: ruby, folder: Ruby }
- { name: Lua, id: lua, folder: Lua }
- { name: Python, id: python, folder: Python }
name: ${{ matrix.name }}
steps:
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Checkout AWFY Repository
uses: actions/checkout@v4
- name: Install ReBench
run: |
python -m pip install ReBench
- name: Install asdf and asdf-awfy
run: |
git clone --depth 1 https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
asdf plugin add awfy https://github.com/smarr/asdf-awfy.git
if: matrix.id == 'squeak64'
- name: Install Crystal
if: matrix.id == 'crystal'
uses: oprypin/install-crystal@v1
- name: Install JS
if: matrix.id == 'js'
run: |
(cd benchmarks/JavaScript; npm install .)
- name: Install Pharo
if: matrix.id == 'pharo'
uses: hpi-swa/setup-smalltalkCI@v1
with:
smalltalk-image: Pharo64-stable
- name: Install Squeak64
if: matrix.id == 'squeak64'
run: |
~/.asdf/bin/asdf install awfy squeak-6.0-22148
- name: Install Squeak32
if: matrix.id == 'squeak32'
uses: hpi-swa/setup-smalltalkCI@v1
with:
smalltalk-image: Squeak32-5.2
- name: Install Ruby
if: matrix.id == 'ruby'
run: |
sudo gem install rubocop
- name: Install Lua
uses: leafo/gh-actions-lua@v10
with:
luaVersion: 5.2
if: matrix.id == 'lua'
- name: Install LuaRocks
uses: leafo/gh-actions-luarocks@v4
if: matrix.id == 'lua'
- name: Install LuaCheck and lua5.2 symlink
run: |
luarocks install luacheck
(cd .lua/bin && ln -s lua lua5.2)
if: matrix.id == 'lua'
- name: Install Python
run: |
python -m pip install pylint
if: matrix.id == 'python'
- name: Install SOM
run: |
source benchmarks/script.inc
load_git_repo https://github.com/SOM-st/som-java.git SOM
pushd SOM
git submodule update --recursive --init
ant
popd
source benchmarks/script.inc
load_git_repo https://github.com/SOM-st/TruffleSOM.git TruffleSOM
pushd TruffleSOM
git submodule update --recursive --init
./som --setup mx
./som --setup labsjdk
../mx/mx build
if: matrix.id == 'som'
- name: Python Black Style Check
uses: psf/black@stable
with:
options: "--check --diff ."
src: "./benchmarks/Python"
if: matrix.id == 'python'
- name: Build
run: |
benchmarks/${{ matrix.folder }}/build.sh
- name: ReBench Test Run
run: |
rebench test.conf test-${{ matrix.id }}
- name: Style Check
run: |
benchmarks/${{ matrix.folder }}/build.sh style skip-black-for-python