name: ci
on:
  pull_request:
  push:
    branches:
      - master
      - 0.15.x
concurrency:
  # Cancels pending runs when a PR gets updated.
  group: ${{ github.head_ref || github.run_id }}-${{ github.actor }}
  cancel-in-progress: true
permissions:
  # Sets permission policy for `GITHUB_TOKEN`
  contents: read
jobs:
  x86_64-linux-debug:
    timeout-minutes: 540
    runs-on: [self-hosted, Linux, x86_64]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: sh ci/x86_64-linux-debug.sh
  x86_64-linux-debug-llvm:
    timeout-minutes: 540
    runs-on: [self-hosted, Linux, x86_64]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: sh ci/x86_64-linux-debug-llvm.sh
  x86_64-linux-release:
    timeout-minutes: 540
    runs-on: [self-hosted, Linux, x86_64]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: sh ci/x86_64-linux-release.sh
  aarch64-linux-debug:
    runs-on: [self-hosted, Linux, aarch64]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: sh ci/aarch64-linux-debug.sh
  aarch64-linux-release:
    runs-on: [self-hosted, Linux, aarch64]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: sh ci/aarch64-linux-release.sh
  x86_64-macos-release:
    runs-on: "macos-13"
    env:
      ARCH: "x86_64"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: ci/x86_64-macos-release.sh
  aarch64-macos-debug:
    runs-on: [self-hosted, macOS, aarch64]
    env:
      ARCH: "aarch64"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: ci/aarch64-macos-debug.sh
  aarch64-macos-release:
    runs-on: [self-hosted, macOS, aarch64]
    env:
      ARCH: "aarch64"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: ci/aarch64-macos-release.sh
  x86_64-windows-debug:
    timeout-minutes: 420
    runs-on: [self-hosted, Windows, x86_64]
    env:
      ARCH: "x86_64"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: ci/x86_64-windows-debug.ps1
  x86_64-windows-release:
    timeout-minutes: 420
    runs-on: [self-hosted, Windows, x86_64]
    env:
      ARCH: "x86_64"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build and Test
        run: ci/x86_64-windows-release.ps1
