forked from deepset-ai/haystack
-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (85 loc) · 3.37 KB
/
Copy pathcml.yml
File metadata and controls
89 lines (85 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: benchmarks
on:
workflow_dispatch:
jobs:
deploy-cloud-runner:
runs-on: [ubuntu-latest]
container: docker://dvcorg/cml
steps:
- name: deploy
env:
repo_token: ${{ secrets.HAYSTACK_BOT_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CI_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CI_SECRET_ACCESS_KEY }}
VPC: ${{ secrets.AWS_CI_VPC }}
run: |
echo "Deploying..."
RUNNER_LABELS="cml,aws"
RUNNER_REPO="https://github.com/${GITHUB_REPOSITORY}"
MACHINE="cml$(date +%s)"
docker-machine create \
--driver amazonec2 \
--amazonec2-instance-type p3.2xlarge \
--amazonec2-vpc-id "$VPC" \
--amazonec2-region us-east-1 \
--amazonec2-zone c \
--amazonec2-ssh-user ubuntu \
--amazonec2-ami ami-06a25ee8966373068 \
--amazonec2-root-size 150 \
"$MACHINE"
eval "$(docker-machine env --shell sh "$MACHINE")"
(
docker-machine ssh "$MACHINE" "sudo mkdir -p \
/docker_machine && \
sudo chmod 777 /docker_machine" && \
docker-machine scp -r -q ~/.docker/machine/ \
"$MACHINE:/docker_machine" && \
docker run --name elasticsearch -d \
-p 9200:9200 \
-e "discovery.type=single-node" \
elasticsearch:7.9.2 && \
docker run --name postgres -d \
-p 5432:5432 \
--net host \
-e POSTGRES_PASSWORD=password \
-v /docker_machine/machine:/root/.docker/machine \
-e "DOCKER_MACHINE=$MACHINE" \
postgres && \
sleep 4 && \
docker exec -i postgres psql -U postgres -c "CREATE DATABASE haystack;" && \
docker run --name runner -d \
--gpus all \
-v /docker_machine/machine:/root/.docker/machine \
--net host \
-e "DOCKER_MACHINE=$MACHINE" \
-e "repo_token=$repo_token" \
-e "RUNNER_LABELS=$RUNNER_LABELS" \
-e "RUNNER_REPO=$RUNNER_REPO" \
-e RUNNER_IDLE_TIMEOUT=120 \
dvcorg/cml-py3:latest && \
sleep 20 && echo "Deployed $MACHINE"
) || (echo "Shut down machine" && docker-machine rm -y -f "$MACHINE" && exit 1)
run-benchmark:
needs: deploy-cloud-runner
runs-on: [self-hosted,cml]
steps:
- uses: actions/checkout@v3
- name: cml_run
env:
repo_token: ${{ secrets.HAYSTACK_BOT_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CI_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CI_SECRET_ACCESS_KEY }}
run: |
apt-get update -y
apt-get install python3-dev -y
pip install .[elasticsearch,faiss,weaviate,ray,rest,ui,dev]
cd test/benchmarks && python run.py --retriever_index --retriever_query --reader --ci --save_markdown
{
echo -en "## Benchmarks: Retriever Indexing\n"
cat retriever_index_results.md
echo -en "\n\n## Benchmarks: Retriever Querying\n"
cat retriever_query_results.md
echo -en "\n\n## Benchmarks: Reader\n"
cat reader_results.md
} >> report.md
cml-send-comment report.md