如何将数组输入用于自定义 GitHub Actions

Thr*_*ror 16 arrays github github-actions

我正在开发一个使用数组作为输入的GitHub Action工作流程。

我使用这个解决方案来模拟数组:

      - uses: actions/my-custom-ci
        with:
          subdirectories: src/main/java src/test/java
Run Code Online (Sandbox Code Playgroud)

但我想使用这样的解决方案:

      - uses: actions/my-custom-ci
        with:
          subdirectories: 
                - src/main/java 
                - src/test/java
Run Code Online (Sandbox Code Playgroud)

是否可以对自定义 GitHub Actions 使用数组输入?如果是,我们如何使用自定义 GitHub Actions 的数组输入?

Fcm*_*am5 19

在撰写此答案时,GitHub Actions 不支持array类型作为操作的输入。它仅支持string | number | boolean(架构:with参考definitions/env:)。所以你的方法目前是一个有效的解决方法。

请注意,jq默认情况下已安装 GitHub 运行程序,并且 GitHub Actions 提供了fromJSONtoJSON和 等方法join,如果您想要生成自定义操作的动态输入,这些方法可以帮助您创建更清晰的解决方案。

您可以检查google-github-actions/get-secretmanager-secrets的实现,它们接受由换行符指定的多个输入yaml,而不是作为数组:

    - id: 'secrets'
      uses: 'google-github-actions/get-secretmanager-secrets@v1'
      with:
        secrets: |-
          token:my-project/docker-registry-token
          anotherOne:my-project/a-secret
          anotherOneToo:my-project/another-secret
Run Code Online (Sandbox Code Playgroud)

当然,这可能不是您想要实现的目标。并且可能不值得重构您的操作。但目前这是一个解决方法。