#github #continuous-integration #devops #github-actions
#github #непрерывная интеграция #devops #github-действия
Вопрос:
У меня такая ситуация:
jobs:
shake:
name: 'NodeJS ${{ matrix.node }}'
runs-on: ubuntu-latest
strategy:
matrix:
fruit: [strawberry, banana, apple]
steps:
- run: echo "::set-output name=action_fruit::${{ matrix.fruit }}"
Я бы хотел выполнить job
или step
после завершения всей матрицы.
- Я должен иметь возможность запускать задание / шаг независимо от сбоя
- Я также должен иметь доступ к их выводам.
Ответ №1:
Кажется, что вы можете достичь желаемого результата, используя if: always()
свою зависимую работу. Дополнительная информация доступна здесь: https://github.community/t/run-dependent-job-even-on-failure/115914
jobs:
shake:
...
post_shake:
if: ${{ always() }}
needs: [shake]
steps:
...
Комментарии:
1. Ко второй части вашего вопроса: доступ к выводам матрицы заданий не работает должным образом, см. github.community/t/ …
2. Нет необходимости использовать интерполяцию всегда, просто используйте
if: always()
Ответ №2:
Я сделал это: вы должны добавить needs
предложение в следующее задание, например
jobs:
shake:
...
post_shake:
needs: [shake]
steps:
...
Комментарии:
1.
job.needs
Определяет все задания, которые должны быть успешно завершены до запуска этого задания.так что, похоже, он не запускается, если какой-либо из фрагментов shake терпит неудачу…