diff --git a/.github/workflows/test-publish.yaml b/.github/workflows/test-publish.yaml index 87ca1ffe..5de60e53 100644 --- a/.github/workflows/test-publish.yaml +++ b/.github/workflows/test-publish.yaml @@ -12,22 +12,14 @@ jobs: not_in_aarch64: "['2.7', '3.5', 'pypy3.7']" strategy: + fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest] python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "pypy3.7"] include: - os: ubuntu-latest os-name: Linux pip-cache-path: ~/.cache/pip - - os: macos-latest - os-name: MacOS - pip-cache-path: ~/Library/Caches/pip - - os: windows-latest - os-name: w32 - pip-cache-path: ~\AppData\Local\pip\Cache - exclude: - - os: windows-latest - python-version: "pypy3.7" name: Python ${{ matrix.python-version }} @ ${{ matrix.os-name }} runs-on: ${{ matrix.os }} @@ -35,100 +27,6 @@ jobs: steps: - uses: actions/checkout@v4 - # Setup Python/pip - - uses: actions/checkout@v4 - - uses: s-weigand/setup-conda@v1 - with: - conda-channels: conda-forge - python-version: ${{ matrix.python-version }} - if: ${{ !contains(fromJSON(env.not_in_conda), matrix.python-version) }} - # Python 3.7 is needed for ghactions-release script - - name: Install additional Python 3.7 - run: | - conda create -n py37 python=3.7 - py37_prefix="`echo $CONDA_PREFIX | sed 's/__setup_conda/py37/'`" - ln -s "$py37_prefix/bin/python" "$CONDA_PREFIX/bin/python3.7" - ln -s "$py37_prefix/bin/pip" "$CONDA_PREFIX/bin/pip3.7" - shell: bash - if: ${{ matrix.python-version == '2.7' && runner.os != 'Windows' && startsWith(github.ref, 'refs/tags/') }} - - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - if: ${{ contains(fromJSON(env.not_in_conda), matrix.python-version) }} - - name: Cache pip - uses: actions/cache@v3 - with: - path: ${{ matrix.pip-cache-path }} - key: ${{ runner.os }}-pip - - # Setup tox - - name: Install dependencies - run: | - python --version - python -m pip || python -m ensurepip --default-pip --upgrade - python -m pip install --upgrade pip setuptools wheel - pip --version - pip install --upgrade virtualenv "tox >= 3.15, < 4" - - name: Set TOXENV - run: | - import os, sys - ld_library_path = None - if hasattr(sys, 'pypy_version_info'): - toxenv = 'pypy3' - else: - pyver = '%d%d' % tuple(sys.version_info[:2]) - if os.name == 'posix': - if pyver == '27': # Python 2.7 on Linux requires `$LD_LIBRARY_PATH` - ld_library_path = os.path.join( - os.path.dirname(os.path.dirname(sys.executable)), 'lib') - toxenv = 'py%s' % pyver - if os.name == 'posix': - toxenv += ',py%s-flake8' % pyver - with open(os.environ['GITHUB_ENV'], 'a') as f: - if ld_library_path: - f.write('LD_LIBRARY_PATH=' + ld_library_path + '\n') - f.write('TOXENV=' + toxenv + '\n') - print(toxenv) - shell: python - - - name: Run tox - run: | - python -c "import os; print(os.environ['TOXENV'])" - tox --version - tox - - - name: Build and publish sdist and wheel on Unix - run: | - pip install -U --ignore-installed certifi # Replace conda-installed - devscripts/CI/ghactions-release - env: - TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} - TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} - if: ${{ runner.os != 'Windows' && startsWith(github.ref, 'refs/tags/') }} - - name: Build and publish wheel on w32 - run: | - pip install -U pip setuptools twine wheel - python setup.py bdist_wheel - twine upload --disable-progress-bar --skip-existing dist\* - if: ${{ runner.os == 'Windows' && startsWith(github.ref, 'refs/tags/') }} - env: - TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} - TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} - - name: Publish wheel to Releases - uses: ncipollo/release-action@v1 - with: - artifacts: "dist/*" - allowUpdates: true - bodyFile: "LATEST-CHANGES.rst" - omitBodyDuringUpdate: true - omitNameDuringUpdate: true - omitPrereleaseDuringUpdate: true - prerelease: false - replacesArtifacts: false - skipIfReleaseExists: false - updateOnlyUnreleased: false - if: ${{ startsWith(github.ref, 'refs/tags/') }} - - name: Build on Linux/aarch64 uses: uraimo/run-on-arch-action@v2 with: