Я работаю над рабочим процессом GitHub Action , который использует массив для ввода.
Я использовал это решение для имитации массива:
- uses: actions/my-custom-ci
with:
subdirectories: src/main/java src/test/java
Но я хочу использовать такое решение:
- uses: actions/my-custom-ci
with:
subdirectories:
- src/main/java
- src/test/java
Можно ли использовать ввод массива для пользовательских действий GitHub? Если да, то как мы можем использовать ввод массива для пользовательских действий GitHub?
На момент написания этого ответа GitHub Actions не поддерживает типы array
в качестве входных данных для действий. Он поддерживает только string | number | boolean
(схема: с ref: определения/окружение). Таким образом, ваш подход является допустимым обходным путем на данный момент.
Просто обратите внимание, что у исполнителей Github по умолчанию установлено jq , а GitHub Actions предлагает такие методы, как fromJSON , toJSON и 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
Определенно, это может быть не то, чего вы хотите достичь. И, возможно, не стоит рефакторить ваше действие. Но пока это обходной путь.