Tweak template #1
Workflow file for this run
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' }}) | |
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: | |
- 16 | |
include: | |
- target: i686-pc-windows-msvc/msvc | |
architecture: Win32 | |
runner: windows-latest | |
compiler: msvc | |
- target: x86_64-pc-windows-msvc/msvc | |
architecture: x64 | |
runner: windows-latest | |
compiler: msvc | |
- target: x86_64-apple-darwin/clang | |
architecture: x86_64 | |
runner: macos-latest | |
compiler: clang | |
exclude: test_embed | |
- target: x86_64-unknown-linux-gnu/gcc | |
architecture: x86_64 | |
runner: ubuntu-latest | |
compiler: gcc | |
# - target: aarch64-apple-darwin/clang | |
# architecture: aarch64 | |
# runner: macos-latest | |
# compiler: clang | |
- target: aarch64-unknown-linux-gnu/gcc | |
architecture: aarch64 | |
runner: ubuntu-latest | |
compiler: gcc | |
exclude: test_asyncio test_cmd_line test_concurrent_futures test_faulthandler test_gdb test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_spawn test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_venv | |
- target: aarch64-unknown-linux-gnu/clang | |
architecture: aarch64 | |
runner: ubuntu-latest | |
compiler: clang | |
exclude: test_asyncio test_cmd_line test_concurrent_futures test_faulthandler test_gdb test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_spawn test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_venv | |
# - target: powerpc64le-unknown-linux-gnu/gcc | |
# architecture: ppc64le | |
# runner: ubuntu-latest | |
# compiler: gcc | |
# exclude: test_asyncio test_cmd_line test_concurrent_futures test_faulthandler test_gdb test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_spawn test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_venv | |
- target: x86_64-unknown-linux-gnu/clang | |
architecture: x86_64 | |
runner: ubuntu-latest | |
compiler: clang | |
exclude: test_tools | |
env: | |
CC: ${{ matrix.compiler }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Emulated Linux | |
if: runner.os == 'Linux' && matrix.architecture != 'x86_64' | |
run: | | |
echo "::group::Install LLVM" | |
sudo apt purge --auto-remove llvm python3-lldb-14 llvm-14 | |
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | |
echo "::endgroup::" | |
echo "::group::Configure Python (Build)" | |
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | |
./configure --prefix="$(pwd)/../build" | |
echo "::endgroup::" | |
echo "::group::Build Python (Build)" | |
make install --jobs 2 | |
make clean --jobs 2 | |
echo "::endgroup::" | |
echo "::group::Configure Python (Host)" | |
export HOST=${{ matrix.architecture }}-linux-gnu | |
sudo apt install --yes gcc-$HOST qemu-user | |
${{ !matrix.debug && matrix.compiler == 'clang' && './configure --enable-optimizations' || '' }} | |
${{ !matrix.debug && matrix.compiler == 'clang' && 'make profile-run-stamp --jobs 2' || '' }} | |
export CC="${{ matrix.compiler == 'clang' && 'clang --target=$HOST' || '$HOST-gcc' }}" | |
export CPP="$CC --preprocess" | |
export HOSTRUNNER=qemu-${{ matrix.architecture }} | |
export QEMU_LD_PREFIX="/usr/$HOST" | |
./configure ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }} --build=x86_64-linux-gnu --host=$HOST --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes | |
echo "::endgroup::" | |
echo "::group::Build Python (Host)" | |
make all --jobs 2 | |
echo "::endgroup::" | |
echo "::group::Test Python" | |
./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 apt purge --auto-remove llvm python3-lldb-14 llvm-14 | |
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | |
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 all --jobs 2 | |
echo "::endgroup::" | |
echo "::group::Test Python" | |
./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 all --jobs 3 | |
echo "::endgroup::" | |
echo "::group::Test Python" | |
./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.bat ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }} | |
echo "::endgroup::" | |
echo "::group::Test Python" | |
./PCbuild/rt.bat ${{ matrix.debug && '-d' }} -p ${{ matrix.architecture }} -q --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 3600 --verbose2 --verbose3 | |
echo "::endgroup::" |