Difference between revisions of "Serve.cfg:problem:vcs compile cmd"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/se...") |
(...) |
||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/<tt>[[serve.cfg:problem:vcs_compile_cmd|vcs_compile_cmd]]</tt> | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/<tt>[[serve.cfg:problem:vcs_compile_cmd|vcs_compile_cmd]]</tt> | ||
+ | |||
+ | Данная конфигурационная переменная позволяет задать команду, | ||
+ | которая будет выполняться при компиляции посылки в режиме | ||
+ | [[Интеграция с github/gitlab|интеграции с системами контроля версий]]. | ||
+ | |||
+ | Команде компиляции передаются следующие аргументы командной строки: | ||
+ | * язык программирования текущей посылки | ||
+ | * рабочий каталог компиляции | ||
+ | * имя выходного файла. Выходной файл должен быть создан в рабочем | ||
+ | каталоге компиляции. | ||
+ | |||
+ | Кроме того, команде компиляции передаются все переменные окружения, | ||
+ | которые были заданы в конфигурации задачи | ||
+ | с помощью <tt>[[serve.cfg:problem:lang_compiler_env|lang_compiler_env]]</tt>. | ||
+ | |||
+ | Команда компиляции работает в каталоге <code>source</code> | ||
+ | архива посылки. Команда компиляции работает с теми же правами, | ||
+ | что и стандартные скрипты компиляции языков программирования. | ||
+ | Если настроена [[изоляция недоверенных процессов в контейнерах]], | ||
+ | то и команда компиляции будет контейнеризирована. | ||
+ | |||
+ | Команда компиляции должна сформировать выходной файл, имя | ||
+ | которого задано в аргументе командной строки. При успехе скрипт | ||
+ | сборки должен завершиться с кодом 0. | ||
+ | |||
+ | Рекомендуется, чтобы команда компиляции была скопирована | ||
+ | в склонированный каталог с помощью | ||
+ | [[serve.cfg:problem:post_pull_cmd|команды постобработки]]. | ||
+ | Если команда компиляции называется <code>build-cmd</code>, | ||
+ | то значение переменной <code>vcs_compile_cmd</code> | ||
+ | надо установить в <code>./build-cmd</code>. | ||
+ | |||
+ | Если переменная <code>vcs_compile_cmd</code> не установлена, | ||
+ | по умолчанию команда компиляции запускается командой | ||
+ | <code>./build</code>. Можно назвать команду компиляции <code>build</code> | ||
+ | и не устанавливать переменную <code>vcs_compile_cmd</code> | ||
+ | явно. | ||
+ | |||
+ | Значение конфигурационной переменной наследуется из абстрактных задач. | ||
+ | |||
+ | Пример. | ||
+ | |||
+ | [problem] | ||
+ | # ... | ||
+ | enable_vcs | ||
+ | vcs_compile_cmd = "build-cmd" | ||
+ | |||
+ | Поддерживается начиная с версии [[изменения в версии 3.10.0|3.10.0]]. |
Latest revision as of 08:55, 24 December 2022
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Конфигурационные параметры задач/vcs_compile_cmd
Данная конфигурационная переменная позволяет задать команду, которая будет выполняться при компиляции посылки в режиме интеграции с системами контроля версий.
Команде компиляции передаются следующие аргументы командной строки:
- язык программирования текущей посылки
- рабочий каталог компиляции
- имя выходного файла. Выходной файл должен быть создан в рабочем
каталоге компиляции.
Кроме того, команде компиляции передаются все переменные окружения, которые были заданы в конфигурации задачи с помощью lang_compiler_env.
Команда компиляции работает в каталоге source
архива посылки. Команда компиляции работает с теми же правами,
что и стандартные скрипты компиляции языков программирования.
Если настроена изоляция недоверенных процессов в контейнерах,
то и команда компиляции будет контейнеризирована.
Команда компиляции должна сформировать выходной файл, имя которого задано в аргументе командной строки. При успехе скрипт сборки должен завершиться с кодом 0.
Рекомендуется, чтобы команда компиляции была скопирована
в склонированный каталог с помощью
команды постобработки.
Если команда компиляции называется build-cmd
,
то значение переменной vcs_compile_cmd
надо установить в ./build-cmd
.
Если переменная vcs_compile_cmd
не установлена,
по умолчанию команда компиляции запускается командой
./build
. Можно назвать команду компиляции build
и не устанавливать переменную vcs_compile_cmd
явно.
Значение конфигурационной переменной наследуется из абстрактных задач.
Пример.
[problem] # ... enable_vcs vcs_compile_cmd = "build-cmd"
Поддерживается начиная с версии 3.10.0.