|
35 | 35 | - warehouse-10G
|
36 | 36 | tag:
|
37 | 37 | type: string
|
38 |
| - |
39 | 38 | env:
|
40 | 39 | BENCHMARK: ${{ inputs.benchmark || 'clickbench-1M' }}
|
41 | 40 | REPO: ${{ inputs.repo || 'ghcr.io/hydradatabase/hydra' }}
|
42 |
| - BASE_IMAGE: ${{ (inputs.repo == '011789831835.dkr.ecr.us-east-1.amazonaws.com/spilo' && 'spilo') || 'postgres' }} |
43 | 41 | TAG: ${{ inputs.tag || format('15-{0}', github.sha) }}
|
44 |
| - NAME: hydra-benchmark |
45 |
| - BENCHER_PROJECT: hydra-${{ (inputs.repo == '011789831835.dkr.ecr.us-east-1.amazonaws.com/spilo' && 'spilo') || 'postgres' }} |
46 | 42 | BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }}
|
47 |
| - BENCHER_ADAPTER: json |
48 | 43 | BENCHER_TESTBED: gh-4core
|
49 | 44 |
|
50 | 45 | jobs:
|
51 | 46 | benchmarks:
|
52 | 47 |
|
53 | 48 | name: Run Benchmark
|
54 |
| - if: github.repository == 'hydradatabase/hydra-internal' |
55 | 49 | # 16gb ram, 4vcpu, 150gb disk
|
56 | 50 | runs-on: benchmarks-ubuntu-latest-4core
|
57 | 51 |
|
58 | 52 | steps:
|
59 |
| - |
60 |
| - - name: Configure AWS credentials |
61 |
| - if: ${{ github.repository == 'hydradatabase/hydra-internal' && env.REPO == '011789831835.dkr.ecr.us-east-1.amazonaws.com/spilo' }} |
62 |
| - uses: aws-actions/configure-aws-credentials@v1 |
63 |
| - with: |
64 |
| - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} |
65 |
| - aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} |
66 |
| - aws-region: us-east-1 |
67 |
| - mask-aws-account-id: no |
68 |
| - |
69 |
| - - name: Login to Amazon ECR |
70 |
| - if: ${{ github.repository == 'hydradatabase/hydra-internal' && env.REPO == '011789831835.dkr.ecr.us-east-1.amazonaws.com/spilo' }} |
71 |
| - id: spilo-ecr |
72 |
| - uses: aws-actions/amazon-ecr-login@v1 |
73 |
| - with: |
74 |
| - registries: "011789831835" |
75 |
| - |
76 | 53 | - uses: actions/setup-node@v3
|
77 | 54 | with:
|
78 | 55 | node-version: 18
|
79 | 56 |
|
80 | 57 | - uses: docker/setup-buildx-action@v2
|
81 | 58 |
|
| 59 | + - uses: unfor19/install-aws-cli-action@v1 |
| 60 | + with: |
| 61 | + arch: amd64 |
| 62 | + |
| 63 | + - uses: bencherdev/bencher@main |
| 64 | + |
82 | 65 | - name: Checkout benchmarks
|
83 | 66 | uses: actions/checkout@v3
|
84 | 67 | with:
|
85 | 68 | repository: hydradatabase/benchmarks
|
86 | 69 |
|
87 |
| - - name: Set up docker image |
88 |
| - run: | |
89 |
| - docker run -d -e POSTGRES_HOST_AUTH_METHOD=trust -v $PWD:/benchmarks -m 12288m --cpus=4 --shm-size=1024m --name=$NAME $REPO:$TAG |
90 |
| -
|
91 |
| - - name: Prepare to download data |
92 |
| - run: | |
93 |
| - set -eux |
94 |
| - BENCHMARK_SRC="$(echo $BENCHMARK | cut -f 1 -d -)" |
95 |
| - if [ "$BENCHMARK" != "$BENCHMARK_SRC" ]; then |
96 |
| - ln -s $BENCHMARK_SRC $BENCHMARK |
97 |
| - fi |
98 |
| - mkdir -p $BENCHMARK/data |
99 |
| - tree $BENCHMARK |
100 |
| -
|
101 |
| - - name: Download data |
102 |
| - uses: keithweaver/[email protected] |
| 70 | + - name: Configure AWS credentials |
| 71 | + uses: aws-actions/configure-aws-credentials@v1 |
103 | 72 | with:
|
104 |
| - command: cp |
105 |
| - source: s3://hydra-benchmarks/data/${{ env.BENCHMARK }} |
106 |
| - destination: ./${{ env.BENCHMARK }}/data |
107 |
| - aws_access_key_id: ${{ secrets.BENCHMARKS_AWS_ACCESS_KEY_ID }} |
108 |
| - aws_secret_access_key: ${{ secrets.BENCHMARKS_AWS_SECRET_ACCESS_KEY }} |
109 |
| - aws_region: us-east-1 |
110 |
| - flags: --no-progress --recursive |
111 |
| - |
112 |
| - - name: Prepare data |
113 |
| - run: | |
114 |
| - set -eux |
115 |
| - pushd $BENCHMARK/data |
116 |
| - for f in *.gz; do |
117 |
| - TARGET="$(basename $f .gz)" |
118 |
| - mkfifo $TARGET |
119 |
| - nohup gzip -d -c $f >$TARGET & |
120 |
| - done |
121 |
| - popd |
122 |
| - tree $BENCHMARK |
123 |
| -
|
124 |
| - - name: Run benchmark |
125 |
| - run: | |
126 |
| - docker exec $NAME /bin/sh -c "RUNTIME=now /benchmarks/run-benchmark.sh -z -b $BENCHMARK -v zstd -u postgres" |
127 |
| - ./analyze.js ./results/$BENCHMARK/zstd/now > ./results.json |
128 |
| -
|
129 |
| - - name: Cleanup docker image |
130 |
| - run: | |
131 |
| - docker stop $NAME |
132 |
| - docker rm $NAME |
| 73 | + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY || secrets.BENCHMARKS_AWS_ACCESS_KEY_ID }} |
| 74 | + aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY || secrets.BENCHMARKS_AWS_SECRET_ACCESS_KEY }} |
| 75 | + aws-region: us-east-1 |
| 76 | + mask-aws-account-id: no |
133 | 77 |
|
134 |
| - - name: Upload result to S3 |
135 |
| - uses: keithweaver/[email protected] |
| 78 | + - name: Login to Amazon ECR |
| 79 | + if: ${{ github.repository == 'hydradatabase/hydra-internal' && env.REPO == '011789831835.dkr.ecr.us-east-1.amazonaws.com/spilo' }} |
| 80 | + id: spilo-ecr |
| 81 | + uses: aws-actions/amazon-ecr-login@v1 |
136 | 82 | with:
|
137 |
| - command: cp |
138 |
| - source: ./results.json |
139 |
| - destination: s3://hydra-benchmarks/results/${{ env.BASE_IMAGE }}-${{ env.BENCHMARK }}-zstd-${{ env.TAG }}.json |
140 |
| - aws_access_key_id: ${{ secrets.BENCHMARKS_AWS_ACCESS_KEY_ID }} |
141 |
| - aws_secret_access_key: ${{ secrets.BENCHMARKS_AWS_SECRET_ACCESS_KEY }} |
142 |
| - aws_region: us-east-1 |
143 |
| - flags: --no-progress |
144 |
| - |
145 |
| - - uses: bencherdev/bencher@main |
| 83 | + registries: "011789831835" |
146 | 84 |
|
147 |
| - - name: Upload result to bencher |
148 |
| - run: | |
149 |
| - bencher run \ |
150 |
| - --if-branch "$GITHUB_REF_NAME" \ |
151 |
| - --else-if-branch "$GITHUB_BASE_REF" \ |
152 |
| - --else-if-branch main \ |
153 |
| - --err \ |
154 |
| - "./analyze-bencher.js ./results/$BENCHMARK/zstd/now $BENCHMARK" |
| 85 | + - name: Run benchmark |
| 86 | + run: ./run-gha.sh |
0 commit comments