forked from astropy/astropy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
110 lines (98 loc) · 4.04 KB
/
azure-pipelines.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
# NOTE: this Azure configuration is used only for building the sdist and wheels.
# It uses the OpenAstronomy azure template described in detail at
# https://openastronomy-azure-pipelines.readthedocs.io/en/latest/
resources:
repositories:
- repository: OpenAstronomy
type: github
endpoint: astropy
name: OpenAstronomy/azure-pipelines-templates
ref: master
# NOTE: for now we only use Azure Pipelines on v* branches, tags, and main
# only on a cron for building the source and wheel distributions. If you want to
# make changes to this configuration via a pull request, you can *temporarily*
# change the pr branches include trigger to just '*'
trigger:
branches:
include:
- 'v*'
- main
tags:
include:
- 'v*'
pr:
branches:
include:
- '*'
schedules:
- cron: "0 0 * * *"
displayName: Daily Build for Nightly Wheels
branches:
include:
- main
always: true
# Build Linux wheels using manylinux1 for compatibility with old versions
# of pip and old platforms.
variables:
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
CIBW_ARCHS_LINUX: "auto, aarch64"
CIBW_ARCHS_MACOS: "x86_64 arm64"
# Numpy 1.22 doesn't have wheels for i386, so we pin Numpy to an older version
# that does - this pin can be removed once we drop support for 32-bit wheels.
CIBW_TEST_REQUIRES: "numpy==1.21.*"
CI: true
jobs:
- template: publish.yml@OpenAstronomy
parameters:
# FIXME: we exclude the test_data_out_of_range test since it
# currently fails, see https://github.com/astropy/astropy/issues/10409
test_command: pytest -p no:warnings --astropy-header -m "not hypothesis" -k "not test_data_out_of_range and not test_wcsapi_extension" --pyargs astropy
test_extras: test
# NOTE: for v* tags, we auto-release to PyPI. See
# https://openastronomy-azure-pipelines.readthedocs.io/en/latest/publish.html
# for information on how to configure things on the Azure Pipelines side
${{ if startsWith(variables['Build.SourceBranch'], 'refs/tags/v') }}:
pypi_connection_name : 'pypi_endpoint'
# If the build has run on main then upload the artifacts to the nightly feed
${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
artifact_project : 'astropy'
artifact_feed : 'nightly'
remove_local_scheme: true
targets:
# These builds are run always, to test PRs
# Only run one job on PRs, so exclude musllinux here
- wheels_cp39-manylinux_x86_64
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- sdist
# Linux wheels
- wheels_cp38-manylinux_i686
- wheels_cp39-manylinux_i686
# - wheels_cp310*linux_i686 # We can't build this as PyYAML doesn't have i686 wheels for 3.10 yet so the build takes too long
- wheels_cp38-manylinux_x86_64
- wheels_cp310-manylinux_x86_64
# MacOS X wheels - as noted in https://github.com/astropy/astropy/pull/12379 we deliberately
# do not build universal2 wheels. Note that the arm64 wheels are not actually tested so we
# rely on local manual testing of these to make sure they are ok.
- wheels_cp38*macosx_x86_64
- wheels_cp39*macosx_x86_64
- wheels_cp310*macosx_x86_64
- wheels_cp38*macosx_arm64
- wheels_cp39*macosx_arm64
- wheels_cp310*macosx_arm64
# Windows wheels
- wheels_cp38*win32
- wheels_cp38*win_amd64
- wheels_cp39*win32
- wheels_cp39*win_amd64
- wheels_cp310*win32
- wheels_cp310*win_amd64
# TODO: Add support for musllinux here (which seems to be new in cibuildwheel 2.2)
# This seems to introduce real numerical issues
# - wheels_cp38-musllinux_x86_64
# - wheels_cp39-musllinux_x86_64
# - wheels_cp310-musllinux_x86_64
# TODO: The aarch64 builds take longer than an hour to complete so get killed
# - wheels_cp38-manylinux_aarch64
# - wheels_cp39-manylinux_aarch64
# - wheels_cp310-manylinux_aarch64