How to fix "set-output" when reading nvmrc from the GitHub Actions?
Published
You may be getting the issue "The set-output
command is deprecated and will be disabled soon. Please upgrade to using Environment Files." from your Github workflow.
Few months ago, I choose to update some of my Github workflows to read from my .nvmrc
file instead of manually specifying my node version.
.github/workflows/production.yml
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Detect Node version
run: echo ::set-output name=NODE_VERSION::$(cat .nvmrc)
id: nvmrc
- name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ steps.nvmrc.outputs.NODE_VERSION }}
But since October 2022 and the runner version 2.298.2
, Github shows a warning regarding a future depreciation of the set-output
command.
After few trials, I figured out how to update using the $GITHUB_OUTPUT
instead:
.github/workflows/update-production.yml
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Detect Node version
run: echo "NODE_VERSION=$(cat .nvmrc)" >> $GITHUB_OUTPUT
id: nvmrc
# shell: bash (to be added if you use composite actions)
- name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: '${{ steps.nvmrc.outputs.NODE_VERSION }}'
And "voilà ", the warning should have disappeared and you should see the number of the version right after Use Node.js XXXX
in your workflow.
Has this been helpful to you?
You can support my work by sharing this article with others,
sponsoring me on Github or perhaps buy me a cup of coffee 😊
sponsoring me on Github or perhaps buy me a cup of coffee 😊
Comments
Share your thoughts! If you don't have a Github account, you can tweet it!