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