我们正在 GitHubn Actions 中构建一个 maui 项目。 为了增加 android 版本的 versionCode,我们使用 github.run_number + 偏移量,以使其领先于 Google Play 中部署的版本代码。
- name: Calculate version-code
env:
VERSION: ${{ github.run_number }}
run: |
echo "GITHUB_RUN_NUMBER_WITH_OFFSET=$(($VERSION+300))" >> $GITHUB_ENV
- name: Update build number in AndroidManifest.xml
uses: damienaicheh/[email protected]
with:
android-manifest-path: 'Project/Platforms/Android/AndroidManifest.xml'
version-code: ${{ env.GITHUB_RUN_NUMBER_WITH_OFFSET }}
version-name: '${{ steps.get_version_from_manifest.outputs.versionName }}'
print-file: true
到目前为止,效果很好,
runs-on: macos-13
。
为了降低成本,我们改为runs-on: windows-latest
。
我们也尝试过 ubuntu runner,但它无法构建 maui 项目。
我了解到,因为 Windows 运行程序使用不同于 ubuntu 和 mac 的另一种 shell,所以 Windows 使用 pwsh。它需要 shell 执行的另一种语法。
我们已更改为:
- name: Calculate version-code
env:
VER: ${{ github.run_number }}
run: |
echo "GITHUB_RUN_NUMBER_WITH_OFFSET=$(( $Env:VERSION+300 ))" | Out-File -FilePath $env:GITHUB_ENV -Append
这设置了变量,但它连接了字符串,而不是对它们求和,使结果类似于 103300 而不是 403。 是否可以进行算术运算并将其存储在 windows-runner 上的环境变量中?
按照 MrBean Bremen 在该问题的评论中提出的那样,设置 *
shell: bash
可以解决该问题。
- name: Calculate version-code
shell: bash
env:
VERSION: ${{ github.run_number }}
run: |
echo "GITHUB_RUN_NUMBER_WITH_OFFSET=$(($VERSION+100))" >> $GITHUB_ENV