3030 required : true
3131
3232env :
33- INSTANCE_ID : ${{ secrets.BENCHMARK_INSTANCE_ID }} # remote AWS host to run benchmarking
33+ INSTANCE_ID : ${{ secrets.BENCHMARK_INSTANCE_ID }}
3434 BENCHMARK_SSH_USER : ${{ secrets.BENCHMARK_SSH_USER }}
35- BENCHMARK_SSH_KEYPATH : ${{ secrets.BENCHMARK_SSH_KEYPATH }}
35+ BENCHMARK_SSH_KEY : ${{ secrets.BENCHMARK_SSH_KEY }}
3636 DOCKER_BUILDKIT : 1
3737
3838jobs :
7777
7878 # # run the benchmarking remotely
7979 benchmark :
80- runs-on : jumphost
80+ runs-on : ubuntu-latest
8181 needs : build-docker
8282 # see https://github.com/actions/runner/issues/491
8383 if : |
@@ -111,25 +111,33 @@ jobs:
111111 run : |
112112 docker pull litentry/litentry-parachain:runtime-benchmarks
113113
114+ - name : Set up AWS CLI
115+ uses : aws-actions/configure-aws-credentials@v2
116+ with :
117+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
118+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
119+ aws-region : us-east-1
120+
114121 # TODO: maybe use GHA to start/stop remote instance
115122 - name : Start remote instance
116123 timeout-minutes : 10
117124 id : start_instance
118125 run : |
119- aws ec2 start-instances --region ap-southeast-1 -- instance-ids ${{ env.INSTANCE_ID }}
126+ aws ec2 start-instances --instance-ids ${{ env.INSTANCE_ID }}
120127 sleep 5
121- instance_status="aws ec2 describe-instance-status --region ap-southeast-1 -- instance-ids ${{ env.INSTANCE_ID }} --query 'InstanceStatuses[0].InstanceStatus.Status' --output text"
122- system_status="aws ec2 describe-instance-status --region ap-southeast-1 -- instance-ids ${{ env.INSTANCE_ID }} --query 'InstanceStatuses[0].SystemStatus.Status' --output text"
128+ instance_status="aws ec2 describe-instance-status --instance-ids ${{ env.INSTANCE_ID }} --query 'InstanceStatuses[0].InstanceStatus.Status' --output text"
129+ system_status="aws ec2 describe-instance-status --instance-ids ${{ env.INSTANCE_ID }} --query 'InstanceStatuses[0].SystemStatus.Status' --output text"
123130 SECONDS=0
124131 while : ; do
125132 if [ "$(eval $instance_status)" = "ok" ] && [ "$(eval $system_status)" = "ok" ]; then
126133 break
127134 else
128135 sleep 20
136+ SECONDS=$((SECONDS + 20))
129137 fi
130138 done
131139 echo "Remote instance reachable now after $SECONDS seconds"
132- remote_ip=`aws ec2 describe-instances --region ap-southeast-1 -- filters 'Name=instance-state-name,Values=running' 'Name=instance-id,Values=${{ env.INSTANCE_ID }}' --query 'Reservations[*].Instances[*].[PublicIpAddress]' --output text`
140+ remote_ip=`aws ec2 describe-instances --filters 'Name=instance-state-name,Values=running' 'Name=instance-id,Values=${{ env.INSTANCE_ID }}' --query 'Reservations[*].Instances[*].[PublicIpAddress]' --output text`
133141 echo "Running instances ip address: $remote_ip"
134142 echo "remote_ip=$remote_ip" >> $GITHUB_OUTPUT
135143
@@ -144,20 +152,24 @@ jobs:
144152 if [ "$arg" = "*" ]; then
145153 arg="\\$arg";
146154 fi
155+ cat << EOF > ./benchmark-server-key.pem
156+ ${{ env.BENCHMARK_SSH_KEY }}
157+ EOF
158+ chmod 600 ./benchmark-server-key.pem
147159 for c in $chain; do
148- ssh -x -o StrictHostKeychecking=no ${{ secrets.BENCHMARK_INSTANCE_IP }} -l ${{ env.BENCHMARK_SSH_USER }} 'bash -s' < scripts/benchmark-weight-remote.sh "$c" "${GITHUB_REF#refs/heads/}" "$arg"
160+ ssh -x -i ./benchmark-server-key.pem - o StrictHostKeychecking=no " ${{ steps.start_instance.outputs.remote_ip }}" -l ${{ env.BENCHMARK_SSH_USER }} 'bash -s' < scripts/benchmark-weight-remote.sh "$c" "${GITHUB_REF#refs/heads/}" "$arg"
149161 echo "copy generated weights files back ..."
150- scp -o StrictHostKeychecking=no "${{ env.BENCHMARK_SSH_USER }}"@"${{ secrets.BENCHMARK_INSTANCE_IP }}":/tmp/litentry-parachain/runtime/$c/src/weights/*.rs runtime/$c/src/weights/
162+ scp -o StrictHostKeychecking=no -i ./benchmark-server-key.pem "${{ env.BENCHMARK_SSH_USER }}"@"${{ steps.start_instance.outputs.remote_ip }}":/tmp/litentry-parachain/runtime/$c/src/weights/*.rs runtime/$c/src/weights/
151163 done
152164 echo "======================"
153165 git status
154166
155167 - name : Stop remote instance
156168 if : always()
157169 run : |
158- aws ec2 stop-instances --region ap-southeast-1 -- instance-ids ${{ env.INSTANCE_ID }}
170+ aws ec2 stop-instances --instance-ids ${{ env.INSTANCE_ID }}
159171 sleep 5
160- ret=`aws ec2 describe-instance-status --region ap-southeast-1 -- instance-ids ${{ env.INSTANCE_ID }} | jq '.InstanceStatuses[0].InstanceState.Name'`
172+ ret=`aws ec2 describe-instance-status --instance-ids ${{ env.INSTANCE_ID }} | jq '.InstanceStatuses[0].InstanceState.Name'`
161173 echo "Remote instance running state: $ret"
162174
163175 - name : Create auto PR
0 commit comments