Skip to content

🤖 Merge 8.2.x into master #730

🤖 Merge 8.2.x into master

🤖 Merge 8.2.x into master #730

name: manylinux-compatibility
# Ensure that cylc-flow remains installable with manylinx1 binaries for use
# with older systems.
# Ideally we would use the Docker images from PyPa
# (https://github.com/pypa/manylinux).
# The manylinux1 image is based on CentOS=5, glibc=2.5), however, this is so
# old that installing contemporary Python on them is quite hard:
# * native package manager has no package for CentOS5
# * miniforge can't work with glibc < 2.12
# * micromamba can't work with glibc < 2.6
# * need zlib to compile Python / install pip but the package manager can't
# download it because the package stream is offline (past EOL)
# So this will have to do. This isn't a perfect test as non manylinux compat
# packages may attempt to compile from source. This might succeed here but not
# on an older host.
on:
workflow_dispatch:
pull_request:
paths:
- 'setup.py'
- 'setup.cfg'
- '.github/workflows/test_manylinux.yml'
jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
manylinux: ['1']
os: ['ubuntu-20.04'] # run on the oldest linux we have access to
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure git # Needed by the odd test
uses: cylc/release-actions/configure-git@v1
- name: Configure Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Downgrade PIP
run: |
# pip v22+ will fail on error rather than falling back to the
# previous release
# the old behaviour is better for this check
if (( $(pip --version | sed 's/pip \([0-9]*\).*/\1/') >= 22 ))
then
pip install 'pip<22'
fi
- name: Configure Manylinux Compatibility
# Make this platform look older than it is. For info see:
# https://stackoverflow.com/questions/37231799/
# exclude-manylinux-wheels-when-downloading-from-pip
run: |
cat > _manylinux.py <<__HERE__
manylinux1_compatible = False
manylinux2010_compatible = False
manylinux2014_compatible = False
__HERE__
echo \
"manylinux${{ matrix.manylinux }}_compatible = True" \
>> _manylinux.py
- name: Install
timeout-minutes: 35
run: |
PYTHONPATH="$PWD:$PYTHONPATH" pip install ."[all]"
- name: Test Import
shell: python
run: |
import cylc.flow
import cylc.flow.scheduler
- name: Test
timeout-minutes: 5
run: |
pytest -n 5