Skip to content

trying the push thing again #33

trying the push thing again

trying the push thing again #33

Workflow file for this run

name: Run benchmark
on:
workflow_dispatch:
push:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/master' || github.sha }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
gh_issue_repo: duckdblabs/db-benchmark
# start-aws-machine:
# name: Start aws-small-machine
# runs-on: ubuntu-latest
# env:
# instance_id: XXXXXXXXX
# steps:
# - name: Start EC2 runner
# shell: bash
# env:
# AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
# AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
# AWS_DEFAULT_REGION: us-east-1
# run: aws ec2 start-instances --instance-id ${{ env.instance_id }}
# - name: Create issue if failure
# shell: bash
# if: ${{ failure() && contains(github.ref_name, 'main') }}
# run: |
# gh issue create --repo ${{ env.gh_issue_repo }} --title "Weekly Regression Test Failure" --body "AWS box with instance-id ${{ env.instance_id }} could not be started"
jobs:
run-benchmark:
name: Regression Tests all solutions
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: add_trigger_to_run_the_benchmark
- name: run mount
shell: bash
run: |
./_setup_utils/mount.sh
# TODO: Remove this.
- name: checkout correct branch
shell: bash
working-directory: /var/lib/mount/db-benchmark-metal
run: |
git checkout add_trigger_to_run_the_benchmark
- name: small modification
shell: bash
working-directory: /var/lib/mount/db-benchmark-metal
run: |
echo "small change" >> time.csv
# - name: Install or Upgrade all solutions
# shell: bash
# working-directory: /var/lib/mount/db-benchmark-metal
# run: |
# python3 _setup_utils/install_all_solutions.py all --exclude clickhouse
# # installing/updating clickhouse needs sudo priviledges
# sudo python3 _setup_utils/install_all_solutions.py clickhouse
# - name: Modify run.conf to only have new versions
# shell: bash
# working-directory: /var/lib/mount/db-benchmark-metal
# run: |
# git diff --name-only **/VERSION > updated_solutions.txt
# sed -i 's/\/VERSION/ /g' updated_solutions.txt
# tr --delete '\n' < updated_solutions.txt > updated_solutions_no_newlines.txt
# export new_solutions=`cat updated_solutions_no_newlines.txt`
# echo "New benchmarks are " $new_solutions
# sed -i "s/export RUN_SOLUTIONS=.*/export RUN_SOLUTIONS=\"${new_solutions}\"/g" run.conf
# - name: Run the benchmark
# shell: bash
# working-directory: /var/lib/mount/db-benchmark-metal
# run: |
# ncores=`python3 -c 'import multiprocessing as mp; print(mp.cpu_count())'`
# if [ $ncores -eq 16 ]; then export MACHINE_TYPE="c6id.4xlarge"; fi
# if [ $ncores -eq 32 ]; then export MACHINE_TYPE="c6id.4xlarge"; fi
# if [ $ncores -eq 128 ]; then export MACHINE_TYPE="c6id.metal"; fi
# MACHINE_TYPE=$MACHINE_TYPE ./_run/run_small_medium.sh
- name: name new branch
shell: bash
run: |
echo "new_branch_name=results-`date +%Y-%m-%d-%Hh%Mm`" >> $GITHUB_ENV
echo ${{ env.new_branch_name }}
- name: Commit updates
shell: bash
working-directory: /var/lib/mount/db-benchmark-metal
run: |
git config --global user.email ""
git config --global user.name "github-actions[bot]"
git add time.csv logs.csv **/VERSION
git add run.conf
git commit -m "new_results"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ env.new_branch_name }}
- name: Create Archive
if: always()
shell: bash
working-directory: /var/lib/mount/db-benchmark-metal
run: |
mkdir -p out
echo "guarantee not empty dir" > out/guarantee.txt
zip -r out-dir.zip out/
- uses: actions/upload-artifact@v4
if: always()
with:
name: out-dir.zip
path: /var/lib/mount/db-benchmark-metal/out-dir.zip
if-no-files-found: error
# shutdown:
# name: shut down
# if: always()
# runs-on: ubuntu-latest
# needs:
# - start-runner
# - run-benchmark
# steps:
# - name: shutdown
# shell: bash
# env:
# AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
# AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
# AWS_DEFAULT_REGION: us-east-1
# run: aws ec2 stop-instances --instance-id ${{ env.instance_id }}