Skip to content

Commit e7cf847

Browse files
Action: Replace deprecated set-output command (#668)
* Action: Replace deprecated set-output command The set-output workflow command has been deprecated [1] and replaced with writing to an environment file. Update .github/action_helper.py to use the new file. [1] https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ * Run "Action" workflow if PR changes helper script Changing .github/action_helper.py changes the behavior of the action even if action.yml doesn't change. This makes tests run anyway.
1 parent 3fad6a5 commit e7cf847

File tree

4 files changed

+29
-30
lines changed

4 files changed

+29
-30
lines changed

.github/action_helper.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ def setup_action(input_: str) -> None:
6565
if len(versions) > 20:
6666
raise ValueError(f"too many interpreters to install: {len(versions)} > 20")
6767

68-
print(f"::set-output name=interpreter_count::{len(versions)}")
68+
print(f"interpreter_count={len(versions)}")
6969
for i, version in enumerate(versions):
70-
print(f"::set-output name=interpreter_{i}::{version}")
70+
print(f"interpreter_{i}={version}")
7171

7272

7373
if __name__ == "__main__":

.github/workflows/action.yml

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
pull_request:
88
paths:
99
- '.github/workflows/action.yml'
10+
- '.github/action_helper.py'
1011
- 'action.yml'
1112
env:
1213
FORCE_COLOR: "1"

action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ runs:
2121
- name: "Validate input"
2222
id: helper
2323
run: >
24-
'${{ steps.localpython.outputs.python-path }}' '${{ github.action_path }}/.github/action_helper.py' '${{ inputs.python-versions }}'
24+
'${{ steps.localpython.outputs.python-path }}' '${{ github.action_path }}/.github/action_helper.py' '${{ inputs.python-versions }}' >>${GITHUB_OUTPUT}
2525
shell: bash
2626

2727
- uses: actions/setup-python@v4

tests/test_action_helper.py

+25-27
Original file line numberDiff line numberDiff line change
@@ -43,45 +43,43 @@ def test_filter_version_invalid_minor():
4343

4444
VALID_VERSION_LISTS = {
4545
"3.7, 3.8, 3.9, 3.10, 3.11, pypy-3.7, pypy-3.8, pypy-3.9": [
46-
"::set-output name=interpreter_count::8",
47-
"::set-output name=interpreter_0::pypy-3.7",
48-
"::set-output name=interpreter_1::pypy-3.8",
49-
"::set-output name=interpreter_2::pypy-3.9",
50-
"::set-output name=interpreter_3::3.7",
51-
"::set-output name=interpreter_4::3.8",
52-
"::set-output name=interpreter_5::3.9",
53-
"::set-output name=interpreter_6::3.10",
54-
"::set-output name=interpreter_7::3.11",
46+
"interpreter_count=8",
47+
"interpreter_0=pypy-3.7",
48+
"interpreter_1=pypy-3.8",
49+
"interpreter_2=pypy-3.9",
50+
"interpreter_3=3.7",
51+
"interpreter_4=3.8",
52+
"interpreter_5=3.9",
53+
"interpreter_6=3.10",
54+
"interpreter_7=3.11",
5555
],
5656
"": [
57-
"::set-output name=interpreter_count::1",
58-
"::set-output name=interpreter_0::3.11",
57+
"interpreter_count=1",
58+
"interpreter_0=3.11",
5959
],
6060
"3.11.4": [
61-
"::set-output name=interpreter_count::1",
62-
"::set-output name=interpreter_0::3.11.4",
61+
"interpreter_count=1",
62+
"interpreter_0=3.11.4",
6363
],
6464
"3.9-dev,pypy3.9-nightly": [
65-
"::set-output name=interpreter_count::3",
66-
"::set-output name=interpreter_0::pypy3.9-nightly",
67-
"::set-output name=interpreter_1::3.9-dev",
68-
"::set-output name=interpreter_2::3.11",
65+
"interpreter_count=3",
66+
"interpreter_0=pypy3.9-nightly",
67+
"interpreter_1=3.9-dev",
68+
"interpreter_2=3.11",
6969
],
7070
"3.11, 3.10, 3.9, 3.8": [
71-
"::set-output name=interpreter_count::4",
72-
"::set-output name=interpreter_0::3.10",
73-
"::set-output name=interpreter_1::3.9",
74-
"::set-output name=interpreter_2::3.8",
75-
"::set-output name=interpreter_3::3.11",
71+
"interpreter_count=4",
72+
"interpreter_0=3.10",
73+
"interpreter_1=3.9",
74+
"interpreter_2=3.8",
75+
"interpreter_3=3.11",
7676
],
77-
",".join(f"3.{minor}" for minor in range(20)): [
78-
"::set-output name=interpreter_count::20"
79-
]
77+
",".join(f"3.{minor}" for minor in range(20)): ["interpreter_count=20"]
8078
+ [
81-
f"::set-output name=interpreter_{i}::3.{minor}"
79+
f"interpreter_{i}=3.{minor}"
8280
for i, minor in enumerate(minor_ for minor_ in range(20) if minor_ != 11)
8381
]
84-
+ ["::set-output name=interpreter_19::3.11"],
82+
+ ["interpreter_19=3.11"],
8583
}
8684

8785

0 commit comments

Comments
 (0)