Skip to content

Skip problematic tests under emulation #85

Skip problematic tests under emulation

Skip problematic tests under emulation #85

Workflow file for this run

name: JIT
on: push
jobs:
jit:
name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}, LLVM ${{ matrix.llvm }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
target:
- i686-pc-windows-msvc/msvc
- x86_64-pc-windows-msvc/msvc
- x86_64-apple-darwin/clang
- x86_64-unknown-linux-gnu/gcc
# - aarch64-apple-darwin/clang
- aarch64-unknown-linux-gnu/gcc
- aarch64-unknown-linux-gnu/clang
# - powerpc64le-unknown-linux-gnu/gcc
- x86_64-unknown-linux-gnu/clang
debug:
- true
- false
llvm:
- 14
- 15
- 16
include:
- target: i686-pc-windows-msvc/msvc
architecture: Win32
runner: windows-latest
compiler: msvc
tier: 1
- target: x86_64-pc-windows-msvc/msvc
architecture: x64
runner: windows-latest
compiler: msvc
tier: 1
- target: x86_64-apple-darwin/clang
architecture: x86_64
runner: macos-latest
compiler: clang
tier: 1
- target: x86_64-unknown-linux-gnu/gcc
architecture: x86_64
runner: ubuntu-latest
compiler: gcc
tier: 1
# - target: aarch64-apple-darwin/clang
# architecture: aarch64
# runner: macos-latest
# compiler: clang
# tier: 2
- target: aarch64-unknown-linux-gnu/gcc
architecture: aarch64
runner: ubuntu-latest
compiler: gcc
tier: 2
exclude: test_cmd_line test_concurrent_futures test_eintr test_faulthandler test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_tools
- target: aarch64-unknown-linux-gnu/clang
architecture: aarch64
runner: ubuntu-latest
compiler: clang
tier: 2
exclude: test_cmd_line test_concurrent_futures test_eintr test_faulthandler test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_tools
# - target: powerpc64le-unknown-linux-gnu/gcc
# architecture: ppc64le
# runner: ubuntu-latest
# compiler: gcc
# tier: 2
# exclude: test_cmd_line test_concurrent_futures test_eintr test_faulthandler test_os test_posix test_signal test_socket test_subprocess test_tools
- target: x86_64-unknown-linux-gnu/clang
architecture: x86_64
runner: ubuntu-latest
compiler: clang
tier: 2
exclude: test_tools
# exclude:
# # Can't find LLVM 16:
# - target: powerpc64le-unknown-linux-gnu/gcc
# llvm: 16
env:
CC: ${{ matrix.compiler }}
PYTHON_LLVM_VERSION: ${{ matrix.llvm }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Emulated Linux
if: runner.os == 'Linux' && matrix.architecture != 'x86_64'
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.architecture }}
distro: ubuntu_latest
env: |
CC: ${{ matrix.compiler }}
PYTHON_LLVM_VERSION: ${{ matrix.llvm }}
install: |
echo "::group::Install LLVM"
apt update --yes
apt install --yes build-essential gnupg lsb-release sudo software-properties-common wget zlib1g-dev
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
${{ matrix.debug == false && matrix.llvm == 14 && matrix.compiler == 'clang' && 'apt install --yes libclang-rt-14-dev' || '' }}
echo "::endgroup::"
run: |
echo "::group::Configure Python"
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
./configure ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
echo "::endgroup::"
echo "::group::Build Python"
make --jobs 2
echo "::endgroup::"
echo "::group::Test Python"
./python -c 'import sys; assert sys._support_tier == ${{ matrix.tier }}, sys._support_tier'
./python -m test --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 3600 --verbose2 --verbose3
echo "::endgroup::"
- name: Native Linux
if: runner.os == 'Linux' && matrix.architecture == 'x86_64'
run: |
echo "::group::Install LLVM"
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
${{ matrix.debug == false && matrix.llvm == 14 && matrix.compiler == 'clang' && 'sudo apt install --yes libclang-rt-14-dev' || '' }}
echo "::endgroup::"
echo "::group::Configure Python"
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
./configure ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
echo "::endgroup::"
echo "::group::Build Python"
make --jobs 2
echo "::endgroup::"
echo "::group::Test Python"
./python -c 'import sys; assert sys._support_tier == ${{ matrix.tier }}, sys._support_tier'
./python -m test --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 3600 --verbose2 --verbose3
echo "::endgroup::"
- name: macOS
if: runner.os == 'macOS'
run: |
echo "::group::Install LLVM"
brew install llvm@${{ matrix.llvm }}
export SDKROOT="$(xcrun --show-sdk-path)"
echo "::endgroup::"
echo "::group::Configure Python"
./configure ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
echo "::endgroup::"
echo "::group::Build Python"
make --jobs 3
echo "::endgroup::"
echo "::group::Test Python"
./python.exe -c 'import sys; assert sys._support_tier == ${{ matrix.tier }}, sys._support_tier'
./python.exe -m test --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 3600 --verbose2 --verbose3
echo "::endgroup::"
- name: Windows
if: runner.os == 'Windows'
run: |
echo "::group::Install LLVM"
choco install llvm --allow-downgrade --version ${{ matrix.llvm }}
echo "::endgroup::"
echo "::group::Build Python"
./PCbuild/build ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
echo "::endgroup::"
echo "::group::Test Python"
./python -c 'import sys; assert sys._support_tier == ${{ matrix.tier }}, sys._support_tier'
./PCbuild/rt ${{ matrix.debug && '-d' }} -p ${{ matrix.architecture }} -q --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 3600 --verbose2 --verbose3
echo "::endgroup::"