gha-utils 4.15.6__tar.gz → 4.16.0__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.
Potentially problematic release.
This version of gha-utils might be problematic. Click here for more details.
- {gha_utils-4.15.6 → gha_utils-4.16.0}/PKG-INFO +3 -3
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/__init__.py +1 -1
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/cli.py +52 -12
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/metadata.py +86 -46
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/test_plan.py +1 -1
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/PKG-INFO +3 -3
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/requires.txt +1 -1
- {gha_utils-4.15.6 → gha_utils-4.16.0}/pyproject.toml +3 -3
- {gha_utils-4.15.6 → gha_utils-4.16.0}/readme.md +1 -1
- {gha_utils-4.15.6 → gha_utils-4.16.0}/tests/test_metadata.py +30 -20
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/__main__.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/changelog.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/mailmap.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/matrix.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils/py.typed +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/SOURCES.txt +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/dependency_links.txt +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/entry_points.txt +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/gha_utils.egg-info/top_level.txt +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/setup.cfg +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/tests/test_changelog.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/tests/test_mailmap.py +0 -0
- {gha_utils-4.15.6 → gha_utils-4.16.0}/tests/test_matrix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gha-utils
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.16.0
|
|
4
4
|
Summary: ⚙️ CLI helpers for GitHub Actions + reuseable workflows
|
|
5
5
|
Author-email: Kevin Deldycke <kevin@deldycke.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/kdeldycke/workflows
|
|
@@ -48,7 +48,7 @@ Requires-Dist: boltons>=24.0.0
|
|
|
48
48
|
Requires-Dist: bump-my-version<1.1.1,>=0.32.2
|
|
49
49
|
Requires-Dist: click-extra~=4.15.0
|
|
50
50
|
Requires-Dist: extra-platforms~=3.1.0
|
|
51
|
-
Requires-Dist: packaging~=
|
|
51
|
+
Requires-Dist: packaging~=25.0
|
|
52
52
|
Requires-Dist: PyDriller~=2.6
|
|
53
53
|
Requires-Dist: pyproject-metadata~=0.9.0
|
|
54
54
|
Requires-Dist: pyyaml~=6.0.0
|
|
@@ -307,7 +307,7 @@ Now re-run your actions and they should be able to update the workflow files in
|
|
|
307
307
|
|
|
308
308
|
### Release management
|
|
309
309
|
|
|
310
|
-
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://blog.axo.dev/2023/02/cargo-dist).
|
|
310
|
+
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://web.archive.org/web/20250126113318/https://blog.axo.dev/2023/02/cargo-dist).
|
|
311
311
|
|
|
312
312
|
Things have improved a lot in the Python ecosystem with `uv`. But there are still a lot of manual steps to do to release.
|
|
313
313
|
|
|
@@ -29,6 +29,7 @@ from click_extra import (
|
|
|
29
29
|
Choice,
|
|
30
30
|
Context,
|
|
31
31
|
FloatRange,
|
|
32
|
+
IntRange,
|
|
32
33
|
argument,
|
|
33
34
|
echo,
|
|
34
35
|
extra_group,
|
|
@@ -301,6 +302,16 @@ def mailmap_sync(ctx, source, create_if_missing, destination_mailmap):
|
|
|
301
302
|
help="Name of an environment variable containing a test plan in YAML. This "
|
|
302
303
|
"option can be repeated to collect multiple test plans.",
|
|
303
304
|
)
|
|
305
|
+
@option(
|
|
306
|
+
"-t",
|
|
307
|
+
"--select-test",
|
|
308
|
+
type=IntRange(min=1),
|
|
309
|
+
multiple=True,
|
|
310
|
+
metavar="INTEGER",
|
|
311
|
+
help="Only run the tests matching the provided test case numbers. This option can "
|
|
312
|
+
"be repeated to run multiple test cases. If not provided, all test cases will be "
|
|
313
|
+
"run.",
|
|
314
|
+
)
|
|
304
315
|
@option(
|
|
305
316
|
"-s",
|
|
306
317
|
"--skip-platform",
|
|
@@ -310,7 +321,14 @@ def mailmap_sync(ctx, source, create_if_missing, destination_mailmap):
|
|
|
310
321
|
"skip multiple platforms.",
|
|
311
322
|
)
|
|
312
323
|
@option(
|
|
313
|
-
"-
|
|
324
|
+
"-x",
|
|
325
|
+
"--exit-on-error",
|
|
326
|
+
is_flag=True,
|
|
327
|
+
default=False,
|
|
328
|
+
help="Exit instantly on first failed test.",
|
|
329
|
+
)
|
|
330
|
+
@option(
|
|
331
|
+
"-T",
|
|
314
332
|
"--timeout",
|
|
315
333
|
# Timeout passed to subprocess.run() is a float that is silently clamped to
|
|
316
334
|
# 0.0 is negative values are provided, so we mimic this behavior here:
|
|
@@ -320,12 +338,21 @@ def mailmap_sync(ctx, source, create_if_missing, destination_mailmap):
|
|
|
320
338
|
help="Set the default timeout for each CLI call, if not specified in the "
|
|
321
339
|
"test plan.",
|
|
322
340
|
)
|
|
341
|
+
@option(
|
|
342
|
+
"--stats/--no-stats",
|
|
343
|
+
is_flag=True,
|
|
344
|
+
default=True,
|
|
345
|
+
help="Print per-manager package statistics.",
|
|
346
|
+
)
|
|
323
347
|
def test_plan(
|
|
324
348
|
binary: Path,
|
|
325
349
|
plan_file: tuple[Path, ...] | None,
|
|
326
350
|
plan_envvar: tuple[str, ...] | None,
|
|
351
|
+
select_test: tuple[int, ...] | None,
|
|
327
352
|
skip_platform: tuple[str, ...] | None,
|
|
353
|
+
exit_on_error: bool,
|
|
328
354
|
timeout: float | None,
|
|
355
|
+
stats: bool,
|
|
329
356
|
) -> None:
|
|
330
357
|
# Load test plan from workflow input, or use a default one.
|
|
331
358
|
test_list = []
|
|
@@ -349,25 +376,38 @@ def test_plan(
|
|
|
349
376
|
test_list = DEFAULT_TEST_PLAN
|
|
350
377
|
logging.debug(f"Test plan: {test_list}")
|
|
351
378
|
|
|
352
|
-
|
|
379
|
+
counter = Counter(total=len(test_list), skipped=0, failed=0)
|
|
353
380
|
|
|
354
381
|
for index, test_case in enumerate(test_list):
|
|
355
|
-
|
|
382
|
+
test_number = index + 1
|
|
383
|
+
test_name = f"#{test_number}"
|
|
384
|
+
logging.info(f"Run test {test_name}...")
|
|
385
|
+
|
|
386
|
+
if select_test and test_number not in select_test:
|
|
387
|
+
logging.warning(f"Test {test_name} skipped by user request.")
|
|
388
|
+
counter["skipped"] += 1
|
|
389
|
+
continue
|
|
390
|
+
|
|
356
391
|
try:
|
|
357
392
|
logging.debug(f"Test case parameters: {test_case}")
|
|
358
393
|
test_case.run_cli_test(
|
|
359
394
|
binary, additional_skip_platforms=skip_platform, default_timeout=timeout
|
|
360
395
|
)
|
|
361
396
|
except SkippedTest as ex:
|
|
362
|
-
|
|
363
|
-
logging.warning(f"Test skipped: {ex}")
|
|
397
|
+
counter["skipped"] += 1
|
|
398
|
+
logging.warning(f"Test {test_name} skipped: {ex}")
|
|
364
399
|
except Exception as ex:
|
|
365
|
-
|
|
366
|
-
logging.error(f"Test failed: {ex}")
|
|
400
|
+
counter["failed"] += 1
|
|
401
|
+
logging.error(f"Test {test_name} failed: {ex}")
|
|
402
|
+
if exit_on_error:
|
|
403
|
+
logging.debug("Don't continue testing, a failed test was found.")
|
|
404
|
+
sys.exit(1)
|
|
405
|
+
|
|
406
|
+
if stats:
|
|
407
|
+
echo(
|
|
408
|
+
"Test plan results - "
|
|
409
|
+
+ ", ".join((f"{k.title()}: {v}" for k, v in counter.items()))
|
|
410
|
+
)
|
|
367
411
|
|
|
368
|
-
|
|
369
|
-
"Test plan results - "
|
|
370
|
-
+ ", ".join((f"{k.title()}: {v}" for k, v in stats.items()))
|
|
371
|
-
)
|
|
372
|
-
if stats["failed"]:
|
|
412
|
+
if counter["failed"]:
|
|
373
413
|
sys.exit(1)
|
|
@@ -49,7 +49,7 @@ release_commits_matrix={'commit': ['6f27db47612aaee06fdf08744b09a9f5f6c2'],
|
|
|
49
49
|
nuitka_matrix={'entry_point': ['mpm'],
|
|
50
50
|
'commit': ['346ce664f055fbd042a25ee0b7e96702e95',
|
|
51
51
|
'6f27db47612aaee06fdf08744b09a9f5f6c2'],
|
|
52
|
-
'os': ['ubuntu-24.04', 'ubuntu-24.04
|
|
52
|
+
'os': ['ubuntu-24.04-arm', 'ubuntu-24.04', 'macos-15', 'macos-13', 'windows-11-arm', 'windows-2025'],
|
|
53
53
|
'include': [{'entry_point': 'mpm',
|
|
54
54
|
'cli_id': 'mpm',
|
|
55
55
|
'module_id': 'meta_package_manager.__main__',
|
|
@@ -61,14 +61,14 @@ nuitka_matrix={'entry_point': ['mpm'],
|
|
|
61
61
|
{'commit': '6f27db47612aaee06fdf08744b09a9f5f6c2',
|
|
62
62
|
'short_sha': '6f27db4',
|
|
63
63
|
'current_version': '1.9.1'},
|
|
64
|
-
{'os': 'ubuntu-24.04',
|
|
65
|
-
'platform_id': 'linux',
|
|
66
|
-
'arch': 'x64',
|
|
67
|
-
'extension': 'bin'},
|
|
68
64
|
{'os': 'ubuntu-24.04-arm',
|
|
69
65
|
'platform_id': 'linux',
|
|
70
66
|
'arch': 'arm64',
|
|
71
67
|
'extension': 'bin'},
|
|
68
|
+
{'os': 'ubuntu-24.04',
|
|
69
|
+
'platform_id': 'linux',
|
|
70
|
+
'arch': 'x64',
|
|
71
|
+
'extension': 'bin'},
|
|
72
72
|
{'os': 'macos-15',
|
|
73
73
|
'platform_id': 'macos',
|
|
74
74
|
'arch': 'arm64',
|
|
@@ -77,20 +77,14 @@ nuitka_matrix={'entry_point': ['mpm'],
|
|
|
77
77
|
'platform_id': 'macos',
|
|
78
78
|
'arch': 'x64',
|
|
79
79
|
'extension': 'bin'},
|
|
80
|
+
{'os': 'windows-11-arm',
|
|
81
|
+
'platform_id": 'windows',
|
|
82
|
+
'arch": 'arm64',
|
|
83
|
+
'extension": 'exe'},
|
|
80
84
|
{'os': 'windows-2025',
|
|
81
85
|
'platform_id': 'windows',
|
|
82
86
|
'arch': 'x64',
|
|
83
87
|
'extension': 'exe'},
|
|
84
|
-
{'entry_point': 'mpm',
|
|
85
|
-
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
86
|
-
'os': 'ubuntu-24.04',
|
|
87
|
-
'arch': 'x64',
|
|
88
|
-
'bin_name': 'mpm-linux-x64-build-346ce66.bin'},
|
|
89
|
-
{'entry_point': 'mpm',
|
|
90
|
-
'commit': '6f27db47612aaee06fdf08744b09a9f5f6c2',
|
|
91
|
-
'os': 'ubuntu-24.04',
|
|
92
|
-
'arch': 'x64',
|
|
93
|
-
'bin_name': 'mpm-linux-x64-build-6f27db4.bin'},
|
|
94
88
|
{'entry_point': 'mpm',
|
|
95
89
|
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
96
90
|
'os': 'ubuntu-24.04-arm',
|
|
@@ -101,6 +95,16 @@ nuitka_matrix={'entry_point': ['mpm'],
|
|
|
101
95
|
'os': 'ubuntu-24.04-arm',
|
|
102
96
|
'arch': 'arm64',
|
|
103
97
|
'bin_name': 'mpm-linux-arm64-build-6f27db4.bin'},
|
|
98
|
+
{'entry_point': 'mpm',
|
|
99
|
+
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
100
|
+
'os': 'ubuntu-24.04',
|
|
101
|
+
'arch': 'x64',
|
|
102
|
+
'bin_name': 'mpm-linux-x64-build-346ce66.bin'},
|
|
103
|
+
{'entry_point': 'mpm',
|
|
104
|
+
'commit': '6f27db47612aaee06fdf08744b09a9f5f6c2',
|
|
105
|
+
'os': 'ubuntu-24.04',
|
|
106
|
+
'arch': 'x64',
|
|
107
|
+
'bin_name': 'mpm-linux-x64-build-6f27db4.bin'},
|
|
104
108
|
{'entry_point': 'mpm',
|
|
105
109
|
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
106
110
|
'os': 'macos-15',
|
|
@@ -121,6 +125,16 @@ nuitka_matrix={'entry_point': ['mpm'],
|
|
|
121
125
|
'os': 'macos-13',
|
|
122
126
|
'arch': 'x64',
|
|
123
127
|
'bin_name': 'mpm-macos-x64-build-6f27db4.bin'},
|
|
128
|
+
{'entry_point': 'mpm',
|
|
129
|
+
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
130
|
+
'os': 'windows-11-arm',
|
|
131
|
+
'arch': 'arm64',
|
|
132
|
+
'bin_name': 'mpm-windows-arm64-build-346ce66.bin'},
|
|
133
|
+
{'entry_point': 'mpm',
|
|
134
|
+
'commit': '6f27db47612aaee06fdf08744b09a9f5f6c2',
|
|
135
|
+
'os': 'windows-11-arm',
|
|
136
|
+
'arch': 'arm64',
|
|
137
|
+
'bin_name': 'mpm-windows-arm64-build-6f27db4.bin'},
|
|
124
138
|
{'entry_point': 'mpm',
|
|
125
139
|
'commit': '346ce664f055fbd042a25ee0b7e96702e95',
|
|
126
140
|
'os': 'windows-2025',
|
|
@@ -147,6 +161,7 @@ import json
|
|
|
147
161
|
import logging
|
|
148
162
|
import os
|
|
149
163
|
import re
|
|
164
|
+
import tomllib
|
|
150
165
|
from collections.abc import Iterable
|
|
151
166
|
from enum import StrEnum
|
|
152
167
|
from functools import cached_property
|
|
@@ -155,7 +170,6 @@ from random import randint
|
|
|
155
170
|
from re import escape
|
|
156
171
|
from typing import Any, Final, Iterator, cast
|
|
157
172
|
|
|
158
|
-
import tomllib
|
|
159
173
|
from bumpversion.config import get_configuration # type: ignore[import-untyped]
|
|
160
174
|
from bumpversion.config.files import find_config_file # type: ignore[import-untyped]
|
|
161
175
|
from bumpversion.show import resolve_name # type: ignore[import-untyped]
|
|
@@ -876,10 +890,11 @@ class Metadata:
|
|
|
876
890
|
"6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
877
891
|
],
|
|
878
892
|
"os": [
|
|
879
|
-
"ubuntu-24.04",
|
|
880
893
|
"ubuntu-24.04-arm",
|
|
894
|
+
"ubuntu-24.04",
|
|
881
895
|
"macos-15",
|
|
882
896
|
"macos-13",
|
|
897
|
+
"windows-11-arm",
|
|
883
898
|
"windows-2025",
|
|
884
899
|
],
|
|
885
900
|
"include": [
|
|
@@ -901,15 +916,15 @@ class Metadata:
|
|
|
901
916
|
"current_version": "1.9.1",
|
|
902
917
|
},
|
|
903
918
|
{
|
|
904
|
-
"os": "ubuntu-24.04",
|
|
919
|
+
"os": "ubuntu-24.04-arm",
|
|
905
920
|
"platform_id": "linux",
|
|
906
|
-
"arch": "
|
|
921
|
+
"arch": "arm64",
|
|
907
922
|
"extension": "bin",
|
|
908
923
|
},
|
|
909
924
|
{
|
|
910
|
-
"os": "ubuntu-24.04
|
|
925
|
+
"os": "ubuntu-24.04",
|
|
911
926
|
"platform_id": "linux",
|
|
912
|
-
"arch": "
|
|
927
|
+
"arch": "x64",
|
|
913
928
|
"extension": "bin",
|
|
914
929
|
},
|
|
915
930
|
{
|
|
@@ -924,6 +939,12 @@ class Metadata:
|
|
|
924
939
|
"arch": "x64",
|
|
925
940
|
"extension": "bin",
|
|
926
941
|
},
|
|
942
|
+
{
|
|
943
|
+
"os": "windows-11-arm",
|
|
944
|
+
"platform_id": "windows",
|
|
945
|
+
"arch": "arm64",
|
|
946
|
+
"extension": "exe",
|
|
947
|
+
},
|
|
927
948
|
{
|
|
928
949
|
"os": "windows-2025",
|
|
929
950
|
"platform_id": "windows",
|
|
@@ -933,30 +954,30 @@ class Metadata:
|
|
|
933
954
|
{
|
|
934
955
|
"entry_point": "mpm",
|
|
935
956
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
936
|
-
"os": "ubuntu-24.04",
|
|
937
|
-
"arch": "
|
|
938
|
-
"bin_name": "mpm-linux-
|
|
957
|
+
"os": "ubuntu-24.04-arm",
|
|
958
|
+
"arch": "arm64",
|
|
959
|
+
"bin_name": "mpm-linux-arm64-build-346ce66.bin",
|
|
939
960
|
},
|
|
940
961
|
{
|
|
941
962
|
"entry_point": "mpm",
|
|
942
963
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
943
|
-
"os": "ubuntu-24.04",
|
|
944
|
-
"arch": "
|
|
945
|
-
"bin_name": "mpm-linux-
|
|
964
|
+
"os": "ubuntu-24.04-arm",
|
|
965
|
+
"arch": "arm64",
|
|
966
|
+
"bin_name": "mpm-linux-arm64-build-6f27db4.bin",
|
|
946
967
|
},
|
|
947
968
|
{
|
|
948
969
|
"entry_point": "mpm",
|
|
949
970
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
950
|
-
"os": "ubuntu-24.04
|
|
951
|
-
"arch": "
|
|
952
|
-
"bin_name": "mpm-linux-
|
|
971
|
+
"os": "ubuntu-24.04",
|
|
972
|
+
"arch": "x64",
|
|
973
|
+
"bin_name": "mpm-linux-x64-build-346ce66.bin",
|
|
953
974
|
},
|
|
954
975
|
{
|
|
955
976
|
"entry_point": "mpm",
|
|
956
977
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
957
|
-
"os": "ubuntu-24.04
|
|
958
|
-
"arch": "
|
|
959
|
-
"bin_name": "mpm-linux-
|
|
978
|
+
"os": "ubuntu-24.04",
|
|
979
|
+
"arch": "x64",
|
|
980
|
+
"bin_name": "mpm-linux-x64-build-6f27db4.bin",
|
|
960
981
|
},
|
|
961
982
|
{
|
|
962
983
|
"entry_point": "mpm",
|
|
@@ -986,6 +1007,20 @@ class Metadata:
|
|
|
986
1007
|
"arch": "x64",
|
|
987
1008
|
"bin_name": "mpm-macos-x64-build-6f27db4.bin",
|
|
988
1009
|
},
|
|
1010
|
+
{
|
|
1011
|
+
"entry_point": "mpm",
|
|
1012
|
+
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
1013
|
+
"os": "windows-11-arm",
|
|
1014
|
+
"arch": "arm64",
|
|
1015
|
+
"bin_name": "mpm-windows-arm64-build-346ce66.bin",
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
"entry_point": "mpm",
|
|
1019
|
+
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
1020
|
+
"os": "windows-11-arm",
|
|
1021
|
+
"arch": "arm64",
|
|
1022
|
+
"bin_name": "mpm-windows-arm64-build-6f27db4.bin",
|
|
1023
|
+
},
|
|
989
1024
|
{
|
|
990
1025
|
"entry_point": "mpm",
|
|
991
1026
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
@@ -1009,18 +1044,17 @@ class Metadata:
|
|
|
1009
1044
|
|
|
1010
1045
|
matrix = Matrix()
|
|
1011
1046
|
|
|
1012
|
-
# Run the compilation only on the latest supported version of each OS.
|
|
1013
|
-
#
|
|
1014
|
-
#
|
|
1015
|
-
# XXX arm64 Windows is planned for the future:
|
|
1016
|
-
# https://github.com/actions/runner-images/issues/10820
|
|
1047
|
+
# Run the compilation only on the latest supported version of each OS. Note
|
|
1048
|
+
# that macOS and Windows do not have the latest version available for each
|
|
1049
|
+
# architecture.
|
|
1017
1050
|
matrix.add_variation(
|
|
1018
1051
|
"os",
|
|
1019
1052
|
(
|
|
1020
|
-
"ubuntu-24.04", # x64
|
|
1021
1053
|
"ubuntu-24.04-arm", # arm64
|
|
1054
|
+
"ubuntu-24.04", # x64
|
|
1022
1055
|
"macos-15", # arm64
|
|
1023
1056
|
"macos-13", # x64
|
|
1057
|
+
"windows-11-arm", # arm64
|
|
1024
1058
|
"windows-2025", # x64
|
|
1025
1059
|
),
|
|
1026
1060
|
)
|
|
@@ -1057,20 +1091,20 @@ class Metadata:
|
|
|
1057
1091
|
|
|
1058
1092
|
# Add platform-specific variables.
|
|
1059
1093
|
# Arch values are inspired from those specified for self-hosted runners:
|
|
1060
|
-
# https://docs.github.com/en/actions/hosting-your-own-runners/
|
|
1061
|
-
#
|
|
1062
|
-
#
|
|
1094
|
+
# https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/supported-architectures-and-operating-systems-for-self-hosted-runners#supported-processor-architectures
|
|
1095
|
+
# XXX Maybe we should just adopt target triple:
|
|
1096
|
+
# https://mcyoung.xyz/2025/04/14/target-triples/
|
|
1063
1097
|
matrix.add_includes(
|
|
1064
1098
|
{
|
|
1065
|
-
"os": "ubuntu-24.04",
|
|
1099
|
+
"os": "ubuntu-24.04-arm",
|
|
1066
1100
|
"platform_id": "linux",
|
|
1067
|
-
"arch": "
|
|
1101
|
+
"arch": "arm64",
|
|
1068
1102
|
"extension": "bin",
|
|
1069
1103
|
},
|
|
1070
1104
|
{
|
|
1071
|
-
"os": "ubuntu-24.04
|
|
1105
|
+
"os": "ubuntu-24.04",
|
|
1072
1106
|
"platform_id": "linux",
|
|
1073
|
-
"arch": "
|
|
1107
|
+
"arch": "x64",
|
|
1074
1108
|
"extension": "bin",
|
|
1075
1109
|
},
|
|
1076
1110
|
{
|
|
@@ -1085,6 +1119,12 @@ class Metadata:
|
|
|
1085
1119
|
"arch": "x64",
|
|
1086
1120
|
"extension": "bin",
|
|
1087
1121
|
},
|
|
1122
|
+
{
|
|
1123
|
+
"os": "windows-11-arm",
|
|
1124
|
+
"platform_id": "windows",
|
|
1125
|
+
"arch": "arm64",
|
|
1126
|
+
"extension": "exe",
|
|
1127
|
+
},
|
|
1088
1128
|
{
|
|
1089
1129
|
"os": "windows-2025",
|
|
1090
1130
|
"platform_id": "windows",
|
|
@@ -255,7 +255,7 @@ class CLITestCase:
|
|
|
255
255
|
|
|
256
256
|
elif field_id.endswith("_regex_matches"):
|
|
257
257
|
for regex in field_data:
|
|
258
|
-
logging.info(f"Check if {name} matches {
|
|
258
|
+
logging.info(f"Check if {name} matches {regex!r}")
|
|
259
259
|
if not regex.search(output):
|
|
260
260
|
raise AssertionError(f"{name} does not match regex {regex}")
|
|
261
261
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gha-utils
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.16.0
|
|
4
4
|
Summary: ⚙️ CLI helpers for GitHub Actions + reuseable workflows
|
|
5
5
|
Author-email: Kevin Deldycke <kevin@deldycke.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/kdeldycke/workflows
|
|
@@ -48,7 +48,7 @@ Requires-Dist: boltons>=24.0.0
|
|
|
48
48
|
Requires-Dist: bump-my-version<1.1.1,>=0.32.2
|
|
49
49
|
Requires-Dist: click-extra~=4.15.0
|
|
50
50
|
Requires-Dist: extra-platforms~=3.1.0
|
|
51
|
-
Requires-Dist: packaging~=
|
|
51
|
+
Requires-Dist: packaging~=25.0
|
|
52
52
|
Requires-Dist: PyDriller~=2.6
|
|
53
53
|
Requires-Dist: pyproject-metadata~=0.9.0
|
|
54
54
|
Requires-Dist: pyyaml~=6.0.0
|
|
@@ -307,7 +307,7 @@ Now re-run your actions and they should be able to update the workflow files in
|
|
|
307
307
|
|
|
308
308
|
### Release management
|
|
309
309
|
|
|
310
|
-
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://blog.axo.dev/2023/02/cargo-dist).
|
|
310
|
+
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://web.archive.org/web/20250126113318/https://blog.axo.dev/2023/02/cargo-dist).
|
|
311
311
|
|
|
312
312
|
Things have improved a lot in the Python ecosystem with `uv`. But there are still a lot of manual steps to do to release.
|
|
313
313
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
# Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
|
|
3
3
|
name = "gha-utils"
|
|
4
|
-
version = "4.
|
|
4
|
+
version = "4.16.0"
|
|
5
5
|
# Python versions and their status: https://devguide.python.org/versions/
|
|
6
6
|
requires-python = ">= 3.11"
|
|
7
7
|
description = "⚙️ CLI helpers for GitHub Actions + reuseable workflows"
|
|
@@ -76,7 +76,7 @@ dependencies = [
|
|
|
76
76
|
"bump-my-version >= 0.32.2, < 1.1.1",
|
|
77
77
|
"click-extra ~= 4.15.0",
|
|
78
78
|
"extra-platforms ~= 3.1.0",
|
|
79
|
-
"packaging ~=
|
|
79
|
+
"packaging ~= 25.0",
|
|
80
80
|
"PyDriller ~= 2.6",
|
|
81
81
|
"pyproject-metadata ~= 0.9.0",
|
|
82
82
|
"pyyaml ~= 6.0.0",
|
|
@@ -137,7 +137,7 @@ addopts = [
|
|
|
137
137
|
xfail_strict = true
|
|
138
138
|
|
|
139
139
|
[tool.bumpversion]
|
|
140
|
-
current_version = "4.
|
|
140
|
+
current_version = "4.16.0"
|
|
141
141
|
allow_dirty = true
|
|
142
142
|
ignore_missing_files = true
|
|
143
143
|
|
|
@@ -242,7 +242,7 @@ Now re-run your actions and they should be able to update the workflow files in
|
|
|
242
242
|
|
|
243
243
|
### Release management
|
|
244
244
|
|
|
245
|
-
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://blog.axo.dev/2023/02/cargo-dist).
|
|
245
|
+
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://web.archive.org/web/20250126113318/https://blog.axo.dev/2023/02/cargo-dist).
|
|
246
246
|
|
|
247
247
|
Things have improved a lot in the Python ecosystem with `uv`. But there are still a lot of manual steps to do to release.
|
|
248
248
|
|
|
@@ -48,34 +48,39 @@ def test_metadata_github_format():
|
|
|
48
48
|
r"ghadelimiter_[0-9]+\n"
|
|
49
49
|
r"new_commits_matrix=\n"
|
|
50
50
|
r"release_commits_matrix=\n"
|
|
51
|
-
r'nuitka_matrix=\{"os": \["ubuntu-24\.04", "ubuntu-24\.04
|
|
52
|
-
r'"macos-15", "macos-13", "windows-2025"\], '
|
|
51
|
+
r'nuitka_matrix=\{"os": \["ubuntu-24\.04-arm", "ubuntu-24\.04", '
|
|
52
|
+
r'"macos-15", "macos-13", "windows-11-arm", "windows-2025"\], '
|
|
53
53
|
r'"entry_point": \["gha-utils"\], "commit": \["[a-z0-9]+"\], '
|
|
54
54
|
r'"include": \[\{"entry_point": "gha-utils", '
|
|
55
55
|
r'"cli_id": "gha-utils", "module_id": "gha_utils\.__main__", '
|
|
56
56
|
r'"callable_id": "main", '
|
|
57
57
|
r'"module_path": "gha_utils(/|\\\\)__main__\.py"\}, '
|
|
58
58
|
r'\{"commit": "[a-z0-9]+", "short_sha": "[a-z0-9]+", '
|
|
59
|
-
r'"current_version": "[0-9\.]+"\}, \{"os": "ubuntu-24\.04", '
|
|
60
|
-
r'"platform_id": "linux", "arch": "
|
|
61
|
-
r'\{"os": "ubuntu-24\.04
|
|
62
|
-
r'"arch": "
|
|
59
|
+
r'"current_version": "[0-9\.]+"\}, \{"os": "ubuntu-24\.04-arm", '
|
|
60
|
+
r'"platform_id": "linux", "arch": "arm64", "extension": "bin"\}, '
|
|
61
|
+
r'\{"os": "ubuntu-24\.04", "platform_id": "linux", '
|
|
62
|
+
r'"arch": "x64", "extension": "bin"\}, \{"os": "macos-15", '
|
|
63
63
|
r'"platform_id": "macos", "arch": "arm64", "extension": "bin"\}, '
|
|
64
64
|
r'\{"os": "macos-13", "platform_id": "macos", "arch": "x64", '
|
|
65
|
-
r'"extension": "bin"\}, \{"os": "windows-
|
|
65
|
+
r'"extension": "bin"\}, \{"os": "windows-11-arm", '
|
|
66
|
+
r'"platform_id": "windows", "arch": "arm64", "extension": "exe"\}, '
|
|
67
|
+
r'\{"os": "windows-2025", '
|
|
66
68
|
r'"platform_id": "windows", "arch": "x64", "extension": "exe"\}, '
|
|
67
|
-
r'\{"os": "ubuntu-24\.04", "entry_point": "gha-utils", '
|
|
68
|
-
r'"commit": "[a-z0-9]+", '
|
|
69
|
-
r'"bin_name": "gha-utils-linux-x64-build-[a-z0-9]+\.bin"\}, '
|
|
70
69
|
r'\{"os": "ubuntu-24\.04-arm", "entry_point": "gha-utils", '
|
|
71
70
|
r'"commit": "[a-z0-9]+", '
|
|
72
71
|
r'"bin_name": "gha-utils-linux-arm64-build-[a-z0-9]+\.bin"\}, '
|
|
72
|
+
r'\{"os": "ubuntu-24\.04", "entry_point": "gha-utils", '
|
|
73
|
+
r'"commit": "[a-z0-9]+", '
|
|
74
|
+
r'"bin_name": "gha-utils-linux-x64-build-[a-z0-9]+\.bin"\}, '
|
|
73
75
|
r'\{"os": "macos-15", "entry_point": "gha-utils", '
|
|
74
76
|
r'"commit": "[a-z0-9]+", '
|
|
75
77
|
r'"bin_name": "gha-utils-macos-arm64-build-[a-z0-9]+\.bin"\}, '
|
|
76
78
|
r'\{"os": "macos-13", "entry_point": "gha-utils", '
|
|
77
79
|
r'"commit": "[a-z0-9]+", '
|
|
78
80
|
r'"bin_name": "gha-utils-macos-x64-build-[a-z0-9]+\.bin"\}, '
|
|
81
|
+
r'\{"os": "windows-11-arm", "entry_point": "gha-utils", '
|
|
82
|
+
r'"commit": "[a-z0-9]+", '
|
|
83
|
+
r'"bin_name": "gha-utils-windows-arm64-build-[a-z0-9]+\.exe"\}, '
|
|
79
84
|
r'\{"os": "windows-2025", "entry_point": "gha-utils", '
|
|
80
85
|
r'"commit": "[a-z0-9]+", '
|
|
81
86
|
r'"bin_name": "gha-utils-windows-x64-build-[a-z0-9]+\.exe"\}\]\}\n'
|
|
@@ -114,34 +119,39 @@ def test_metadata_plain_format():
|
|
|
114
119
|
r"'new_commits_matrix': None, "
|
|
115
120
|
r"'release_commits_matrix': None, "
|
|
116
121
|
r"'nuitka_matrix': <Matrix: \{"
|
|
117
|
-
r"'os': \('ubuntu-24\.04', 'ubuntu-24\.04
|
|
118
|
-
r"'macos-15', 'macos-13', 'windows-2025'\), "
|
|
122
|
+
r"'os': \('ubuntu-24\.04-arm', 'ubuntu-24\.04', "
|
|
123
|
+
r"'macos-15', 'macos-13', 'windows-11-arm', 'windows-2025'\), "
|
|
119
124
|
r"'entry_point': \('gha-utils',\), "
|
|
120
125
|
r"'commit': \('[a-z0-9]+',\)\}; "
|
|
121
126
|
r"include=\(\{'entry_point': 'gha-utils', 'cli_id': 'gha-utils', "
|
|
122
127
|
r"'module_id': 'gha_utils\.__main__', 'callable_id': 'main', "
|
|
123
128
|
r"'module_path': 'gha_utils(/|\\\\)__main__\.py'\}, "
|
|
124
129
|
r"\{'commit': '[a-z0-9]+', 'short_sha': '[a-z0-9]+', "
|
|
125
|
-
r"'current_version': '[0-9\.]+'\}, \{'os': 'ubuntu-24\.04', "
|
|
126
|
-
r"'platform_id': 'linux', 'arch': '
|
|
127
|
-
r"{'os': 'ubuntu-24\.04
|
|
128
|
-
r"'arch': '
|
|
130
|
+
r"'current_version': '[0-9\.]+'\}, \{'os': 'ubuntu-24\.04-arm', "
|
|
131
|
+
r"'platform_id': 'linux', 'arch': 'arm64', 'extension': 'bin'}, "
|
|
132
|
+
r"{'os': 'ubuntu-24\.04', 'platform_id': 'linux', "
|
|
133
|
+
r"'arch': 'x64', 'extension': 'bin'\}, \{'os': 'macos-15', "
|
|
129
134
|
r"'platform_id': 'macos', 'arch': 'arm64', 'extension': 'bin'\}, "
|
|
130
135
|
r"\{'os': 'macos-13', 'platform_id': 'macos', 'arch': 'x64', "
|
|
131
|
-
r"'extension': 'bin'\}, \{'os': 'windows-
|
|
136
|
+
r"'extension': 'bin'\}, \{'os': 'windows-11-arm', 'platform_id': "
|
|
137
|
+
r"'windows', 'arch': 'arm64', 'extension': 'exe'\}, "
|
|
138
|
+
r"\{'os': 'windows-2025', 'platform_id': "
|
|
132
139
|
r"'windows', 'arch': 'x64', 'extension': 'exe'\}, "
|
|
133
|
-
r"\{'os': 'ubuntu-24\.04', 'entry_point': 'gha-utils', "
|
|
134
|
-
r"'commit': '[a-z0-9]+', "
|
|
135
|
-
r"'bin_name': 'gha-utils-linux-x64-build-[a-z0-9]+\.bin'\}, "
|
|
136
140
|
r"\{'os': 'ubuntu-24\.04-arm', 'entry_point': 'gha-utils', "
|
|
137
141
|
r"'commit': '[a-z0-9]+', "
|
|
138
142
|
r"'bin_name': 'gha-utils-linux-arm64-build-[a-z0-9]+\.bin'\}, "
|
|
143
|
+
r"\{'os': 'ubuntu-24\.04', 'entry_point': 'gha-utils', "
|
|
144
|
+
r"'commit': '[a-z0-9]+', "
|
|
145
|
+
r"'bin_name': 'gha-utils-linux-x64-build-[a-z0-9]+\.bin'\}, "
|
|
139
146
|
r"\{'os': 'macos-15', 'entry_point': 'gha-utils', "
|
|
140
147
|
r"'commit': '[a-z0-9]+', "
|
|
141
148
|
r"'bin_name': 'gha-utils-macos-arm64-build-[a-z0-9]+\.bin'\}, "
|
|
142
149
|
r"\{'os': 'macos-13', 'entry_point': 'gha-utils', "
|
|
143
150
|
r"'commit': '[a-z0-9]+', 'bin_name': "
|
|
144
151
|
r"'gha-utils-macos-x64-build-[a-z0-9]+\.bin'\}, "
|
|
152
|
+
r"\{'os': 'windows-11-arm', 'entry_point': 'gha-utils', "
|
|
153
|
+
r"'commit': '[a-z0-9]+', "
|
|
154
|
+
r"'bin_name': 'gha-utils-windows-arm64-build-[a-z0-9]+\.exe'\}, "
|
|
145
155
|
r"\{'os': 'windows-2025', 'entry_point': 'gha-utils', "
|
|
146
156
|
r"'commit': '[a-z0-9]+', "
|
|
147
157
|
r"'bin_name': 'gha-utils-windows-x64-build-[a-z0-9]+\.exe'\}\); "
|
|
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
|