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]
    steps:
      - name: Checkout
        uses: actions/checkout@v4

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

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

      - 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.4
        uses: ./
        with:
          python-version: 3.12.4
      - name: Verify 3.12.4
        run: python __tests__/verify-python.py 3.12.4

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

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

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