Я установил переменную среды, используя:
echo "::set-env name=PROJECT_TO_TEST::$(sh scripts/test.sh)"
test. sh просто повторяет "SomeString, MoreString"
Я вижу, что переменная PROJECT_TO_TEST правильно устанавливается, выполняя:
echo "env.PROJECT_TO_TEST = ${{ env.PROJECT_TO_TEST }}"
Который выводит "env.PROJECT_TO_TEST = SomeString, MoreString"
На следующем шаге я делаю проверку if, чтобы увидеть, что переменная PROJECT_TO_TEST содержит несколько строк, например:
- name: Conditionally Run
if: contains('${{ env.PROJECT_TO_TEST }}', 'SomeString')
run: |
echo "SomeString did exist and should run"
- name: Conditionally Run
if: contains('${{ env.PROJECT_TO_TEST }}', 'ShouldNotRun')
run: |
echo "ShouldNotRun"
В этом случае должна быть напечатана только «SomeString существовала и должна быть запущена», но также печатается «ShouldNotRun».
Полный код здесь: https://github.com/gomfucius/github-actions/blob/master/.github/workflows/pullrequest.yml
Рабочий процесс, который иллюстрирует проблему: https://github.com/gomfucius/github-actions/runs/590320131