Как использовать ввод массива для пользовательских действий GitHub

Я работаю над рабочим процессом 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?

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
3
0
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На момент написания этого ответа 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

Определенно, это может быть не то, чего вы хотите достичь. И, возможно, не стоит рефакторить ваше действие. Но пока это обходной путь.

Другие вопросы по теме