name: Setup Linux build environment
description: "Setup a Linux Build environment (for self-hosted runners)"
runs:
  using: "composite"
  steps:
    - name: Setup custom apt repositories (azure-cli & yq)
      shell: bash
      run: |
        sudo apt-get update
        sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg -y
        curl -sL https://packages.microsoft.com/keys/microsoft.asc |
          gpg --dearmor |
          sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
        AZ_REPO=$(lsb_release -cs)
        echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" |
            sudo tee /etc/apt/sources.list.d/azure-cli.list
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CC86BB64
        sudo add-apt-repository ppa:rmescandon/yq

    - name: Update apt repository information
      shell: bash
      run: |
        sudo apt-get update

    - name: Install build-essential & CMake
      shell: bash
      run: |
        sudo apt-get install \
          build-essential cmake \
          -y

    - name: Install curl gpg
      shell: bash
      run: |
        sudo apt-get install curl gpg -y

    - name: Install yq jq
      run: |
        sudo apt-get install yq jq -y
      shell: bash

    - name: Install AWS CLI
      run: |
        sudo apt-get -y install awscli
      shell: bash

    - name: Install az CLI
      run: |
        sudo apt-get install azure-cli -y
      shell: bash

    - name: Set up gcloud CLI
      uses: google-github-actions/setup-gcloud@d51b5346f85640ec2aa2fa057354d2b82c2fcbce # v1.0.1

    - name: Set up Docker Buildx
      id: docker-setup
      uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # tag=v2.2.1
