Skip to content

Commit c69b208

Browse files
committed
Add ARM64 jobs in Travis-CI
1 parent 0371125 commit c69b208

File tree

3 files changed

+112
-23
lines changed

3 files changed

+112
-23
lines changed

.travis.yml

Lines changed: 87 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ dist: xenial
33
cache: false
44
env:
55
global:
6-
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
76
- SEGFAULT_SIGNALS=all
87
- TWINE_USERNAME=ionel
98
matrix:
@@ -18,75 +17,140 @@ matrix:
1817
language: generic
1918
env:
2019
- TOXENV=py27-cover
21-
- env:
20+
- arch: amd64
21+
env:
22+
- TOXENV=py27-cover,codecov,extension-coveralls,coveralls
23+
python: '2.7'
24+
- arch: arm64
25+
env:
2226
- TOXENV=py27-cover,codecov,extension-coveralls,coveralls
2327
python: '2.7'
2428
- os: osx
2529
language: generic
2630
env:
2731
- TOXENV=py27-nocov
2832
- WHEEL_PATH=.tox/dist
29-
- env:
33+
- arch: amd64
34+
env:
3035
- TOXENV=py27-nocov
3136
- WHEEL_MANYLINUX1=cp27
3237
- WHEEL_PATH=wheelhouse
3338
python: '2.7'
34-
- env:
39+
- arch: arm64
40+
env:
41+
- TOXENV=py27-nocov
42+
- WHEEL_PATH=.tox/dist
43+
python: '2.7'
44+
- arch: amd64
45+
env:
46+
- TOXENV=py35-cover,codecov,extension-coveralls,coveralls
47+
python: '3.5'
48+
- arch: arm64
49+
env:
3550
- TOXENV=py35-cover,codecov,extension-coveralls,coveralls
3651
python: '3.5'
37-
- env:
52+
- arch: amd64
53+
env:
3854
- TOXENV=py35-nocov
3955
- WHEEL_MANYLINUX1=cp35
4056
- WHEEL_PATH=wheelhouse
4157
python: '3.5'
42-
- env:
58+
- arch: arm64
59+
env:
60+
- TOXENV=py35-nocov
61+
- WHEEL_PATH=.tox/dist
62+
python: '3.5'
63+
- arch: amd64
64+
env:
4365
- TOXENV=py36-cover,codecov,extension-coveralls,coveralls
4466
python: '3.6'
45-
- env:
67+
- arch: arm64
68+
env:
69+
- TOXENV=py36-cover,codecov,extension-coveralls,coveralls
70+
python: '3.6'
71+
- arch: amd64
72+
env:
4673
- TOXENV=py36-nocov
4774
- WHEEL_MANYLINUX1=cp36
4875
- WHEEL_PATH=wheelhouse
4976
python: '3.6'
77+
- arch: arm64
78+
env:
79+
- TOXENV=py36-nocov
80+
- WHEEL_PATH=.tox/dist
81+
python: '3.6'
5082
- os: osx
5183
language: generic
5284
env:
5385
- TOXENV=py37-cover
54-
- env:
86+
- arch: amd64
87+
env:
88+
- TOXENV=py37-cover,codecov,extension-coveralls,coveralls
89+
python: '3.7'
90+
- arch: arm64
91+
env:
5592
- TOXENV=py37-cover,codecov,extension-coveralls,coveralls
5693
python: '3.7'
5794
- os: osx
5895
language: generic
5996
env:
6097
- TOXENV=py37-nocov
6198
- WHEEL_PATH=.tox/dist
62-
- env:
99+
- arch: amd64
100+
env:
63101
- TOXENV=py37-nocov
64102
- WHEEL_MANYLINUX1=cp37
65103
- WHEEL_PATH=wheelhouse
66104
python: '3.7'
67-
- env:
105+
- arch: arm64
106+
env:
107+
- TOXENV=py37-nocov
108+
- WHEEL_PATH=.tox/dist
109+
python: '3.7'
110+
- arch: amd64
111+
env:
112+
- TOXENV=py38-cover,codecov,extension-coveralls,coveralls
113+
python: '3.8'
114+
- arch: arm64
115+
env:
68116
- TOXENV=py38-cover,codecov,extension-coveralls,coveralls
69117
python: '3.8'
70-
- env:
118+
- arch: amd64
119+
env:
71120
- TOXENV=py38-nocov
72121
- WHEEL_MANYLINUX1=cp38
73122
- WHEEL_PATH=wheelhouse
74123
python: '3.8'
75-
- env:
124+
- arch: arm64
125+
env:
126+
- TOXENV=py38-nocov
127+
- WHEEL_PATH=.tox/dist
128+
python: '3.8'
129+
- arch: amd64
130+
env:
76131
- TOXENV=pypy-cover,codecov,extension-coveralls,coveralls
77132
python: 'pypy'
78-
- env:
133+
- arch: amd64
134+
env:
79135
- TOXENV=pypy-nocov
80136
python: 'pypy'
81-
- env:
137+
- arch: amd64
138+
env:
82139
- TOXENV=pypy3-cover,codecov,extension-coveralls,coveralls
83140
- TOXPYTHON=pypy3
84141
python: 'pypy3'
85-
- env:
142+
- arch: amd64
143+
env:
86144
- TOXENV=pypy3-nocov
87145
- TOXPYTHON=pypy3
88146
python: 'pypy3'
89147
before_install:
148+
- |
149+
if [[ ${TRAVIS_CPU_ARCH} == "arm64" ]]; then
150+
export LD_PRELOAD=/lib/aarch64-linux-gnu/libSegFault.so
151+
else
152+
export LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
153+
fi
90154
- python --version
91155
- uname -a
92156
- lsb_release -a || true
@@ -114,12 +178,18 @@ script:
114178
tox -v
115179
fi
116180
if [[ -n ${WHEEL_PATH:-} ]]; then
181+
if [[ ${TRAVIS_CPU_ARCH} == "arm64" ]]; then
182+
sudo apt-get install patchelf
183+
python3 -mpip install --progress-bar=off auditwheel
184+
python3 -m auditwheel repair $WHEEL_PATH/*.whl -w $WHEEL_PATH/
185+
rm -rf $WHEEL_PATH/*linux_aarch64.whl
186+
fi
117187
twine upload --repository-url https://test.pypi.org/legacy/ --skip-existing $WHEEL_PATH/*.whl
118188
fi
119189
)
120190
after_failure:
121-
- more .tox/log/* | cat
122-
- more .tox/*/log/* | cat
191+
- travis_wait 15 more .tox/log/* | cat
192+
- travis_wait 15 more .tox/*/log/* | cat
123193
notifications:
124194
email:
125195
on_success: never

ci/bootstrap.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,11 @@ def main():
6969
for line in subprocess.check_output([sys.executable, '-m', 'tox', '--listenvs'], universal_newlines=True).splitlines()
7070
]
7171
tox_environments = [line for line in tox_environments if line.startswith('py')]
72+
architecture = ['amd64', 'arm64']
7273

7374
for name in os.listdir(join("ci", "templates")):
7475
with open(join(base_path, name), "w") as fh:
75-
fh.write(jinja.get_template(name).render(tox_environments=tox_environments))
76+
fh.write(jinja.get_template(name).render(tox_environments=tox_environments, architecture=architecture))
7677
print("Wrote {}".format(name))
7778
print("DONE.")
7879

ci/templates/.travis.yml

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ dist: xenial
33
cache: false
44
env:
55
global:
6-
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
76
- SEGFAULT_SIGNALS=all
87
- TWINE_USERNAME=ionel
98
matrix:
@@ -24,11 +23,16 @@ matrix:
2423
- WHEEL_PATH=.tox/dist
2524
{%- endif %}
2625
{%- endif %}{{ '' }}
27-
- env:
26+
{%- for arch in architecture %}{{ '' }}
27+
{%- if 'arm64' not in arch or 'pypy' not in env %}{{ '' }}
28+
- arch: {{ arch }}
29+
env:
2830
- TOXENV={{ env }}{% if 'cover' in env %},codecov,extension-coveralls,coveralls{% endif %}
29-
{%- if 'pypy' not in env and 'nocov' in env %}{{ '' }}
31+
{%- if 'pypy' not in env and 'nocov' in env and 'arm64' not in arch %}{{ '' }}
3032
- WHEEL_MANYLINUX1=cp{{ env.split('-')[0][2:] }}
3133
- WHEEL_PATH=wheelhouse
34+
{%- elif 'pypy' not in env and 'nocov' in env and 'arm64' in arch %}{{ '' }}
35+
- WHEEL_PATH=.tox/dist
3236
{%- endif %}
3337
{%- if env.startswith('pypy3') %}{{ '' }}
3438
- TOXPYTHON=pypy3
@@ -38,8 +42,16 @@ matrix:
3842
{%- else %}{{ '' }}
3943
python: '{{ '{0[2]}.{0[3]}'.format(env) }}'
4044
{%- endif %}
45+
{%- endif %}{{ '' }}
46+
{%- endfor %}{{ '' }}
4147
{%- endfor %}{{ '' }}
4248
before_install:
49+
- |
50+
if [[ ${TRAVIS_CPU_ARCH} == "arm64" ]]; then
51+
export LD_PRELOAD=/lib/aarch64-linux-gnu/libSegFault.so
52+
else
53+
export LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
54+
fi
4355
- python --version
4456
- uname -a
4557
- lsb_release -a || true
@@ -67,12 +79,18 @@ script:
6779
tox -v
6880
fi
6981
if [[ -n ${WHEEL_PATH:-} ]]; then
82+
if [[ ${TRAVIS_CPU_ARCH} == "arm64" ]]; then
83+
sudo apt-get install patchelf
84+
python3 -mpip install --progress-bar=off auditwheel
85+
python3 -m auditwheel repair $WHEEL_PATH/*.whl -w $WHEEL_PATH/
86+
rm -rf $WHEEL_PATH/*linux_aarch64.whl
87+
fi
7088
twine upload --repository-url https://test.pypi.org/legacy/ --skip-existing $WHEEL_PATH/*.whl
7189
fi
7290
)
7391
after_failure:
74-
- more .tox/log/* | cat
75-
- more .tox/*/log/* | cat
92+
- travis_wait 15 more .tox/log/* | cat
93+
- travis_wait 15 more .tox/*/log/* | cat
7694
notifications:
7795
email:
7896
on_success: never

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy