Serve.cfg:problem:vcs compile cmd

From EjudgeWiki

Навигация: Главная страница/Система 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.