@@ -3,10 +3,11 @@ const Command = require('../../Command');
3
3
const _ = require ( 'lodash' ) ;
4
4
const CFError = require ( 'cf-errors' ) ;
5
5
const { prepareKeyValueFromCLIEnvOption, crudFilenameOption } = require ( '../../helpers/general' ) ;
6
- const ObjectID = require ( 'mongodb' ) . ObjectID ;
7
6
const { workflow, pipeline, log } = require ( '../../../../logic' ) . api ;
8
7
const authManager = require ( '../../../../logic' ) . auth . manager ;
9
8
const Docker = require ( 'dockerode' ) ;
9
+ const { validatePipelineYaml } = require ( '../../helpers/validation' ) ;
10
+ const { printResult } = require ( '../root/validate.cmd' ) ;
10
11
11
12
const regex = / # # [ 0 - 9 a - f ] { 24 } # # / i;
12
13
const imageName = 'codefresh/engine:master' ;
@@ -81,6 +82,13 @@ const run = new Command({
81
82
describe : 'Set build variables from a file' ,
82
83
} ) ;
83
84
85
+ crudFilenameOption ( yargs , {
86
+ name : 'yaml' ,
87
+ alias : 'y' ,
88
+ raw : true ,
89
+ describe : 'Override codefresh.yaml for this execution' ,
90
+ } ) ;
91
+
84
92
return yargs ;
85
93
} ,
86
94
handler : async ( argv ) => {
@@ -92,6 +100,7 @@ const run = new Command({
92
100
const resetVolume = argv [ 'reset-volume' ] ;
93
101
const variablesFromFile = argv [ 'var-file' ] ;
94
102
const contexts = argv [ 'context' ] ;
103
+ const userYamlDescriptor = argv [ 'yaml' ] ;
95
104
const local = argv . local ;
96
105
97
106
try {
@@ -101,6 +110,12 @@ const run = new Command({
101
110
message : `Passed pipeline id: ${ pipelineName } does not exist` ,
102
111
} ) ;
103
112
}
113
+
114
+ if ( userYamlDescriptor ) {
115
+ const result = await validatePipelineYaml ( undefined , userYamlDescriptor ) ;
116
+ printResult ( result ) ;
117
+ }
118
+
104
119
if ( local ) {
105
120
const docker = new Docker ( ) ;
106
121
docker . pull ( imageName , ( err , stream ) => {
@@ -110,9 +125,17 @@ const run = new Command({
110
125
console . log ( '\nDone pulling.' ) ;
111
126
const currentContext = authManager . getCurrentContext ( ) ;
112
127
docker . run ( imageName , [ ] , [ ] , {
113
- Env : [ `ACCESS_TOKEN=${ currentContext . token } ` , `PIPELINE_ID=${ pipelineName } ` , `BRANCH=${ branch } ` , `CF_HOST=${ currentContext . url } ` , 'DOCKER_SOCKET_PATH=/var/run/docker.sock' ] ,
128
+ Env : [
129
+ `ACCESS_TOKEN=${ currentContext . token } ` ,
130
+ `PIPELINE_ID=${ pipelineName } ` , `BRANCH=${ branch } ` ,
131
+ `CF_HOST=${ currentContext . url } ` ,
132
+ 'DOCKER_SOCKET_PATH=/var/run/docker.sock' ,
133
+ userYamlDescriptor && `OVERRIDE_WORKFLOW_YAML=${ userYamlDescriptor } ` ,
134
+ ] ,
114
135
Hostconfig : {
115
- Binds : [ '/var/run/docker.sock:/var/run/docker.sock' ] ,
136
+ Binds : [
137
+ '/var/run/docker.sock:/var/run/docker.sock' ,
138
+ ] ,
116
139
} ,
117
140
} , ( err , data ) => {
118
141
if ( err ) {
@@ -149,6 +172,7 @@ const run = new Command({
149
172
branch,
150
173
sha,
151
174
enableNotifications,
175
+ userYamlDescriptor,
152
176
} ,
153
177
} ;
154
178
0 commit comments