The struggle continues... #92
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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::" |