name: Validate Python e2e on: push: branches: - main paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' schedule: - cron: 30 3 * * * jobs: default-version: name: Setup default version runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, windows-latest, ubuntu-20.04] steps: - name: Checkout uses: actions/checkout@v2 - name: setup default python uses: ./ - name: Validate version run: python --version - name: Run simple python code run: python -c 'import math; print(math.factorial(5))' setup-versions-from-manifest: name: Setup ${{ matrix.python }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, windows-latest, ubuntu-20.04] python: [3.5.4, 3.6.7, 3.7.5, 3.8.1] steps: - name: Checkout uses: actions/checkout@v2 - name: setup-python ${{ matrix.python }} uses: ./ with: python-version: ${{ matrix.python }} - name: Validate version run: | $pythonVersion = (python --version) if ("Python ${{ matrix.python }}" -ne "$pythonVersion"){ Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}" exit 1 } $pythonVersion shell: pwsh - name: Run simple code run: python -c 'import math; print(math.factorial(5))' setup-pre-release-version-from-manifest: name: Setup 3.9.0-beta.4 ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, windows-latest, ubuntu-20.04] steps: - name: Checkout uses: actions/checkout@v2 - name: setup-python 3.9.0-beta.4 uses: ./ with: python-version: '3.9.0-beta.4' - name: Validate version run: | $pythonVersion = (python --version) if ("Python 3.9.0b4" -ne "$pythonVersion"){ Write-Host "The current version is $pythonVersion; expected version is 3.9.0b4" exit 1 } $pythonVersion shell: pwsh - name: Run simple code run: python -c 'import math; print(math.factorial(5))'