threads / patch / 58910

patchCI: migrate away from deprecated "set-output" syntax

Subject: [PATCH] CI: migrate away from deprecated "set-output" syntax

## tl;dr

9 messages between Dec 6, 2022 and Dec 8, 2022. Diffs are folded; open one to read it.

replies: 8people: 4as markdown or json

Ævar Arnfjörð Bjarmason· Dec 6, 2022, 20:00 UTC · lore

As noted in [1] and the warnings the CI itself is spewing echoing outputs to stdout is deprecated, and they should be written to "$GITHUB_OUTPUT" instead.

1. https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---

Along with my just-sent https://lore.kernel.org/git/patch-1.1-4c1dcc89e7a-20221206T195552Z-avarab@gmail.com/ and Junio's https://lore.kernel.org/git/xmqq1qpd9bys.fsf@gitster.g/ this should make our CI warning free.

 .github/workflows/main.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to .github/workflows/main.yml +1 −1
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9afacfa0b33..d1e16009b11 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,7 +34,7 @@ jobs:
           then
             enabled=no
           fi
-          echo "::set-output name=enabled::$enabled"
+          echo "enabled=$enabled" >>$GITHUB_OUTPUT
       - name: skip if the commit or tree was already tested
         id: skip-if-redundant
         uses: actions/github-script@v6
-- 
2.39.0.rc2.1017.g5f0c708352f
Victoria Dye· Dec 6, 2022, 20:50 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH] CI: migrate away from deprecated "set-output" syntax

Ævar Arnfjörð Bjarmason wrote:
Show 5 quoted lines
> As noted in [1] and the warnings the CI itself is spewing echoing
> outputs to stdout is deprecated, and they should be written to
> "$GITHUB_OUTPUT" instead.
> 
> 1. https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Interesting, I didn't realize this changed! The new syntax is certainly much nicer to read.

Show 11 quoted lines
> 
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
> 
> Along with my just-sent
> https://lore.kernel.org/git/patch-1.1-4c1dcc89e7a-20221206T195552Z-avarab@gmail.com/
> and Junio's https://lore.kernel.org/git/xmqq1qpd9bys.fsf@gitster.g/
> this should make our CI warning free.
> 
>  .github/workflows/main.yml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Should this also be updated for 'l10n.yml'? There are two usages of '::set-output' there as well.

Show 11 quoted lines
> 
> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
> index 9afacfa0b33..d1e16009b11 100644
> --- a/.github/workflows/main.yml
> +++ b/.github/workflows/main.yml
> @@ -34,7 +34,7 @@ jobs:
>            then
>              enabled=no
>            fi
> -          echo "::set-output name=enabled::$enabled"
> +          echo "enabled=$enabled" >>$GITHUB_OUTPUT
Looks good!
>        - name: skip if the commit or tree was already tested
>          id: skip-if-redundant
>          uses: actions/github-script@v6
Ævar Arnfjörð Bjarmason· Dec 6, 2022, 21:08 UTC · re: Victoria Dye · lore

Re: [PATCH] CI: migrate away from deprecated "set-output" syntax

On Tue, Dec 06 2022, Victoria Dye wrote:
Show 16 quoted lines
> Ævar Arnfjörð Bjarmason wrote:
> [...]
>> 
>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>> ---
>> 
>> Along with my just-sent
>> https://lore.kernel.org/git/patch-1.1-4c1dcc89e7a-20221206T195552Z-avarab@gmail.com/
>> and Junio's https://lore.kernel.org/git/xmqq1qpd9bys.fsf@gitster.g/
>> this should make our CI warning free.
>> 
>>  .github/workflows/main.yml | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> Should this also be updated for 'l10n.yml'? There are two usages of
> '::set-output' there as well.

Yes, I just missed that one. I'll fix that, but will wait a bit to see if there's any other comments first. Thanks!

Taylor Blau· Dec 7, 2022, 00:56 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH] CI: migrate away from deprecated "set-output" syntax

On Tue, Dec 06, 2022 at 10:08:36PM +0100, Ævar Arnfjörð Bjarmason wrote:
Show 5 quoted lines
> > Should this also be updated for 'l10n.yml'? There are two usages of
> > '::set-output' there as well.
>
> Yes, I just missed that one. I'll fix that, but will wait a bit to see
> if there's any other comments first. Thanks!

No concerns from me. I noticed this warning when I was looking at all of the CI builds a few weeks ago.

This transition looks obviously correct to me, and as long as we apply it in the l10n workflow as Victoria mentions, this should be good to go.

Thanks, Taylor

Ævar Arnfjörð Bjarmason· Dec 7, 2022, 01:49 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH v2] CI: migrate away from deprecated "set-output" syntax

As noted in [1] and the warnings the CI itself is spewing echoing outputs to stdout is deprecated, and they should be written to "$GITHUB_OUTPUT" instead.

1. https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
Range-diff against v1:
1:  deb65805345 ! 1:  4e7db0db3be CI: migrate away from deprecated "set-output" syntax
    @@ Commit message
     
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
    + ## .github/workflows/l10n.yml ##
    +@@ .github/workflows/l10n.yml: jobs:
    +             base=${{ github.event.before }}
    +             head=${{ github.event.after }}
    +           fi
    +-          echo "::set-output name=base::$base"
    +-          echo "::set-output name=head::$head"
    ++          cat >>$GITHUB_OUTPUT <<-EOF
    ++          base=$base
    ++          head=$head
    ++          EOF
    +       - name: Run partial clone
    +         run: |
    +           git -c init.defaultBranch=master init --bare .
    +
      ## .github/workflows/main.yml ##
     @@ .github/workflows/main.yml: jobs:
                then
 .github/workflows/l10n.yml | 6 ++++--
 .github/workflows/main.yml | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)
Show changes to 2 files +5 −3

.github/workflows/l10n.yml, .github/workflows/main.yml

diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml
index 27f72f0ff34..8fa073db2dc 100644
--- a/.github/workflows/l10n.yml
+++ b/.github/workflows/l10n.yml
@@ -23,8 +23,10 @@ jobs:
             base=${{ github.event.before }}
             head=${{ github.event.after }}
           fi
-          echo "::set-output name=base::$base"
-          echo "::set-output name=head::$head"
+          cat >>$GITHUB_OUTPUT <<-EOF
+          base=$base
+          head=$head
+          EOF
       - name: Run partial clone
         run: |
           git -c init.defaultBranch=master init --bare .
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9afacfa0b33..d1e16009b11 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,7 +34,7 @@ jobs:
           then
             enabled=no
           fi
-          echo "::set-output name=enabled::$enabled"
+          echo "enabled=$enabled" >>$GITHUB_OUTPUT
       - name: skip if the commit or tree was already tested
         id: skip-if-redundant
         uses: actions/github-script@v6
-- 
2.39.0.rc2.1019.gce04d262ea9
Junio C Hamano· Dec 7, 2022, 23:57 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH v2] CI: migrate away from deprecated "set-output" syntax

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 6 quoted lines
>     +-          echo "::set-output name=base::$base"
>     +-          echo "::set-output name=head::$head"
>     ++          cat >>$GITHUB_OUTPUT <<-EOF
>     ++          base=$base
>     ++          head=$head
>     ++          EOF
Hmph, I do not trust this part.

The redirection operator "<<-" causes the leading tabs in the here-doc-text stripped, but the .yml file does not indent with tab to begin with.

I suspect the leading spaces will all be stripped and not seen by the shell, so the distinction may not matter, which means the use of "<<-" is very much misleading.

Let's stick to the dumb and proven
	echo "base=$base" >>$GITHUB_OUTPUT
	echo "head=$head" >>$GITHUB_OUTPUT
instead, which is used throughout the rewrite in this patch.
Ævar Arnfjörð Bjarmason· Dec 8, 2022, 00:27 UTC · re: Junio C Hamano · lore

Re: [PATCH v2] CI: migrate away from deprecated "set-output" syntax

On Thu, Dec 08 2022, Junio C Hamano wrote:
Show 25 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>
>>     +-          echo "::set-output name=base::$base"
>>     +-          echo "::set-output name=head::$head"
>>     ++          cat >>$GITHUB_OUTPUT <<-EOF
>>     ++          base=$base
>>     ++          head=$head
>>     ++          EOF
>
> Hmph, I do not trust this part.
>
> The redirection operator "<<-" causes the leading tabs in the
> here-doc-text stripped, but the .yml file does not indent with tab
> to begin with.
>
> I suspect the leading spaces will all be stripped and not seen by
> the shell, so the distinction may not matter, which means the use of
> "<<-" is very much misleading.
>
> Let's stick to the dumb and proven
>
> 	echo "base=$base" >>$GITHUB_OUTPUT
> 	echo "head=$head" >>$GITHUB_OUTPUT
>
> instead, which is used throughout the rewrite in this patch.
Sure, I'll re-roll with that.
Junio C Hamano· Dec 8, 2022, 05:41 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH v2] CI: migrate away from deprecated "set-output" syntax

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 8 quoted lines
>> Let's stick to the dumb and proven
>>
>> 	echo "base=$base" >>$GITHUB_OUTPUT
>> 	echo "head=$head" >>$GITHUB_OUTPUT
>>
>> instead, which is used throughout the rewrite in this patch.
>
> Sure, I'll re-roll with that.

Ah, no need. I've already amended the one under discussion and it is in 'next' together with the last bit from Johannes to use the updated upload/download artifact Action.

Thanks.
Ævar Arnfjörð Bjarmason· Dec 8, 2022, 00:33 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH v3] CI: migrate away from deprecated "set-output" syntax

As noted in [1] and the warnings the CI itself is spewing echoing outputs to stdout is deprecated, and they should be written to "$GITHUB_OUTPUT" instead.

1. https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
Range-diff against v2:
1:  4e7db0db3be ! 1:  0519cc1105a CI: migrate away from deprecated "set-output" syntax
    @@ .github/workflows/l10n.yml: jobs:
                fi
     -          echo "::set-output name=base::$base"
     -          echo "::set-output name=head::$head"
    -+          cat >>$GITHUB_OUTPUT <<-EOF
    -+          base=$base
    -+          head=$head
    -+          EOF
    ++          echo "base=$base" >>$GITHUB_OUTPUT
    ++          echo "head=$head" >>$GITHUB_OUTPUT
            - name: Run partial clone
              run: |
                git -c init.defaultBranch=master init --bare .
 .github/workflows/l10n.yml | 4 ++--
 .github/workflows/main.yml | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Show changes to 2 files +3 −3

.github/workflows/l10n.yml, .github/workflows/main.yml

diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml
index 27f72f0ff34..2915c595b4f 100644
--- a/.github/workflows/l10n.yml
+++ b/.github/workflows/l10n.yml
@@ -23,8 +23,8 @@ jobs:
             base=${{ github.event.before }}
             head=${{ github.event.after }}
           fi
-          echo "::set-output name=base::$base"
-          echo "::set-output name=head::$head"
+          echo "base=$base" >>$GITHUB_OUTPUT
+          echo "head=$head" >>$GITHUB_OUTPUT
       - name: Run partial clone
         run: |
           git -c init.defaultBranch=master init --bare .
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9afacfa0b33..d1e16009b11 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,7 +34,7 @@ jobs:
           then
             enabled=no
           fi
-          echo "::set-output name=enabled::$enabled"
+          echo "enabled=$enabled" >>$GITHUB_OUTPUT
       - name: skip if the commit or tree was already tested
         id: skip-if-redundant
         uses: actions/github-script@v6
-- 
2.39.0.rc2.1019.gce04d262ea9

← back to recent threads