55 workflows : ["Benchmark"]
66 types :
77 - completed
8+ workflow_call :
9+ inputs :
10+ tag :
11+ description : The tag to run benchmark
12+ required : true
13+ type : string
814
915permissions :
1016 id-token : write
@@ -30,11 +36,26 @@ jobs:
3036 env :
3137 GH_TOKEN : ${{ github.token }}
3238 run : |
33- gh run download ${{ github.event.workflow_run.id }} --name benchmark-metadata
34- echo "sha=$(jq -r '.sha' metadata.json)" >> $GITHUB_OUTPUT
35- echo "run_id=$(jq -r '.run_id' metadata.json)" >> $GITHUB_OUTPUT
36- echo "source=$(jq -r '.source' metadata.json)" >> $GITHUB_OUTPUT
37- echo "source_id=$(jq -r '.source_id' metadata.json)" >> $GITHUB_OUTPUT
39+ case ${{ github.event_name }} in
40+ # pull request
41+ workflow_run)
42+ gh run download ${{ github.event.workflow_run.id }} --name benchmark-metadata
43+ echo "sha=$(jq -r '.sha' metadata.json)" >> $GITHUB_OUTPUT
44+ echo "run_id=$(jq -r '.run_id' metadata.json)" >> $GITHUB_OUTPUT
45+ echo "source=pr" >> $GITHUB_OUTPUT
46+ echo "source_id=$(jq -r '.pr_id' metadata.json)" >> $GITHUB_OUTPUT
47+ ;;
48+ workflow_call)
49+ echo "sha=${{ github.sha }}" >> $GITHUB_OUTPUT
50+ echo "run_id=${{ github.run_id }}" >> $GITHUB_OUTPUT
51+ echo "source=release" >> $GITHUB_OUTPUT
52+ echo "source_id=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
53+ ;;
54+ *)
55+ echo "Unknown event name: ${{ github.event_name }}"
56+ exit 1
57+ ;;
58+ esac
3859
3960 local :
4061 needs : metadata
4768 - tpch
4869 steps :
4970 - uses : actions/checkout@v3
71+ - name : Download artifact
72+ run : |
73+ mkdir -p ./target/release
74+ case ${{ needs.metadata.outputs.source }} in
75+ pr)
76+ aws s3 sync s3://databend-ci/release/${{ needs.metadata.outputs.sha }}/x86_64-unknown-linux-gnu/default/ \
77+ target/release/ --exclude "*" --include "databend-*" --no-progress
78+ ;;
79+ release)
80+ version=${{ needs.metadata.outputs.source_id }}
81+ target=x86_64-unknown-linux-gnu
82+ wget -P distro -qc https://repo.databend.rs/databend/${version}/databend-${version}-${target}.tar.gz
83+ tar x -C ./target/release -f ./distro/databend-${version}-${target}.tar.gz --strip-components 1 bin/
84+ ;;
85+ *)
86+ echo "Unknown source: ${{ needs.metadata.outputs.source }}"
87+ exit 1
88+ ;;
89+ esac
90+ chmod +x ./target/release/databend-*
91+ - name : Setup Databend Binary
92+ shell : bash
93+ run : |
94+ sudo cp ./target/release/databend-* /usr/local/bin/
95+ databend-query --version
96+ databend-meta --version
5097 - uses : ./.github/actions/benchmark_local
5198 with :
5299 sha : ${{ needs.metadata.outputs.sha }}
@@ -63,17 +110,35 @@ jobs:
63110 tag : ${{ steps.prepare.outputs.tag }}
64111 steps :
65112 - uses : actions/checkout@v3
113+ - name : Download artifact
114+ run : |
115+ mkdir -p ./target/release
116+ case ${{ needs.metadata.outputs.source }} in
117+ pr)
118+ aws s3 sync s3://databend-ci/release/${{ needs.metadata.outputs.sha }}/x86_64-unknown-linux-gnu/default/ \
119+ target/release/ --exclude "*" --include "databend-*" --no-progress
120+ ;;
121+ release)
122+ version=${{ needs.metadata.outputs.source_id }}
123+ target=x86_64-unknown-linux-gnu
124+ wget -P distro -qc https://repo.databend.rs/databend/${version}/databend-${version}-${target}.tar.gz
125+ tar x -C ./target/release -f ./distro/databend-${version}-${target}.tar.gz --strip-components 1 bin/
126+ ;;
127+ *)
128+ echo "Unknown source: ${{ needs.metadata.outputs.source }}"
129+ exit 1
130+ ;;
131+ esac
132+ chmod +x ./target/release/databend-*
133+ - name : Prepare docker build
134+ run : |
135+ mkdir -p ./distro/linux/amd64
136+ cp ./target/release/databend-* ./distro/linux/amd64
66137 - uses : ./.github/actions/setup_docker
67138 id : login
68139 with :
69140 repo : databend-query
70141 ecr_role_arn : ${{ secrets.ECR_ROLE_ARN }}
71- - name : Download artifact
72- uses : ./.github/actions/artifact_download
73- with :
74- profile : release
75- sha : ${{ needs.metadata.outputs.sha }}
76- target : x86_64-unknown-linux-gnu
77142 - name : Prepare for docker
78143 id : prepare
79144 run : |
91156
92157 cloud :
93158 needs : [metadata, docker]
94- timeout-minutes : 30
159+ timeout-minutes : 60
95160 runs-on : [self-hosted, X64, Linux, dev]
96161 steps :
97162 - uses : actions/checkout@v3
0 commit comments