mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-05 16:15:41 -06:00
94 lines
3.8 KiB
YAML
94 lines
3.8 KiB
YAML
name: Benchmark Dolt vs MySQL
|
|
|
|
on:
|
|
repository_dispatch:
|
|
types: [ release-dolt ]
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'SemVer format release tag, i.e. 0.23.4'
|
|
required: true
|
|
default: ''
|
|
email:
|
|
description: 'Email address to receive results'
|
|
required: true
|
|
default: ''
|
|
|
|
jobs:
|
|
set-version-actor:
|
|
name: Set Version and Actor
|
|
runs-on: ubuntu-18.04
|
|
outputs:
|
|
version: ${{ steps.set-vars.outputs.version }}
|
|
actor: ${{ steps.set-vars.outputs.actor }}
|
|
steps:
|
|
- name: Set variables
|
|
id: set-vars
|
|
run: |
|
|
echo "::set-output name=version::$VERSION"
|
|
echo "::set-output name=actor::$ACTOR"
|
|
env:
|
|
VERSION: ${{ github.event.inputs.version || github.event.client_payload.version }}
|
|
ACTOR: ${{ github.event.client_payload.actor || github.actor }}
|
|
|
|
benchmark-release-mysql:
|
|
runs-on: ubuntu-18.04
|
|
needs: set-version-actor
|
|
name: Benchmark Dolt Release vs MySQL 8
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Configure AWS Credentials
|
|
uses: aws-actions/configure-aws-credentials@v1
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: us-west-2
|
|
- name: Install aws-iam-authenticator
|
|
run: |
|
|
curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.8/2020-09-18/bin/linux/amd64/aws-iam-authenticator && \
|
|
chmod +x ./aws-iam-authenticator && \
|
|
sudo cp ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator
|
|
aws-iam-authenticator version
|
|
- name: Create and Auth kubeconfig
|
|
run: |
|
|
echo "$CONFIG" > kubeconfig
|
|
KUBECONFIG=kubeconfig kubectl config set-credentials github-actions-dolt --exec-api-version=client.authentication.k8s.io/v1alpha1 --exec-command=aws-iam-authenticator --exec-arg=token --exec-arg=-i --exec-arg=eks-cluster-1
|
|
KUBECONFIG=kubeconfig kubectl config set-context github-actions-dolt-context --cluster=eks-cluster-1 --user=github-actions-dolt --namespace=performance-benchmarking
|
|
KUBECONFIG=kubeconfig kubectl config use-context github-actions-dolt-context
|
|
env:
|
|
CONFIG: ${{ secrets.CORP_KUBECONFIG }}
|
|
- name: Run benchmarks
|
|
id: run-benchmarks
|
|
run: ./.github/scripts/performance-benchmarking/run-benchmarks.sh
|
|
env:
|
|
FROM_SERVER: 'mysql'
|
|
FROM_VERSION: '8.0.22'
|
|
TO_SERVER: 'dolt'
|
|
TO_VERSION: ${{ needs.set-version-actor.outputs.version }}
|
|
MODE: 'release'
|
|
ACTOR: ${{ needs.set-version-actor.outputs.actor }}
|
|
KUBECONFIG: "./kubeconfig"
|
|
TEMPLATE_SCRIPT: "./.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh"
|
|
- name: Get benchmark results
|
|
id: get-results
|
|
run: |
|
|
aws s3api get-object --bucket=performance-benchmarking-github-actions-results --key="$KEY" results.log
|
|
env:
|
|
KEY: ${{ steps.run-benchmarks.outputs.object-key }}
|
|
- name: Send Email on Release
|
|
if: ${{ github.event_name == 'repository_dispatch' }}
|
|
uses: ./.github/actions/ses-email-action
|
|
with:
|
|
region: us-west-2
|
|
version: ${{ needs.set-version-actor.outputs.version }}
|
|
toAddresses: '["${{ secrets.PERF_REPORTS_EMAIL_ADDRESS }}"]'
|
|
dataFile: ${{ format('{0}/results.log', github.workspace) }}
|
|
- name: Send Email
|
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
uses: ./.github/actions/ses-email-action
|
|
with:
|
|
region: us-west-2
|
|
version: ${{ needs.set-version-actor.outputs.version }}
|
|
toAddresses: '["${{ github.event.inputs.email }}"]'
|
|
dataFile: ${{ format('{0}/results.log', github.workspace) }}
|