@codefresh-io/yaml-validator
Version:
An NPM module/CLI for validating the Codefresh YAML
58 lines (47 loc) • 1.82 kB
JavaScript
/**
* Defines the push step schema
*/
;
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const Joi = require('joi');
const BaseSchema = require('./../base-schema');
const registryValidation = require('../validations/registry');
class Push extends BaseSchema {
//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------
static getType() {
return 'push';
}
getSchema() {
const pushTagsProperties = {
type: Joi.string().valid(Push.getType()),
provider: Joi.string().regex(/^standard|docker|ecr$/),
candidate: Joi.string().required(),
registry: Joi.string(),
credentials: BaseSchema._getCredentialsSchema(),
tag: Joi.string(),
tags: Joi.array().items(Joi.string()),
image_name: Joi.string(),
accessKeyId: Joi.string(),
secretAccessKey: Joi.string(),
region: Joi.string(),
registry_context: Joi.string(),
role_arn: Joi.string(),
aws_session_name: Joi.string(),
aws_duration_seconds: Joi.number(),
};
return this._createSchema(pushTagsProperties);
}
static validateStep(step, yaml, name, context, { ignoreValidation }) {
return registryValidation.validate(step,
yaml,
name,
context,
{ handleIfNoRegistriesOnAccount: true, handleIfNoRegistryExcplicitlyDefined: true, ignoreValidation });
}
}
// Exported objects/methods
module.exports = Push;