forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
165 lines (165 loc) · 7.12 KB
/
jit.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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"
ls "$(llvm-config-${{ matrix.llvm }} --bindir)"
./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::"