Skip to content

add pascal

add pascal #100

Workflow file for this run

name: Do the thing in CI
on:
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build:
- assembly
- bun
- c-gcc
- c-clang
- cpp-gcc
- cpp-clang
- cobol
- coffeescript
- crystal
- deno
- erlang
- fortran
- go
- haskell
- java
- julia
- kotlin
- nim
- node
- pascal
- perl
- php
- prolog
- python3
- ruby
- rust
- scala
- smalltalk
# - tcl
- zig
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
~/.cargo/.crates.toml
~/.cargo/.crates2.json
target/
key: ${{ runner.os }}-cargo
- uses: actions/cache@v3
with:
path: scripts/node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package-lock.json') }}
# install dependencies
- uses: extractions/setup-just@v1
- uses: oven-sh/setup-bun@v1
- uses: denoland/setup-deno@v1
with:
deno-version: "~1"
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
cargo \
clang \
coffeescript \
curl \
erlang \
fp-compiler \
gfortran \
gnu-smalltalk \
gnucobol4 \
haskell-platform \
jq kotlin \
moreutils \
nasm \
nodejs \
php \
rustc \
scala \
swi-prolog \
tar \
tcl \
wget \
xz-utils
cargo install timers
cargo install hyperfine
cargo install ripgrep --features 'pcre2'
cargo install juliaup
juliaup add release
wget -qO choosenim.sh https://nim-lang.org/choosenim/init.sh
bash ./choosenim.sh -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
export PATH="$HOME/.nimble/bin:$PATH"
curl -fsSL https://crystal-lang.org/install.sh | sudo bash
mkdir -p /opt/zig && cd $_
wget --quiet -O zig.tar.xz $(curl --silent https://ziglang.org/download/index.json | jq -r '.[keys_unsorted[1]]["x86_64-linux"].tarball')
tar -xvf zig.tar.xz --strip-components=1 2>&1 >/dev/null
echo "/opt/zig" >> $GITHUB_PATH
export PATH="/opt/zig:$PATH"
cd -
# do the thing
- run: just measure ${{ matrix.build }}
# report
- uses: actions/upload-artifact@v3
with:
path: "${{ matrix.build }}.json"
report:
needs: ["run"]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download Results
uses: actions/download-artifact@v3
with:
path: .
- run: sudo apt-get install nodejs
- name: Generate Summary
run: |
cd scripts
npm install
node ./summary.js --results ../artifact > summary.txt
cat summary.txt
- uses: actions/upload-artifact@v3
with:
path: scripts/summary.txt