You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中按矩阵值调用对应仓库密钥?

动态调用GitHub Actions矩阵对应的密钥

在使用GitHub Actions矩阵部署多项目时,可通过密钥的索引引用语法实现根据matrix值动态匹配对应密钥,具体修改如下:

修改后的完整工作流配置

jobs:
  deploy:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        projects: ['Api', 'Web']

    steps:
      - name: Download
        uses: actions/download-artifact@v3
        with:
          name: ${{ matrix.projects }}
          path: ${{ github.workspace }}

      - name: Publish
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ matrix.projects }}
          # 动态拼接密钥名称并引用
          publish-profile: ${{ secrets[format('AZURE_PROFILE_{0}', matrix.projects)] }}
          package: ${{ github.workspace }}/${{ matrix.projects }}.nupkg

两种动态引用密钥的写法

写法1:使用format函数(可读性更强)

通过format函数将固定前缀与matrix变量拼接成完整密钥名称,再通过方括号索引引用:

publish-profile: ${{ secrets[format('AZURE_PROFILE_{0}', matrix.projects)] }}

写法2:直接字符串拼接

直接通过+运算符拼接字符串,同样用方括号索引引用:

publish-profile: ${{ secrets['AZURE_PROFILE_' + matrix.projects] }}

注意事项

  • 确保仓库中已创建对应名称的密钥(AZURE_PROFILE_Api、AZURE_PROFILE_Web),GitHub Secrets大小写敏感,需与matrix中的值完全匹配。
  • 动态引用时必须使用方括号[]语法,不能使用点.语法(如secrets.AZURE_PROFILE_${{ matrix.projects }}是无效写法)。

内容的提问来源于stack exchange,提问作者Miguel Moura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:26:19