# ===---
# Running on push & pull_request.
#   This workflow parses the destination branch
#   to choose correct dependencies revisions
# ===---

name: In-tree build
run-name: '${{ github.event_name }}: ${{ github.base_ref }} ${{ github.ref_name }}' # github.base_ref null for 'on: push'

on:
  push:
    branches:
      - main
      - ocl-open-*
  pull_request:
    branches:
      - main
      - ocl-open-*
    types:
      - opened
      - reopened
      - synchronize       # commit pushed to the PR
      - ready_for_review  # moved from draft state

jobs:

  verify_release_branch:
    name: Linux
    # ref_name for 'on: push'
    # base_ref for 'on: pull_request'
    runs-on: ubuntu-22.04
    steps:

      - name: Checkout opencl-clang sources for action files
        uses: actions/checkout@v3

      # This step will fail when the branch naming scheme 'ocl-open-XXX' changes!
      - name: Parse LLVM version from branch name
        id: check-llvm-version
        run: |
          BRANCH="${{ github.base_ref }}"          # on: pull_request, otherwise null
          BRANCH=${BRANCH:-${{ github.ref_name }}} # on: push
          LLVM_VERSION_LONG=$(echo $BRANCH | grep -oP '\d+') # Eg. 150 for LLVM 15
          LLVM_VERSION_SHORT=${LLVM_VERSION_LONG::-1}        # Eg. 15  for LLVM 15
          echo "llvm_version=$LLVM_VERSION_SHORT" >> $GITHUB_OUTPUT

      - name: Run build-opencl-clang action
        uses: ./.github/actions/build-opencl-clang
        with:
          ref_llvm: release/${{ steps.check-llvm-version.outputs.llvm_version }}.x
          ref_translator: llvm_release_${{ steps.check-llvm-version.outputs.llvm_version }}0
          ref_opencl-clang: ${{ github.ref }}
