mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-08 19:44:57 -05:00
Bumps [appleboy/ssh-action](https://github.com/appleboy/ssh-action) from 0.1.6 to 0.1.8.
- [Release notes](https://github.com/appleboy/ssh-action/releases)
- [Commits](4a03da89e5...b601429988)
---
updated-dependencies:
- dependency-name: appleboy/ssh-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
135 lines
6.3 KiB
YAML
135 lines
6.3 KiB
YAML
name: Daily Benchmarks
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
|
|
jobs:
|
|
perform:
|
|
name: Run Benchmarks on EC2 and Publish Results to Progress Tracker
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Configure AWS Credentials
|
|
uses: aws-actions/configure-aws-credentials@67fbcbb121271f7775d2e7715933280b06314838
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: eu-west-3 # Europe (Paris)
|
|
|
|
- name: Write SSH Key To A File
|
|
run: echo "$SSH_KEY" > ~/ssh-key && chmod 400 ~/ssh-key
|
|
env:
|
|
SSH_KEY: ${{ secrets.BENCHMARKS_EC2_SSH_KEY }}
|
|
|
|
- name: Start AMD EC2 Instance
|
|
run: |
|
|
aws ec2 start-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_AMD_INSTANCE_ID }}
|
|
|
|
- name: Wait For The AMD EC2 Instance To Get An IP Address
|
|
run: |
|
|
# shellcheck disable=SC2016,2026
|
|
timeout 180 bash -c 'until [[ $(aws ec2 describe-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_AMD_INSTANCE_ID }} --query 'Reservations[].Instances[].PublicIpAddress' --output text) != "" ]]; do sleep 0.1; done'
|
|
|
|
- name: Get Public IP Address of AMD EC2 Instance
|
|
id: amd-public-ip
|
|
run: echo "::set-output name=value::$(aws ec2 describe-instances --region eu-west-3 --instance-ids ${{ secrets.BENCHMARKS_EC2_AMD_INSTANCE_ID }} --query 'Reservations[].Instances[].PublicIpAddress' --output text)"
|
|
|
|
- name: Hide Public IP Address of AMD EC2 Instance From GitHub Logs
|
|
run: echo "::add-mask::${{ steps.amd-public-ip.outputs.value }}"
|
|
|
|
- name: Wait For The AMD EC2 Instance To Accept SSH Connections
|
|
run: timeout 180 bash -c 'until nc -z ${{ steps.amd-public-ip.outputs.value }} 22; do sleep 0.1; done'
|
|
|
|
- name: Connect To AMD EC2 Instance, Perform Benchmarks, Publish Results
|
|
uses: appleboy/ssh-action@b60142998894e495c513803efc6d5d72a72c968a
|
|
with:
|
|
host: ${{ steps.amd-public-ip.outputs.value }}
|
|
username: ${{ secrets.BENCHMARKS_EC2_USERNAME }}
|
|
key: ${{ secrets.BENCHMARKS_EC2_SSH_KEY }}
|
|
command_timeout: 720m
|
|
script: |
|
|
cd ~/project
|
|
git pull
|
|
make docker_publish_measurements
|
|
docker system prune -f
|
|
|
|
- name: Copy AMD EC2 Instance Concrete Logs
|
|
run: scp -o StrictHostKeyChecking=no -i ~/ssh-key ${{ secrets.BENCHMARKS_EC2_USERNAME }}@${{ steps.amd-public-ip.outputs.value }}:~/project/logs/latest.concrete.log ~/latest.concrete.log
|
|
|
|
- name: Copy AMD EC2 Instance ML Logs
|
|
run: scp -o StrictHostKeyChecking=no -i ~/ssh-key ${{ secrets.BENCHMARKS_EC2_USERNAME }}@${{ steps.amd-public-ip.outputs.value }}:~/project/logs/latest.ml.log ~/latest.ml.log
|
|
|
|
- name: Stop AMD EC2 Instance
|
|
if: ${{ always() }}
|
|
run: |
|
|
aws ec2 stop-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_AMD_INSTANCE_ID }}
|
|
|
|
- name: Upload Logs of AMD EC2 Instance
|
|
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
|
|
with:
|
|
name: amd
|
|
path: ~/latest.*.log
|
|
|
|
- name: Start Intel EC2 Instance
|
|
run: |
|
|
aws ec2 start-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_INTEL_INSTANCE_ID }}
|
|
|
|
- name: Wait For The Intel EC2 Instance To Get An IP Address
|
|
run: |
|
|
# shellcheck disable=SC2016,2026
|
|
timeout 180 bash -c 'until [[ $(aws ec2 describe-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_INTEL_INSTANCE_ID }} --query 'Reservations[].Instances[].PublicIpAddress' --output text) != "" ]]; do sleep 0.1; done'
|
|
|
|
- name: Get Public IP Address of Intel EC2 Instance
|
|
id: intel-public-ip
|
|
run: echo "::set-output name=value::$(aws ec2 describe-instances --region eu-west-3 --instance-ids ${{ secrets.BENCHMARKS_EC2_INTEL_INSTANCE_ID }} --query 'Reservations[].Instances[].PublicIpAddress' --output text)"
|
|
|
|
- name: Hide Public IP Address of Intel EC2 Instance From GitHub Logs
|
|
run: echo "::add-mask::${{ steps.intel-public-ip.outputs.value }}"
|
|
|
|
- name: Wait For The Intel EC2 Instance To Accept SSH Connections
|
|
run: timeout 180 bash -c 'until nc -z ${{ steps.intel-public-ip.outputs.value }} 22; do sleep 0.1; done'
|
|
|
|
- name: Connect To Intel EC2 Instance, Perform Benchmarks, Publish Results
|
|
uses: appleboy/ssh-action@b60142998894e495c513803efc6d5d72a72c968a
|
|
with:
|
|
host: ${{ steps.intel-public-ip.outputs.value }}
|
|
username: ${{ secrets.BENCHMARKS_EC2_USERNAME }}
|
|
key: ${{ secrets.BENCHMARKS_EC2_SSH_KEY }}
|
|
command_timeout: 720m
|
|
script: |
|
|
cd ~/project
|
|
git pull
|
|
make docker_publish_measurements
|
|
docker system prune -f
|
|
|
|
- name: Copy Intel EC2 Instance Concrete Logs
|
|
run: scp -o StrictHostKeyChecking=no -i ~/ssh-key ${{ secrets.BENCHMARKS_EC2_USERNAME }}@${{ steps.intel-public-ip.outputs.value }}:~/project/logs/latest.concrete.log ~/latest.concrete.log
|
|
|
|
- name: Copy Intel EC2 Instance ML Logs
|
|
run: scp -o StrictHostKeyChecking=no -i ~/ssh-key ${{ secrets.BENCHMARKS_EC2_USERNAME }}@${{ steps.intel-public-ip.outputs.value }}:~/project/logs/latest.ml.log ~/latest.ml.log
|
|
|
|
- name: Stop Intel EC2 Instance
|
|
if: ${{ always() }}
|
|
run: |
|
|
aws ec2 stop-instances --instance-ids ${{ secrets.BENCHMARKS_EC2_INTEL_INSTANCE_ID }}
|
|
|
|
- name: Upload Logs of Intel EC2 Instance
|
|
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
|
|
with:
|
|
name: intel
|
|
path: ~/latest.*.log
|
|
|
|
- name: Send Slack Notification
|
|
if: ${{ always() }}
|
|
continue-on-error: true
|
|
uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7
|
|
env:
|
|
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
|
|
SLACK_ICON: https://pbs.twimg.com/profile_images/1274014582265298945/OjBKP9kn_400x400.png
|
|
SLACK_COLOR: ${{ job.status }}
|
|
SLACK_MESSAGE: "Publishing benchmarks finished with status ${{ job.status }} \
|
|
(${{ env.ACTION_RUN_URL }})"
|
|
SLACK_USERNAME: ${{ secrets.BOT_USERNAME }}
|
|
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|