scriptworker 63.4.1__tar.gz → 63.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scriptworker-63.4.1 → scriptworker-63.4.2}/HISTORY.rst +8 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/PKG-INFO +1 -1
- {scriptworker-63.4.1 → scriptworker-63.4.2}/pyproject.toml +1 -1
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/artifacts.py +4 -34
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/cot/verify.py +5 -1
- {scriptworker-63.4.1 → scriptworker-63.4.2}/.gitignore +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/CONTRIBUTING.rst +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/LICENSE +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/README.rst +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/renovate.json +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/scripts/gen_ed25519_key.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/scriptworker.yaml.tmpl +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/__init__.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/client.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/config.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/constants.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/context.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/cot/__init__.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/cot/generate.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/data/cot_v1_schema.json +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/data/scriptworker_task_schema.json +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/ed25519.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/exceptions.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/github.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/log.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/task.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/task_process.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/utils.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/worker.py +0 -0
- {scriptworker-63.4.1 → scriptworker-63.4.2}/tox.ini +0 -0
|
@@ -4,6 +4,14 @@ Change Log
|
|
|
4
4
|
All notable changes to this project will be documented in this file.
|
|
5
5
|
This project adheres to `Semantic Versioning <http://semver.org/>`__.
|
|
6
6
|
|
|
7
|
+
63.4.2 - 2026-08-12
|
|
8
|
+
|
|
9
|
+
Fixed
|
|
10
|
+
~~~~~
|
|
11
|
+
|
|
12
|
+
- Reverted #815 for permanent bustage when uploading logs (#821)
|
|
13
|
+
- Don't raise on mismatched source if no repositories configured (#820)
|
|
14
|
+
|
|
7
15
|
63.4.1 - 2026-08-11
|
|
8
16
|
-------------------
|
|
9
17
|
|
|
@@ -6,7 +6,6 @@ in S3.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import asyncio
|
|
9
|
-
import base64
|
|
10
9
|
import fnmatch
|
|
11
10
|
import gzip
|
|
12
11
|
import logging
|
|
@@ -22,15 +21,7 @@ from taskcluster.exceptions import TaskclusterFailure
|
|
|
22
21
|
from scriptworker.client import validate_artifact_url
|
|
23
22
|
from scriptworker.exceptions import DownloadError, ScriptWorkerRetryException, ScriptWorkerTaskException
|
|
24
23
|
from scriptworker.task import get_decision_task_id, get_run_id, get_task_id
|
|
25
|
-
from scriptworker.utils import
|
|
26
|
-
add_enumerable_item_to_dict,
|
|
27
|
-
download_file,
|
|
28
|
-
get_hash,
|
|
29
|
-
get_loggable_url,
|
|
30
|
-
raise_future_exceptions,
|
|
31
|
-
retry_async,
|
|
32
|
-
semaphore_wrapper,
|
|
33
|
-
)
|
|
24
|
+
from scriptworker.utils import add_enumerable_item_to_dict, download_file, get_loggable_url, raise_future_exceptions, retry_async, semaphore_wrapper
|
|
34
25
|
|
|
35
26
|
log = logging.getLogger(__name__)
|
|
36
27
|
|
|
@@ -172,8 +163,6 @@ async def create_artifact(context, path, target_path, content_type, content_enco
|
|
|
172
163
|
payload = {"storageType": storage_type, "expires": expires or get_expiration_arrow(context).isoformat(), "contentType": content_type}
|
|
173
164
|
args = [get_task_id(context.claim_task), get_run_id(context.claim_task), target_path, payload]
|
|
174
165
|
|
|
175
|
-
content_md5 = await asyncio.to_thread(get_content_md5, path)
|
|
176
|
-
|
|
177
166
|
tc_response = await context.temp_queue.createArtifact(*args)
|
|
178
167
|
skip_auto_headers = [aiohttp.hdrs.CONTENT_TYPE]
|
|
179
168
|
loggable_url = get_loggable_url(tc_response["putUrl"])
|
|
@@ -183,7 +172,7 @@ async def create_artifact(context, path, target_path, content_type, content_enco
|
|
|
183
172
|
async with context.session.put(
|
|
184
173
|
tc_response["putUrl"],
|
|
185
174
|
data=fh,
|
|
186
|
-
headers=_craft_artifact_put_headers(content_type,
|
|
175
|
+
headers=_craft_artifact_put_headers(content_type, content_encoding),
|
|
187
176
|
skip_auto_headers=skip_auto_headers,
|
|
188
177
|
compress=False,
|
|
189
178
|
) as resp:
|
|
@@ -191,12 +180,6 @@ async def create_artifact(context, path, target_path, content_type, content_enco
|
|
|
191
180
|
response_text = await resp.text()
|
|
192
181
|
log.info(response_text)
|
|
193
182
|
if resp.status not in (200, 204):
|
|
194
|
-
if content_md5 is not None and "BadDigest" in (response_text or ""):
|
|
195
|
-
log.error(
|
|
196
|
-
"{} was corrupted in transit: the storage backend rejected the body as not matching Content-MD5 {}. Retrying.".format(
|
|
197
|
-
target_path, content_md5
|
|
198
|
-
)
|
|
199
|
-
)
|
|
200
183
|
raise ScriptWorkerRetryException("Bad status {}".format(resp.status))
|
|
201
184
|
|
|
202
185
|
|
|
@@ -223,22 +206,9 @@ async def create_link_artifact(context, target_path, link_to, content_type, expi
|
|
|
223
206
|
await context.temp_queue.createArtifact(*args)
|
|
224
207
|
|
|
225
208
|
|
|
226
|
-
def
|
|
227
|
-
"""Get the base64-encoded md5 digest of a file, formatted for ``Content-MD5``.
|
|
228
|
-
|
|
229
|
-
Args:
|
|
230
|
-
path (str): the path to the file to digest.
|
|
231
|
-
|
|
232
|
-
Returns:
|
|
233
|
-
str: the base64-encoded md5 digest.
|
|
234
|
-
|
|
235
|
-
"""
|
|
236
|
-
return base64.b64encode(bytes.fromhex(get_hash(path, hash_alg="md5"))).decode("ascii")
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
def _craft_artifact_put_headers(content_type, content_md5, encoding=None):
|
|
209
|
+
def _craft_artifact_put_headers(content_type, encoding=None):
|
|
240
210
|
log.debug("{} {}".format(content_type, encoding))
|
|
241
|
-
headers = {aiohttp.hdrs.CONTENT_TYPE: content_type
|
|
211
|
+
headers = {aiohttp.hdrs.CONTENT_TYPE: content_type}
|
|
242
212
|
|
|
243
213
|
if encoding is not None:
|
|
244
214
|
headers[aiohttp.hdrs.CONTENT_ENCODING] = encoding
|
|
@@ -1965,7 +1965,11 @@ def get_source_url(obj):
|
|
|
1965
1965
|
comm_repo = get_repo(obj.task, source_env_prefix="COMM", repo_type="head")
|
|
1966
1966
|
match_comm_repo = comm_repo and verify_repo_matches_url(comm_repo, source)
|
|
1967
1967
|
|
|
1968
|
-
|
|
1968
|
+
# Enterprise runs two Decision tasks, a gecko one and a comm one. If
|
|
1969
|
+
# the task has COMM_HEAD_REPOSITORY defined, it comes from the comm
|
|
1970
|
+
# Decision task and its metadata.source must match the comm repository.
|
|
1971
|
+
# Otherwise it must match the enterprise-firefox repository.
|
|
1972
|
+
if (comm_repo and not match_comm_repo) or (not comm_repo and repo and not match_repo):
|
|
1969
1973
|
raise CoTError(
|
|
1970
1974
|
"{name} {task_id}: {source_env_prefix} {repo} or {comm_repo} doesn't match source {source}!".format(
|
|
1971
1975
|
name=obj.name, task_id=obj.task_id, source_env_prefix=source_env_prefix, repo=repo, comm_repo=comm_repo, source=source
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scriptworker-63.4.1 → scriptworker-63.4.2}/src/scriptworker/data/scriptworker_task_schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|