Skip to content

Restructuring Benchmarks #16

Restructuring Benchmarks

Restructuring Benchmarks #16

Workflow file for this run

name: benchmarks
on:
push:
tags:
- v*
branches:
- actions
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
cassandra:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
services:
cassandra-primary:
image: madflojo/cassandra:latest
env:
CASSANDRA_KEYSPACE: hord
ports:
- 7000
- 7001
- 7199
- 9042
- 9160
cassandra:
image: madflojo/cassandra:latest
env:
CASSANDRA_SEEDS: cassandra-primary
CASSANDRA_KEYSPACE: hord
SLEEP_TIMER: 15
ports:
- 7000
- 7001
- 7199
- 9042
- 9160
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
sleep 120
cd ./drivers/cassandra
/usr/local/go/bin/go test -run=Benchmark -bench ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: cassandra-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/cassandra/output.txt
external-data-json-path: ./cache/cassandra-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true
redis:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
services:
redis:
image: bitnami/redis:latest
env:
ALLOW_EMPTY_PASSWORD: yes
redis-sentinel:
image: bitnami/redis-sentinel:latest
env:
REDIS_URL: redis://redis:6379
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
sleep 60
cd ./drivers/redis
/usr/local/go/bin/go test -run=Benchmark -bench "BenchmarkDrivers/Bench_Redis" ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: redis-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/redis/output.txt
external-data-json-path: ./cache/redis-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true
keydb:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
services:
keydb:
image: eqalpha/keydb
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
sleep 60
cd ./drivers/redis
/usr/local/go/bin/go test -run=Benchmark -bench "BenchmarkDrivers/Bench_KeyDB" ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: keydb-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/redis/output.txt
external-data-json-path: ./cache/keydb-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true
nats:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
services:
nats:
image: madflojo/nats
ports:
- 8222
env:
NATS_EXTRA_FLAGS: -js
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
sleep 60
cd ./drivers/nats
/usr/local/go/bin/go test -run=Benchmark -bench "BenchmarkDrivers/Bench_NATS" ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: nats-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/nats/output.txt
external-data-json-path: ./cache/nats-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true
hashmap:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
cd ./drivers/hashmap
/usr/local/go/bin/go test -run=Benchmark -bench "BenchmarkDrivers/Bench_Hashmap" ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: hashmap-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/hashmap/output.txt
external-data-json-path: ./cache/hashmap-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true
boltdb:
runs-on: ubuntu-latest
container: madflojo/ubuntu-build
steps:
- uses: actions/checkout@v3
# Using this instead of actions/setup-go to get around an issue with act
- name: Install Go
run: |
curl -L https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | tar -C /usr/local -xzf -
- name: Execute Benchmarks
run: |
cd ./drivers/bbolt
/usr/local/go/bin/go test -run=Benchmark -bench "BenchmarkDrivers/Bench_BoltDB" ./... | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: boltdb-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'go'
output-file-path: ./drivers/bbolt/output.txt
external-data-json-path: ./cache/boltdb-benchmark-data.json
fail-on-alert: true
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
summary-always: true