name: e2e tests

on:
  push:
    branches:
      - main
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'
  workflow_dispatch:

jobs:
  test-setup-python:
    name: Test setup-python
    runs-on: ${{ matrix.operating-system }}
    strategy:
      matrix:
        operating-system:
          [
            ubuntu-20.04,
            windows-latest,
            ubuntu-22.04,
            ubuntu-latest,
            macos-latest,
            macos-13
          ]
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Run with setup-python 3.9.13
        uses: ./
        with:
          python-version: 3.9.13
      - name: Verify 3.9.13
        run: python __tests__/verify-python.py 3.9.13

      - name: Run with setup-python 3.9.13
        uses: ./
        with:
          python-version: 3.10.11
      - name: Verify 3.10.11
        run: python __tests__/verify-python.py 3.10.11

      - name: Run with setup-python 3.11.9
        uses: ./
        with:
          python-version: 3.11.9
      - name: Verify 3.11.9
        run: python __tests__/verify-python.py 3.11.9

      - name: Run with setup-python 3.12.7
        uses: ./
        with:
          python-version: 3.12.7
      - name: Verify 3.12.7
        run: python __tests__/verify-python.py 3.12.7

      - name: Run with setup-python 3.13.0
        uses: ./
        with:
          python-version: 3.13.0
      - name: Verify 3.13.0
        run: python __tests__/verify-python.py 3.13.0

      - name: Run with setup-python 3.13
        id: cp313
        uses: ./
        with:
          python-version: '3.13'
      - name: Verify 3.13
        run: python __tests__/verify-python.py 3.13
      - name: Run python-path sample 3.13
        run: pipx run --python '${{ steps.cp313.outputs.python-path }}' nox --version

      - name: Run with setup-python ==3.13
        uses: ./
        with:
          python-version: '==3.13'
      - name: Verify ==3.13
        run: python __tests__/verify-python.py 3.13

      - name: Run with setup-python <3.13
        uses: ./
        with:
          python-version: '<3.13'
      - name: Verify <3.13
        run: python __tests__/verify-python.py 3.12
      - name: Test Raw Endpoint Access
        run: |
          curl -L https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json | jq empty
        shell: bash