name: Cloud Hypervisor Tests (Metrics)
on:
  push:
    branches:
      - main

jobs:
  build:
    name: Tests (Metrics)
    runs-on: garm-jammy-16
    env:
      METRICS_PUBLISH_KEY: ${{ secrets.METRICS_PUBLISH_KEY }}
    steps:
      - name: Code checkout
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: Install Docker
        run: |
          set -eufo pipefail
          sudo apt-get update
          sudo apt-get -y install ca-certificates curl gnupg
          curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
          sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg
          echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
          sudo apt-get update
          sudo apt install -y docker-ce docker-ce-cli
      - name: Run metrics tests
        timeout-minutes: 60
        run: scripts/dev_cli.sh tests --metrics -- --test-exclude micro_,block_qcow2 -- --report-file /root/workloads/metrics.json
      - name: Upload metrics report
        run: 'curl -X PUT https://ch-metrics.azurewebsites.net/api/publishmetrics -H "x-functions-key: $METRICS_PUBLISH_KEY" -T ~/workloads/metrics.json'
