@@ -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+
2232with 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
3444if 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
4151if 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 )
5262exit (0 )
0 commit comments