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.