GitHub Action提示`set-output`已弃用,但未使用该命令的问题
问题
执行GitHub Action工作流时收到以下警告:
build-android
Theset-outputcommand is deprecated and will be disabled soon.
Please upgrade to using Environment Files.
但工作流代码中并未直接使用set-output命令,相关工作流代码如下:
on: workflow_dispatch name: Build jobs: build-android: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v3 - name: Install npm dependencies run: npm install - name: Build Android Release run: cd android && ./gradlew assembleRelease - name: Read package.json uses: tyankatsu0105/read-package-version-actions@v1 id: package-version - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: app-release.apk path: android/app/build/outputs/apk/release/ - name: Create Github Release uses: ncipollo/release-action@v1 with: artifacts: "android/app/build/outputs/apk/release/app-release.apk" tag: "v${{ steps.package-version.outputs.version }}" replacesArtifacts: false token: ${{ secrets.GITHUB_TOKEN }} allowUpdates: true
原因分析
警告并非来自你编写的工作流代码,而是来自你引用的第三方Action:tyankatsu0105/read-package-version-actions@v1。该旧版本Action内部使用了已被GitHub废弃的set-output命令传递版本信息,因此触发了警告。
解决方法
- 升级第三方Action版本:将
tyankatsu0105/read-package-version-actions升级到最新版本(如v2及以上),新版本已改用环境变量方式输出结果,不再依赖set-output命令。修改后的步骤代码如下:- name: Read package.json uses: tyankatsu0105/read-package-version-actions@v2 id: package-version - 替换为原生命令实现:如果不想依赖第三方Action,可直接用原生命令读取
package.json的版本号,替代原有步骤:
注:Ubuntu-latest环境默认预装- name: Read package.json version id: package-version run: echo "version=$(jq -r '.version' package.json)" >> $GITHUB_OUTPUTjq工具,无需额外安装。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

