Merge pull request #3514 from native-api/add_macos_26_intel

CI: Add macos_26_intel
This commit is contained in:
native-api 2026-08-08 00:58:10 +03:00 committed by GitHub
commit 17be308600
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,7 +2,7 @@ name: modified_scripts
on: [pull_request]
jobs:
discover_modified_scripts:
runs-on: ubuntu-latest
runs-on: ubuntu-slim
outputs:
versions: ${{steps.modified-versions.outputs.versions}}
versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}}
@ -43,28 +43,32 @@ jobs:
import packaging.version
result=[]
def exclude_macos_intel(result, python_version):
result.append({'os':'macos-15-intel','python-version':python_version})
result.append({'os':'macos-26-intel','python-version':python_version})
for line in os.environ['versions'].splitlines():
if m:=re.match(r'([^-]+)-(\d+\.\d+)-(\d+\.\d+.\d+)', line):
name, version = m.group(1), packaging.version.Version(m.group(3))
if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+\.\d+)', line):
version = packaging.version.Version(m.group(1))
# Miniconda dropped MacOS x64 support
if (name == 'miniconda3' and version >= packaging.version.Version('25.9.1')):
result.append({'os':'macos-15-intel','python-version':line})
if version >= packaging.version.Version('25.9.1'):
exclude_macos_intel(result, line)
if m:=re.match(r'([^-]+)-(\d+\.\d+)', line):
name, version = m.group(1), packaging.version.Version(m.group(2))
if m:=re.match(r'anaconda3-(\d+\.\d+)', line):
version = packaging.version.Version(m.group(1))
# Anaconda dropped MacOS x64 support
if name == 'anaconda3' and version >= packaging.version.Version('2025.12'):
result.append({'os':'macos-15-intel','python-version':line})
if version >= packaging.version.Version('2025.12'):
exclude_macos_intel(result, line)
if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line):
if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+\.\d+)', line):
version = packaging.version.Version(m.group(2))
# GraalPy dropped MacOS x64 support
if version >= packaging.version.Version('25.0.2'):
result.append({'os':'macos-15-intel','python-version':line})
exclude_macos_intel(result, line)
EOF = str(random.getrandbits(15*8))
@ -91,6 +95,7 @@ jobs:
- macos-15
- macos-15-intel
- macos-26
- macos-26-intel
exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}}
runs-on: ${{ matrix.os }}
steps:
@ -153,7 +158,12 @@ jobs:
fail-fast: false
matrix:
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}}
os: ["macos-14", "macos-15", "macos-15-intel"]
os:
- macos-14
- macos-15
- macos-15-intel
- macos-26
- macos-26-intel
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
@ -165,12 +175,7 @@ jobs:
- run: |
#prerequisites
brew install sqlite3 xz tcl-tk@8 libb2 zstd
"$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
export PYENV_BOOTSTRAP_VERSION=pypy2.7-7
echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV
pyenv install $PYENV_BOOTSTRAP_VERSION
fi
"$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?
@ -274,18 +279,13 @@ jobs:
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH
echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_ENV
- run: |
#prerequisites
sudo apt-get update -q; sudo apt-get install -yq make build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
curl llvm libncurses5-dev libncursesw5-dev \
curl libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
export PYENV_BOOTSTRAP_VERSION=pypy2.7-7
echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV
pyenv install $PYENV_BOOTSTRAP_VERSION
fi
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?