Skip to content

[C++] Edit guidelines #431

[C++] Edit guidelines

[C++] Edit guidelines #431

Workflow file for this run

name: Tests
on: [push, pull_request]
jobs:
test_awfy:
runs-on: ${{ matrix.ubuntu == '' && 'ubuntu-22.04' || matrix.ubuntu }}
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, ubuntu: ubuntu-20.04 }
- { 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: C++, id: cpp, folder: C++ }
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' || matrix.id == 'pharo'
- name: Install Clang 17
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main"
sudo apt-get update
sudo apt-get install -y clang-17 clang-format-17 clang-tidy-17
if: matrix.id == 'cpp'
- 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'
run: |
~/.asdf/bin/asdf install awfy pharo-120
cp ~/.asdf/installs/awfy/pharo-120/Pharo*.sources benchmarks/Smalltalk/
cp ~/.asdf/installs/awfy/pharo-120/Pharo*.image benchmarks/Smalltalk/Pharo.image
cp ~/.asdf/installs/awfy/pharo-120/Pharo*.changes benchmarks/Smalltalk/Pharo.changes
- 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