replace the use of scale #81
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Benchmarks | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
tags: '*' | |
workflow_dispatch: | |
concurrency: | |
# Skip intermediate builds: all builds except for builds on the `master` or `release-*` branches | |
# Cancel intermediate builds: only pull request builds | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-') || github.run_number }} | |
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
permissions: | |
contents: read | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
java-version: ['17'] | |
julia-version: ['1.9.3'] | |
python-version: ['3.10'] | |
numpy-version: ['1.23.2'] | |
gfortran-version: ['9'] # Note: unused since is built-in. | |
rust-version: ['1.42.0'] # Note: unused since controlled by `rust/rust-toolchain` | |
js-version: ['18'] | |
r-version: ['4.2.1'] | |
lua-version: ['latest'] # Note: unused since lua distribution manually downloaded | |
go-version: ['1.19'] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
- name: "Cache Julia" | |
id: cache-julia | |
uses: actions/cache@v2 | |
with: | |
path: ~/julia | |
key: ${{ runner.os }}-v${{ matrix.julia-version }} | |
- name: "Build Julia" | |
if: steps.cache-julia.outputs.cache-hit != 'true' | |
uses: julia-actions/build-julia@v1 | |
with: | |
ref: v${{ matrix.julia-version }} | |
- name: "Set up dSFMT" | |
run: | | |
cd ~/ | |
mkdir -p dSFMT | |
cd dSFMT | |
wget https://github.com/MersenneTwister-Lab/dSFMT/archive/refs/tags/v2.2.4.tar.gz | |
echo "39682961ecfba621a98dbb6610b6ae2b7d6add450d4f08d8d4edd0e10abd8174 v2.2.4.tar.gz" | sha256sum --check --status | |
tar -xzf v2.2.4.tar.gz | |
mv dSFMT-*/* ./ | |
- name: "Set up OpenBLAS" | |
run: | | |
sudo apt-get install -y libopenblas-dev | |
- name: "Set up Python" | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: "Set up NumPy" | |
run: pip install numpy==${{ matrix.numpy-version }} | |
- name: "Set up Rust" | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust-version }} | |
- name: "Set up Java" | |
uses: actions/setup-java@v2 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
cache: 'maven' | |
- name: "Set up JavaScript" | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.js-version }} | |
- name: "Set up R" | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.r-version }} | |
- name: "Set up LuaJit" | |
run: | | |
cd ~/work/Microbenchmarks/Microbenchmarks/lua | |
./lua-install.sh | |
- name: "Set up Go" | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: "Run benchmark" | |
run: | | |
JULIAHOME=~/julia DSFMTDIR=~/dSFMT/ make gh_action_benchmarks.html | |
- name: "Print benchmark data" | |
run: cat gh_action_benchmarks.csv |