Skip to content

Commit c064350

Browse files
committed
fix(ci): replace deprecated ::set-output with $GITHUB_OUTPUT
The `::set-output` workflow command was deprecated by GitHub Actions in October 2022 and is being removed. This migrates release-type.py3 to write outputs to the `$GITHUB_OUTPUT` environment file instead. https://claude.ai/code/session_01DNUdELQ1xnVwtZbhdz3K9A
1 parent eea9308 commit c064350

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

ci/github-actions/release-type.py3

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,34 +19,38 @@ def dict_path(data, head: str, *tail: str):
1919
if not tail: return value
2020
return dict_path(value, *tail)
2121

22+
def set_output(name: str, value: str):
23+
with open(environ['GITHUB_OUTPUT'], 'a') as fh:
24+
print(f'{name}={value}', file=fh)
25+
2226
with open('Cargo.toml') as cargo_toml:
2327
data = toml.load(cargo_toml)
2428
version = dict_path(data, 'package', 'version')
2529

2630
if version != release_tag:
2731
print(f'::warning ::RELEASE_TAG ({release_tag}) does not match Cargo.toml#package.version ({version})')
28-
print('::set-output name=release_type::none')
29-
print('::set-output name=is_release::false')
30-
print('::set-output name=is_prerelease::false')
31-
print(f'::set-output name=release_tag::{release_tag}')
32+
set_output('release_type', 'none')
33+
set_output('is_release', 'false')
34+
set_output('is_prerelease', 'false')
35+
set_output('release_tag', release_tag)
3236
exit(0)
3337

3438
if re.match(r'^[0-9]+\.[0-9]+\.[0-9]+-.+$', release_tag):
35-
print('::set-output name=release_type::prerelease')
36-
print('::set-output name=is_release::true')
37-
print('::set-output name=is_prerelease::true')
38-
print(f'::set-output name=release_tag::{release_tag}')
39+
set_output('release_type', 'prerelease')
40+
set_output('is_release', 'true')
41+
set_output('is_prerelease', 'true')
42+
set_output('release_tag', release_tag)
3943
exit(0)
4044

4145
if re.match(r'^[0-9]+\.[0-9]+\.[0-9]+$', release_tag):
42-
print('::set-output name=release_type::official')
43-
print('::set-output name=is_release::true')
44-
print('::set-output name=is_prerelease::false')
45-
print(f'::set-output name=release_tag::{release_tag}')
46+
set_output('release_type', 'official')
47+
set_output('is_release', 'true')
48+
set_output('is_prerelease', 'false')
49+
set_output('release_tag', release_tag)
4650
exit(0)
4751

48-
print('::set-output name=release_type::none')
49-
print('::set-output name=is_release::false')
50-
print('::set-output name=is_prerelease::false')
51-
print(f'::set-output name=release_tag::{release_tag}')
52+
set_output('release_type', 'none')
53+
set_output('is_release', 'false')
54+
set_output('is_prerelease', 'false')
55+
set_output('release_tag', release_tag)
5256
exit(0)

0 commit comments

Comments
 (0)