Скрипт Python, вызывающий vcvarsall.bat, не работает из GitLab CIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Скрипт Python, вызывающий vcvarsall.bat, не работает из GitLab CI

Сообщение Anonymous »

У меня есть скрипт Python, который работает с cmd.exe и powershell.exe, но не работает с заданием запуска GitLab в Windows.

Код: Выделить всё

def build():
for c in ["Debug", "Release"]:
subprocess.check_call(
f'vcvarsall.bat x64 && \
cmake -G "NMake Makefiles" \
-B{os.path.dirname(os.path.realpath(__file__))}/src/x64/{c} \
-S{os.path.dirname(os.path.realpath(__file__))}/src \
-DCMAKE_BUILD_TYPE={c} & \
cmake --build {os.path.dirname(os.path.realpath(__file__))}/src/x64/{c}',
)

if __name__ == "__main__":
build()
Если я запускаю скрипт из cmd.exe или powershell.exe вот так: python build.py, все работает как положено — vcvarsall .bat правильно настраивает среду, поэтому последующий вызов cmake содержит все необходимые переменные среды.
Запуск сценария из задания запуска GitLab в Windows с помощью .gitlab-ci.yml ниже не удается.

Код: Выделить всё

build:
stage: build
script:
- python build.py
tags:
- windows
В стандартном выводе задания пользовательского интерфейса GitLab я могу подтвердить, что vcvarsall.bat запускается, и после этого cmake:
Изображение
В CMakeError.log следующая ошибка сообщается:
Изображение

Приведенная выше ошибка ссылки заставляет меня думать, что запуск vcvarsall.bat из задания запуска GitLab не полностью настраивает среду - он меняет среду, но недостаточно для успешного завершения последующего cmake. Я вижу много различий между средой, настроенной с помощью vcvarsall.bat при запуске из задания запуска GitLab, и cmd.exe.
Например, слева среда, определенная при запуске скрипта из задания запуска GitLab, и справа от cmd.exe:
Изображение

Изображение

Изображение
Почему существуют эти экологические несоответствия и как их исправить?

Подробнее здесь: https://stackoverflow.com/questions/733 ... -gitlab-ci
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»