10
10
PYTHON_DEFAULT_VERSION : " 3.12"
11
11
12
12
jobs :
13
- lint :
14
- runs-on : ubuntu-latest
15
- steps :
16
- - uses : actions/checkout@v3
17
- with :
18
- fetch-depth : 0
19
- - uses : codespell-project/actions-codespell@2391250ab05295bddd51e36a8c6295edb6343b0e
20
- with :
21
- ignore_words_list : datas re-use
22
- - name : Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
23
- uses : actions/setup-python@v4
24
- with :
25
- python-version : ${{ env.PYTHON_DEFAULT_VERSION }}
26
- - name : Install dependencies
27
- run : python -m pip install --upgrade nox pip setuptools
28
- - name : Run linters
29
- run : nox -vs lint
30
- - name : Validate new changelog entries
31
- if : (contains(github.event.pull_request.labels.*.name, '-changelog') == false) && (github.event.pull_request.base.ref != '')
32
- run : if [ -z "$(git diff --diff-filter=A --name-only origin/${{ github.event.pull_request.base.ref }} changelog.d)" ];
33
- then echo no changelog item added; exit 1; fi
34
- - name : Changelog validation
35
- run : nox -vs towncrier_check
36
- build :
37
- needs : lint
38
- runs-on : ubuntu-latest
39
- steps :
40
- - uses : actions/checkout@v3
41
- with :
42
- fetch-depth : 0
43
- - name : Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
44
- uses : actions/setup-python@v4
45
- with :
46
- python-version : ${{ env.PYTHON_DEFAULT_VERSION }}
47
- - name : Install dependencies
48
- run : python -m pip install --upgrade nox pip setuptools
49
- - name : Build the distribution
50
- run : nox -vs build >> $GITHUB_OUTPUT
51
13
cleanup_buckets :
52
- needs : lint
53
14
env :
54
15
B2_TEST_APPLICATION_KEY : ${{ secrets.B2_TEST_APPLICATION_KEY }}
55
16
B2_TEST_APPLICATION_KEY_ID : ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
@@ -71,169 +32,27 @@ jobs:
71
32
- name : Find and remove old buckets
72
33
if : ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }} # TODO: skip this whole job instead
73
34
run : nox -vs cleanup_buckets
74
- test :
75
- needs : cleanup_buckets
76
- env :
77
- B2_TEST_APPLICATION_KEY : ${{ secrets.B2_TEST_APPLICATION_KEY }}
78
- B2_TEST_APPLICATION_KEY_ID : ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
79
- runs-on : ${{ matrix.os }}
80
- strategy :
81
- fail-fast : false
82
- matrix :
83
- os : ["ubuntu-latest", "macos-latest", "windows-latest"]
84
- # pypy version pin was required due 7.3.13 being broken https://foss.heptapod.net/pypy/pypy/-/issues/4021
85
- python-version : ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "pypy-3.10-nightly"]
86
- exclude :
87
- - os : " macos-latest"
88
- python-version : " pypy-3.10-nightly"
89
- - os : " windows-latest"
90
- python-version : " pypy-3.10-nightly"
91
- steps :
92
- - uses : actions/checkout@v3
93
- with :
94
- fetch-depth : 0
95
- - name : Set up Python ${{ matrix.python-version }}
96
- uses : actions/setup-python@v4
97
- with :
98
- python-version : ${{ matrix.python-version }}
99
- - name : Install dependencies
100
- run : python -m pip install --upgrade nox pip setuptools
101
- - name : Run unit tests
102
- run : nox -vs unit
103
- - name : Run integration tests (without secrets)
104
- run : nox -vs integration -- -m "not require_secrets"
105
- - name : Run integration tests (with secrets)
106
- # Limit CI workload by running integration tests with secrets only on edge Python versions.
107
- if : ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' && contains(fromJSON('["3.7", "pypy-3.10-nightly", "3.12"]'), matrix.python-version) }}
108
- run : nox -vs integration -- -m "require_secrets" --cleanup
109
- test-docker :
35
+ test-nuitka :
110
36
needs : cleanup_buckets
111
37
env :
112
38
B2_TEST_APPLICATION_KEY : ${{ secrets.B2_TEST_APPLICATION_KEY }}
113
39
B2_TEST_APPLICATION_KEY_ID : ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
114
- runs-on : ubuntu -latest
40
+ runs-on : macos -latest
115
41
steps :
116
42
- uses : actions/checkout@v3
117
43
with :
118
44
fetch-depth : 0
119
- - name : Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
45
+ - name : Set up Python 3.11
120
46
uses : actions/setup-python@v4
121
47
with :
122
- python-version : ${{ env.PYTHON_DEFAULT_VERSION }}
123
- - name : setup sudo NOX_PYTHONS
124
- run : echo NOX_PYTHONS=$(sudo python3 --version | cut -d ' ' -f 2) >> "$GITHUB_ENV"
125
- - name : Install dependencies
126
- run : sudo python -m pip install --upgrade nox pip setuptools
127
- - name : Generate Dockerfile
128
- run : nox -vs generate_dockerfile
129
- - name : Set up QEMU
130
- uses : docker/setup-qemu-action@v2
131
- - name : Set up Docker Buildx
132
- uses : docker/setup-buildx-action@v2
133
- - name : Build Docker
134
- uses : docker/build-push-action@v5
135
- with :
136
- context : .
137
- load : true
138
- tags : backblazeit/b2:test
139
- platforms : linux/amd64
140
- - name : Run tests with docker
141
- if : ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}
142
- run : sudo NOX_PYTHONS=$NOX_PYTHONS B2_TEST_APPLICATION_KEY=${{ env.B2_TEST_APPLICATION_KEY }} B2_TEST_APPLICATION_KEY_ID=${{ env.B2_TEST_APPLICATION_KEY_ID }} nox -vs docker_test -- backblazeit/b2:test
143
- test-linux-bundle :
144
- needs : cleanup_buckets
145
- env :
146
- B2_TEST_APPLICATION_KEY : ${{ secrets.B2_TEST_APPLICATION_KEY }}
147
- B2_TEST_APPLICATION_KEY_ID : ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
148
- runs-on : ubuntu-latest
149
- container :
150
- image : " python:3.12" # can not use ${{ env.PYTHON_DEFAULT_VERSION }} here
151
- env :
152
- DEBIAN_FRONTEND : noninteractive
153
- steps :
154
- - uses : actions/checkout@v3
155
- with :
156
- fetch-depth : 0
48
+ python-version : 3.11
157
49
- name : Install dependencies
158
50
run : |
159
- apt-get -y update
160
- apt-get -y install patchelf
161
- python -m pip install --upgrade nox pip setuptools
162
- git config --global --add safe.directory '*'
163
- - name : Bundle the distribution
164
- id : bundle
165
- run : nox -vs bundle >> $GITHUB_OUTPUT
166
- - name : Generate hashes
167
- id : hashes
168
- run : nox -vs make_dist_digest
169
- - name : Run integration tests (without secrets)
170
- run : nox -vs integration -- -m "not require_secrets"
171
- - name : Run integration tests (with secrets)
172
- if : ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}
173
- run : nox -vs integration -- --sut=${{ steps.bundle.outputs.sut_path }} -m "require_secrets" --cleanup
174
- - name : Upload assets
175
- if : failure()
176
- uses : actions/upload-artifact@v2
177
- with :
178
- path : ${{ steps.bundle.outputs.asset_path }}
179
- if-no-files-found : warn
180
- retention-days : 7
181
- test-windows-bundle :
182
- needs : cleanup_buckets
183
- env :
184
- B2_TEST_APPLICATION_KEY : ${{ secrets.B2_TEST_APPLICATION_KEY }}
185
- B2_TEST_APPLICATION_KEY_ID : ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
186
- runs-on : ${{ matrix.os }}
187
- strategy :
188
- fail-fast : false
189
- matrix :
190
- os : [windows-2019, windows-latest]
191
- steps :
192
- - uses : actions/checkout@v3
193
- with :
194
- fetch-depth : 0
195
- - name : Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
196
- uses : actions/setup-python@v4
197
- with :
198
- python-version : ${{ env.PYTHON_DEFAULT_VERSION }}
199
- - name : Install dependencies
200
- run : python -m pip install --upgrade nox pip setuptools
201
- - name : Bundle the distribution
51
+ python -m pip install --upgrade nox pip setuptools nuitka
52
+ python -m pip install .
53
+ - name : Build
202
54
id : bundle
203
- shell : bash
204
- run : nox -vs bundle >> $GITHUB_OUTPUT
205
- - name : Generate hashes
206
- id : hashes
207
- run : nox -vs make_dist_digest
208
- - name : Run integration tests (without secrets)
209
- run : nox -vs integration -- -m "not require_secrets"
55
+ run : python -m nuitka --assume-yes-for-downloads --onefile b2_main.py
210
56
- name : Run integration tests (with secrets)
211
57
if : ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}
212
- run : nox -vs integration -- --sut=${{ steps.bundle.outputs.sut_path }} -m "require_secrets" --cleanup
213
- - name : Upload assets
214
- if : failure()
215
- uses : actions/upload-artifact@v2
216
- with :
217
- path : ${{ steps.bundle.outputs.asset_path }}
218
- if-no-files-found : warn
219
- retention-days : 7
220
- doc :
221
- needs : build
222
- runs-on : ubuntu-latest
223
- steps :
224
- - uses : actions/checkout@v3
225
- with :
226
- fetch-depth : 0
227
- - name : Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
228
- uses : actions/setup-python@v4
229
- with :
230
- python-version : ${{ env.PYTHON_DEFAULT_VERSION }}
231
- - name : Install dependencies
232
- env :
233
- DEBIAN_FRONTEND : noninteractive
234
- run : |
235
- sudo apt-get update -y
236
- sudo apt-get install -y graphviz plantuml
237
- python -m pip install --upgrade nox pip setuptools
238
- - name : Build the docs
239
- run : nox --non-interactive -vs doc
58
+ run : nox -vs integration -- --sut="$PWD"b2_main.bin -m "require_secrets" --cleanup
0 commit comments