У меня есть следующий рабочий процесс действий GitHub:
name: Workflow
on: [push]
permissions:
id-token: write
contents: read
jobs:
workflow:
runs-on: windows-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
...
- name: Run code
id: exit_code
run: |
$result = python test/test_1.py
echo "my_output=$result" >> "$GITHUB_OUTPUT"
- name: Check Output and Fail if Not Equal to 0
shell: bash
run: |
output_value="${{ steps.exit_code.outputs.my_output }}"
if [[ "$output_value" != "0" ]]; then
echo "Output value is not 0. Failing the action."
exit 1
else
echo "Output value is 0. Continuing with the action."
fi
Скрипт работает как положено, и я хотел бы сохранить его вывод в действиях GitHub, чтобы можно было проверить его на последнем этапе. Скрипт возвращает целое число с выходным_значением от 0 до 4. Я хотел бы завершить рабочий процесс, если выходное_значение != 0.
Я получаю сообщение об ошибке, что значение, переданное следующему шаг — это просто пустая строка вместо ожидаемого числа:
Run if [[ "" -ne "0" ]]; then
if [[ "" -ne "0" ]]; then
echo "Output value is not 0. Failing the action."
exit 1
else
echo "Output value is 0. Continuing with the action."
fi
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
Вот как выглядит файл Python:
...
def test():
...
return exit_code
if __name__ == "__main__":
exit_code_final = test()
print(exit_code_final)
Я тоже пробовал это, основываясь на другом ответе:
...
def test():
...
return exit_code
if __name__ == "__main__":
print(test())
Подробнее здесь: https://stackoverflow.com/questions/786 ... ows-latest