Имя задания GitActions на основе индекса матрицы вместо значения матрицы

#github-actions

Вопрос:

Я использую GitAction для запуска рабочего процесса с использованием матричного подхода, как показано ниже (упрощенно):

 name: Functional Tests
...
jobs:
  functional:
    ...
    strategy:
      matrix:
        range:
          - -e FT_FROM_IX=0 -e FT_TO_IX=300
          - -e FT_FROM_IX=301 -e FT_TO_IX=600
          - -e FT_FROM_IX=601 -e FT_TO_IX=900
          - -e FT_FROM_IX=901 -e FT_TO_IX=1200
          - -e FT_FROM_IX=1201

    steps:
      - uses: actions/checkout@v2

      - name: Run functional test
        run: |
          docker run  --network host -t --rm ${{ matrix.range }} -v $(pwd):/opt/fiware-orion ${{ env.TEST_IMAGE_NAME }} build -miqts functional
 

Это работает нормально, но я получаю уродливое описание на github, потому matrix.range что значение отображается как часть имени задания:

введите описание изображения здесь

Я хотел бы, чтобы мои задания были пронумерованы (например, функционально-1, функционально-2 и т.д.). Возможно ли это с помощью какого-либо выражения получить индекс элемента матрицы (что-то вроде ${{ matrix.range.index }} ) или любым другим способом?

Заранее спасибо!

Комментарии:

1. Эй, @fgalan, есть успехи?

2. Боюсь, пока не повезло 🙁 Было бы здорово, если бы сотрудники GitHub могли взглянуть на этот пост и что-нибудь рассказать 🙂

Ответ №1:

У меня был похожий вариант использования, я нашел простое решение:

  1. Измените диапазон матрицы на список объектов, содержащий order и range .
  2. Объедините order с ключом задания name .
  3. Используйте range ключ, как и раньше.

Надеюсь, действия на Github добавят индекс к заданиям матрицы, упрощая способ, которым мы различаем их.

 name: Functional Tests
...
jobs:
  functional:
    name: functional - ${{ matrix.payload.order }}
    ...
    strategy:
      matrix:
        payload:
          - { order: 1, range: '-e FT_FROM_IX=0 -e FT_TO_IX=300' }
          - { order: 2, range: '-e FT_FROM_IX=301 -e FT_TO_IX=600' }
          - { order: 3, range: '-e FT_FROM_IX=601 -e FT_TO_IX=900' }
          ...

    steps:
      - uses: actions/checkout@v2

      - name: Run functional test
        run: |
          docker run  --network host -t --rm ${{ matrix.payload.range }} -v $(pwd):/opt/fiware-orion ${{ env.TEST_IMAGE_NAME }} build -miqts functional
 

Комментарии:

1. Спасибо! Это прекрасно работает 🙂 В качестве дополнительной информации порядок может быть также нечисловым полем, т. е. order: 'f1'

2. Да, заказать можно все, что угодно, рад, что помог!