diff --git a/.github/workflows/daily-benchmarks.yaml b/.github/workflows/daily-benchmarks.yaml deleted file mode 100644 index 1a6fd2c79..000000000 --- a/.github/workflows/daily-benchmarks.yaml +++ /dev/null @@ -1,134 +0,0 @@ -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 }}