|
|
package errors
|
|
|
|
|
|
// ErrorCode — тип для кода ошибки.
|
|
|
type ErrorCode string
|
|
|
|
|
|
// Перечисление кодов ошибок для валидации.
|
|
|
const (
|
|
|
// Общие ошибки
|
|
|
ErrEmptyFile ErrorCode = "EMPTY_FILE" // файл пуст или отсутствует
|
|
|
ErrYamlSyntax ErrorCode = "YAML_SYNTAX_ERROR" // ошибка синтаксического анализа YAML
|
|
|
// Ошибки, связанные с job
|
|
|
ErrJobNameBlank ErrorCode = "JOB_NAME_BLANK" // имя задачи пустое
|
|
|
ErrMissingScript ErrorCode = "MISSING_SCRIPT" // отсутствует обязательное поле script (или run)
|
|
|
ErrBothScriptAndRun ErrorCode = "BOTH_SCRIPT_RUN" // одновременно присутствуют script и run
|
|
|
ErrJobStageNotExist ErrorCode = "JOB_STAGE_NOT_EXIST" // указан stage, которого нет в списке разрешённых
|
|
|
ErrUndefinedDependency ErrorCode = "UNDEFINED_DEPENDENCY" // зависимость не определена в списке job'ов
|
|
|
ErrInvalidStageOrder ErrorCode = "INVALID_STAGE_ORDER" // зависимость имеет stage, который идёт позже, чем у задачи
|
|
|
ErrDuplicateNeeds ErrorCode = "DUPLICATE_NEEDS" // дублирующиеся записи в needs
|
|
|
ErrUndefinedNeed ErrorCode = "UNDEFINED_NEED" // need ссылается на несуществующую задачу
|
|
|
ErrNeedNameTooLong ErrorCode = "NEED_NAME_TOO_LONG" // имя need превышает допустимую длину
|
|
|
ErrNoVisibleJob ErrorCode = "NO_VISIBLE_JOB" // нет ни одной видимой задачи
|
|
|
ErrMissingJobs ErrorCode = "MISSING_JOBS"
|
|
|
ErrArtifactsPathsBlank ErrorCode = "ARTIFACTS_PATHS_BLANK" // отсутствует или пустой блок paths в artifacts
|
|
|
|
|
|
// Changes
|
|
|
ErrChangesNotArrayOfStrings ErrorCode = "CHANGES_NOT_ARRAY_OF_STRINGS"
|
|
|
ErrChangesInvalidType ErrorCode = "CHANGES_INVALID_TYPE"
|
|
|
ErrChangesTooManyEntries ErrorCode = "CHANGES_TOO_MANY_ENTRIES"
|
|
|
ErrChangesMissingPaths ErrorCode = "CHANGES_MISSING_PATHS"
|
|
|
|
|
|
// Paths
|
|
|
ErrPathsNotArrayOfStrings ErrorCode = "PATHS_NOT_ARRAY_OF_STRINGS"
|
|
|
|
|
|
// Job delayed parameters
|
|
|
ErrStartInMissing ErrorCode = "START_IN_MISSING"
|
|
|
ErrStartInInvalid ErrorCode = "START_IN_INVALID"
|
|
|
ErrStartInTooLong ErrorCode = "START_IN_TOO_LONG"
|
|
|
ErrStartInMustBeBlank ErrorCode = "START_IN_MUST_BE_BLANK"
|
|
|
|
|
|
// Dependencies / Needs consistency
|
|
|
ErrDependencyNotInNeeds ErrorCode = "DEPENDENCY_NOT_IN_NEEDS"
|
|
|
|
|
|
// Rules validation
|
|
|
ErrRulesOnlyExcept ErrorCode = "RULES_ONLY_EXCEPT"
|
|
|
ErrRulesOnly ErrorCode = "RULES_ONLY"
|
|
|
ErrRulesExcept ErrorCode = "RULES_EXCEPT"
|
|
|
ErrInvalidExpressionSyntax ErrorCode = "INVALID_EXPRESSION_SYNTAX"
|
|
|
ErrUnknownRulesKey ErrorCode = "UNKNOWN_RULES_KEY"
|
|
|
|
|
|
ErrBeforeScriptInvalid ErrorCode = "BEFORE_SCRIPT_INVALID"
|
|
|
ErrServiceInvalid ErrorCode = "SERVICE_INVALID"
|
|
|
ErrStageInvalid ErrorCode = "STAGE_INVALID"
|
|
|
ErrVariablesInvalid ErrorCode = "VARIABLES_INVALID"
|
|
|
ErrVariablesInvalidKey ErrorCode = "VARIABLES_INVALID_KEY"
|
|
|
|
|
|
ErrCyclicDependency ErrorCode = "CYCLIC_DEPENDENCY" // обнаружена циклическая зависимость
|
|
|
ErrBooleanValue ErrorCode = "BOOLEAN_VALUE" // значение должно быть булевым
|
|
|
ErrIncludeRulesInvalid ErrorCode = "INCLUDE_RULES_INVALID" // значение exists или changes не является строкой или массивом строк
|
|
|
)
|