-
Notifications
You must be signed in to change notification settings - Fork 36
136 lines (112 loc) · 3.96 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
132
133
134
135
136
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, id: squeak, 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/bin/asdf plugin add awfy https://github.com/smarr/asdf-awfy.git
if: matrix.id == 'squeak'
- 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 Squeak
if: matrix.id == 'squeak'
run: |
~/.asdf/bin/asdf install awfy squeak-6.0-22148
cp ~/.asdf/installs/awfy/squeak-6.0-22148/shared/SqueakV60.sources benchmarks/Smalltalk/
cp ~/.asdf/installs/awfy/squeak-6.0-22148/shared/Squeak*.image benchmarks/Smalltalk/Squeak.image
cp ~/.asdf/installs/awfy/squeak-6.0-22148/shared/Squeak*.changes benchmarks/Smalltalk/Squeak.changes
- 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
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: Install SOMns
run: |
source benchmarks/script.inc
load_git_repo https://github.com/smarr/SOMns.git SOMns
pushd SOMns
git submodule update --recursive --init
ant compile
if: matrix.id == 'somns'
- 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 ${{ matrix.id }}
- 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