Skip to content

Commit 71a94ef

Browse files
KSXGitHubclaude
andauthored
ci: replace ::set-output with $GITHUB_OUTPUT (#384)
Updates the GitHub Actions workflow script to use the new `GITHUB_OUTPUT` environment variable method for setting outputs, replacing the deprecated `::set-output::` syntax. https://claude.ai/code/session_01DNUdELQ1xnVwtZbhdz3K9A --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 439455e commit 71a94ef

1 file changed

Lines changed: 26 additions & 16 deletions

File tree

ci/github-actions/release-type.py3

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

22+
github_output = environ.get('GITHUB_OUTPUT', None)
23+
24+
if not github_output:
25+
print('::error ::Environment variable GITHUB_OUTPUT is required but missing')
26+
exit(1)
27+
28+
def set_output(name: str, value: str):
29+
with open(github_output, 'a') as output_file:
30+
print(f'{name}={value}', file=output_file)
31+
2232
with open('Cargo.toml') as cargo_toml:
2333
data = toml.load(cargo_toml)
2434
version = dict_path(data, 'package', 'version')
2535

2636
if version != release_tag:
2737
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}')
38+
set_output('release_type', 'none')
39+
set_output('is_release', 'false')
40+
set_output('is_prerelease', 'false')
41+
set_output('release_tag', release_tag)
3242
exit(0)
3343

3444
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}')
45+
set_output('release_type', 'prerelease')
46+
set_output('is_release', 'true')
47+
set_output('is_prerelease', 'true')
48+
set_output('release_tag', release_tag)
3949
exit(0)
4050

4151
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}')
52+
set_output('release_type', 'official')
53+
set_output('is_release', 'true')
54+
set_output('is_prerelease', 'false')
55+
set_output('release_tag', release_tag)
4656
exit(0)
4757

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}')
58+
set_output('release_type', 'none')
59+
set_output('is_release', 'false')
60+
set_output('is_prerelease', 'false')
61+
set_output('release_tag', release_tag)
5262
exit(0)

0 commit comments

Comments
 (0)