Difference between revisions of "Serve.cfg:problem:vcs compile cmd"

From EjudgeWiki
 
(...)
 
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.