name: Bencher
on:
  workflow_call:
    inputs:
      target:
        required: false
        default: "linux"
        type: string
      profile:
        required: false
        default: "release"
        type: string
      compressed-file-path:
        required: false
        default: ""
        type: string
      binary-path:
        required: false
        default: ""
        type: string
      file-size:
        required: false
        default: false
        type: boolean
      stripped-file-size:
        required: false
        default: false
        type: boolean
      speedometer:
        required: false
        default: false
        type: boolean
      dromaeo:
        required: false
        default: false
        type: boolean

env:
  RUST_BACKTRACE: 1
  SHELL: /bin/bash
  # allows overriding bencher project for pushes
  BENCHER_PROJECT: ${{ vars.BENCHER_PROJECT || 'servo' }}

jobs:
  bencher:
    name: Bencher (${{ inputs.target }})
    # This needs to be kept in sync with the `--testbed` argument sent to bencher.
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
        if: github.event_name != 'pull_request_target'
        with:
          fetch-depth: 0
      # This is necessary to checkout the pull request if this run was triggered via a
      # `pull_request_target` event.
      - uses: actions/checkout@v4
        if: github.event_name == 'pull_request_target'
        with:
          ref: refs/pull/${{ github.event.number }}/head
          fetch-depth: 0
      - uses: actions/download-artifact@v4
        with:
          name: ${{ inputs.profile }}-binary-${{ inputs.target }}
          path: ${{ inputs.profile }}-binary-${{ inputs.target }}
      # Linux and macOS uploads compressed binary, need to extract first
      - name: unPackage binary (tar)
        if: ${{ inputs.compressed-file-path != '' && contains(inputs.compressed-file-path, '.tar.gz') }}
        run: tar -xzf ${{ inputs.compressed-file-path }}
      - name: unPackage binary (unzip)
        if: ${{ inputs.compressed-file-path != '' && !contains(inputs.compressed-file-path, '.tar.gz') }}
        run: unzip ${{ inputs.compressed-file-path }}
      - name: Setup Python
        uses: ./.github/actions/setup-python
      - name: Bootstrap dependencies
        if: ${{ inputs.speedometer == true || inputs.dromaeo == true }}
        run: |
          sudo apt update
          sudo apt install -qy --no-install-recommends mesa-vulkan-drivers
          python3 ./mach bootstrap --skip-lints
      - uses: bencherdev/bencher@main
      - name: File size
        if: ${{ inputs.file-size == true }}
        run: |
            ./etc/ci/bencher.py filesize ${{ inputs.binary-path }} ${{ inputs.target }}-${{ inputs.profile }} --bmf-output size.json
            echo "SERVO_FILE_SIZE_RESULT=size.json" >> "$GITHUB_ENV"
      # We'll additionally strip and measure the size of the binary when using production profile
      - name: Install LLVM
        if: ${{ inputs.file-size == true && inputs.profile == 'production' }}
        uses: KyleMayes/install-llvm-action@v2
        with:
          version: "17"
      - name: Install llvm-strip dependency
        if: ${{ inputs.file-size == true && inputs.profile == 'production' }}
        run: sudo apt install libncurses5
      - name: File size (llvm stripped)
        if: ${{ inputs.file-size == true && inputs.profile == 'production' }}
        run: |
            llvm-strip ${{ inputs.binary-path }}
            ./etc/ci/bencher.py filesize ${{ inputs.binary-path }} ${{ inputs.target }}-${{ inputs.profile }}-stripped --bmf-output size-stripped.json
            echo "SERVO_STRIPPED_FILE_SIZE_RESULT=size-stripped.json" >> "$GITHUB_ENV"
      - name: Speedometer
        if: ${{ inputs.speedometer == true }}
        run: |
            python3 ./mach test-speedometer -r --bmf-output speedometer.json
            echo "SERVO_SPEEDOMETER_RESULT=speedometer.json" >> "$GITHUB_ENV"
      - name: Dromaeo
        if: ${{ inputs.dromaeo == true }}
        run: |
            python3 ./mach test-dromaeo -r dom --bmf-output dromaeo.json
            echo "SERVO_DROMAEO_RESULT=dromaeo.json" >> "$GITHUB_ENV"
      # set options
      - name: Set bencher opts for PRs (label try run)
        if: github.event_name == 'pull_request_target'
        run: |
            echo "RUN_BENCHER_OPTIONS=--branch ${{ github.event.number }}/PR \
            --start-point ${{ github.base_ref }} \
            --start-point-hash ${{ github.event.pull_request.base.sha }} \
            --start-point-reset \
            --start-point-clone-thresholds \
            --github-actions ${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
      - name: Set bencher opts for main
        if: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
        run: |
            echo "RUN_BENCHER_OPTIONS=--branch main \
            --github-actions ${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
      - name: Set bencher opts for try branch
        if: ${{ github.event_name == 'push' && github.ref_name == 'try' }}
        run: |
            git remote add upstream https://github.com/servo/servo
            git fetch upstream main
            echo "RUN_BENCHER_OPTIONS=--branch try \
            --github-actions ${{ secrets.GITHUB_TOKEN }} \
            --hash $(git rev-parse HEAD~1) \
            --start-point main \
            --start-point-hash $(git merge-base upstream/main HEAD) \
            --start-point-clone-thresholds \
            --branch-reset" >> "$GITHUB_ENV"
      # we join results and send all data once to have it all in one report
      - name: Send results
        continue-on-error: true
        run: |
          ./etc/ci/bencher.py merge ${{ env.SERVO_FILE_SIZE_RESULT }} ${{ env.SERVO_STRIPPED_FILE_SIZE_RESULT }} ${{ env.SERVO_SPEEDOMETER_RESULT }} ${{ env.SERVO_DROMAEO_RESULT }} --bmf-output b.json
          bencher run --adapter json --file b.json \
            --project ${{ env.BENCHER_PROJECT }} --token ${{ secrets.BENCHER_API_TOKEN }} --testbed ubuntu-22.04 \
            $RUN_BENCHER_OPTIONS
