-
Notifications
You must be signed in to change notification settings - Fork 0
115 lines (98 loc) · 3.78 KB
/
python-nightly.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
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
name: "Python Nightly Tests"
on:
push:
branches:
- "**/*nightly*"
schedule:
# Run at 2:22am early every morning Eastern time (6/7:22 UTC)
# so that we get tips of CPython development tested.
# https://crontab.guru/#22_7_%2a_%2a_%2a
- cron: "22 7 * * *"
workflow_dispatch:
defaults:
run:
shell: bash
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
LOCK_SUFFIX: ${{ vars.DRAINSWAMP_SET_LOCK == '1' && '.lock' || '.unlock' }}
permissions:
contents: read
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
tests:
name: "${{ matrix.python-version }} on ${{ matrix.os-short }}"
runs-on: "${{ matrix.os }}"
# If it doesn't finish in an hour, it's not going to. Don't spin for six
# hours needlessly.
timeout-minutes: 60
strategy:
matrix:
os:
# Choose a recent Ubuntu that deadsnakes still builds all the versions for.
# For example, deadsnakes doesn't provide 3.10 nightly for 22.04 (jammy)
# because jammy ships 3.10, and deadsnakes doesn't want to clobber it.
# https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
# https://github.com/deadsnakes/issues/issues/234
# See https://github.com/deadsnakes/nightly for the source of the nightly
# builds.
# bionic: 18, focal: 20, jammy: 22, noble: 24
- "ubuntu-22.04"
os-short:
- "ubuntu"
python-version:
# When changing this list, be sure to check the [gh] list in
# tox.ini so that tox will run properly. PYVERSIONS
# Available versions:
# https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
# https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
- "3.12"
- "3.13"
# - "3.14-full"
# https://github.com/actions/setup-python#available-versions-of-pypy
- "pypy-3.9-nightly"
- "pypy-3.10-nightly"
fail-fast: false
steps:
- name: "Check out the repo"
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Get latest tag
id: vars
run: |
echo "tag=$(git describe --tags)" >> $GITHUB_OUTPUT
- name: "Install ${{ matrix.python-version }} with deadsnakes"
uses: deadsnakes/action@92fe45d56d7f36bed36f609fa2bf75b8bf256bd8 # v3.1.0
if: "!startsWith(matrix.python-version, 'pypy-')"
with:
python-version: "${{ matrix.python-version }}"
- name: "Install ${{ matrix.python-version }} with setup-python"
uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1
if: "startsWith(matrix.python-version, 'pypy-')"
with:
python-version: "${{ matrix.python-version }}"
- name: "Show diagnostic info"
run: |
set -xe
python -VV
python -m site
env
- name: "Install dependencies -- tests"
run: |
python -m pip install -r requirements/tox$LOCK_SUFFIX
python -m pip install -r requirements/prod$LOCK_SUFFIX
- name: "Install dependencies -- build"
run: |
python -m pip install -r requirements/kit$LOCK_SUFFIX
- name: build
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
SET_LOCK: ${{ vars.DRAINSWAMP_SET_LOCK }}
run: |
echo "python -m build -C--kind=$RELEASE_VERSION -C--set-lock=$SET_LOCK"
python -m build -C--kind="$RELEASE_VERSION" -C--set-lock="$SET_LOCK"
- name: "Run tox"
run: |
python -m tox -c tox-test.ini -- -rfsEX