Запуск командного файла с помощью gitlab ci и получение вывода

Я настроил свой проект gitlab с двумя файлами: один с пакетным файлом, который просто печатает hello world, другой файл - это файл .gitlab-ci.yml, который выполняет конвейер.

Код в командном файле:

ECHO OFF
ECHO 'Hello World'
PAUSE

Файл gitlab-ci.yml имеет тестовую стадию:

test:
    stage: test
    script:
        - echo 'test'
        - chmod +x ./hello-world.bat

Когда я вношу какие-либо изменения, конвейер запускается и успешно выполняется, но я не получаю требуемый результат из командного файла. Я что-то здесь упускаю?

Результат пайплайна выглядит так:

конвейер-результат


person deanavenger    schedule 05.09.2019    source источник


Ответы (2)


Из того, что я вижу, вы только добавляете разрешения +x к файлу, делая его исполняемым, но никогда не запускаете его.

Если вы измените свой gitlab-ci.yml на:

test:
    stage: test
    script:
        - echo 'test'
        - chmod +x ./hello-world.bat
        - ./hello-world.bat

При этом я не уверен на 100%, что это сработает. Поскольку это, похоже, работает в системе Linux, а сценарии .bat предназначены для систем на базе Windows. Пожалуйста, обратитесь к сценариям bash, чтобы узнать, как они работают.

person J. Meijers    schedule 05.09.2019

Поскольку я использую gitlab-ci runner в Windows, я создал скрипт python и отправил его в самостоятельный экземпляр github. В этом сценарии Python я просто запустил сценарий .bat, который затем запускается и показывает результат в конвейере проекта.

Скрипт выглядит так:

import subprocess
subprocess.call([r'C:\hello.bat'])

Это то, чего я хотел.

person deanavenger    schedule 05.09.2019