# Do not edit this file.
# This file is generated automatically by executing tox -e generate-workflows

name: Misc 0

on:
  push:
    branches-ignore:
    - 'release/*'
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

env:
  # Set the SHA to the branch name if the PR has a label 'prepare-release' or 'backport' otherwise, set it to 'main'
  # For PRs you can change the inner fallback ('main')
  # For pushes you change the outer fallback ('main')
  # The logic below is used during releases and depends on having an equivalent branch name in the core repo.
  CORE_REPO_SHA: ${{ github.event_name == 'pull_request' && (
       contains(github.event.pull_request.labels.*.name, 'prepare-release') && github.event.pull_request.head.ref ||
       contains(github.event.pull_request.labels.*.name, 'backport') && github.event.pull_request.base.ref ||
       'main'
    ) || 'main' }}
  CONTRIB_REPO_SHA: main
  PIP_EXISTS_ACTION: w

jobs:

  spellcheck:
    name: spellcheck
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e spellcheck

  docker-tests:
    name: docker-tests
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e docker-tests

  docs:
    name: docs
    runs-on: ubuntu-latest
    timeout-minutes: 30
    if: |
      github.event.pull_request.user.login != 'opentelemetrybot' && github.event_name == 'pull_request'
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e docs

  generate:
    name: generate
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e generate

      - name: Check workflows are up to date
        run: git diff --exit-code || (echo 'Generated code is out of date, run "tox -e generate" and commit the changes in this PR.' && exit 1)

  generate-workflows:
    name: generate-workflows
    runs-on: ubuntu-latest
    timeout-minutes: 30
    if: |
      !contains(github.event.pull_request.labels.*.name, 'Skip generate-workflows')
      && github.event.pull_request.user.login != 'opentelemetrybot' && github.event_name == 'pull_request'
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e generate-workflows

      - name: Check workflows are up to date
        run: git diff --exit-code || (echo 'Generated workflows are out of date, run "tox -e generate-workflows" and commit the changes in this PR.' && exit 1)

  shellcheck:
    name: shellcheck
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e shellcheck

  ruff:
    name: ruff
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e ruff

  typecheck:
    name: typecheck
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout repo @ SHA - ${{ github.sha }}
        uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install tox
        run: pip install tox-uv

      - name: Run tests
        run: tox -e typecheck
