feat: pass envi-ci values to plugins context
				
					
				
			This commit is contained in:
		
							parent
							
								
									fc70726d90
								
							
						
					
					
						commit
						a8c747d592
					
				
							
								
								
									
										10
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								index.js
									
									
									
									
									
								
							| @ -23,7 +23,7 @@ marked.setOptions({renderer: new TerminalRenderer()}); | |||||||
| 
 | 
 | ||||||
| async function run(context, plugins) { | async function run(context, plugins) { | ||||||
|   const {cwd, env, options, logger} = context; |   const {cwd, env, options, logger} = context; | ||||||
|   const {isCi, branch: ciBranch, isPr} = envCi({env, cwd}); |   const {isCi, branch: ciBranch, isPr} = context.envCi; | ||||||
| 
 | 
 | ||||||
|   if (!isCi && !options.dryRun && !options.noCi) { |   if (!isCi && !options.dryRun && !options.noCi) { | ||||||
|     logger.warn('This run was not triggered in a known CI environment, running in dry-run mode.'); |     logger.warn('This run was not triggered in a known CI environment, running in dry-run mode.'); | ||||||
| @ -160,7 +160,13 @@ module.exports = async (opts = {}, {cwd = process.cwd(), env = process.env, stdo | |||||||
|     {silent: false, streams: [process.stdout, process.stderr, stdout, stderr].filter(Boolean)}, |     {silent: false, streams: [process.stdout, process.stderr, stdout, stderr].filter(Boolean)}, | ||||||
|     hideSensitive(env) |     hideSensitive(env) | ||||||
|   ); |   ); | ||||||
|   const context = {cwd, env, stdout: stdout || process.stdout, stderr: stderr || process.stderr}; |   const context = { | ||||||
|  |     cwd, | ||||||
|  |     env, | ||||||
|  |     stdout: stdout || process.stdout, | ||||||
|  |     stderr: stderr || process.stderr, | ||||||
|  |     envCi: envCi({env, cwd}), | ||||||
|  |   }; | ||||||
|   context.logger = getLogger(context); |   context.logger = getLogger(context); | ||||||
|   context.logger.log(`Running ${pkg.name} version ${pkg.version}`); |   context.logger.log(`Running ${pkg.name} version ${pkg.version}`); | ||||||
|   try { |   try { | ||||||
|  | |||||||
| @ -75,10 +75,11 @@ test('Plugins are called with expected values', async t => { | |||||||
|     publish: [publish1, pluginNoop], |     publish: [publish1, pluginNoop], | ||||||
|     success, |     success, | ||||||
|   }; |   }; | ||||||
|  |   const envCi = {branch: 'master', isCi: true, isPr: false}; | ||||||
| 
 | 
 | ||||||
|   const semanticRelease = requireNoCache('..', { |   const semanticRelease = requireNoCache('..', { | ||||||
|     './lib/get-logger': () => t.context.logger, |     './lib/get-logger': () => t.context.logger, | ||||||
|     'env-ci': () => ({isCi: true, branch: 'master', isPr: false}), |     'env-ci': () => envCi, | ||||||
|   }); |   }); | ||||||
|   const result = await semanticRelease(options, { |   const result = await semanticRelease(options, { | ||||||
|     cwd, |     cwd, | ||||||
| @ -97,6 +98,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(verifyConditions2.args[0][1].cwd, cwd); |   t.deepEqual(verifyConditions2.args[0][1].cwd, cwd); | ||||||
|   t.deepEqual(verifyConditions2.args[0][1].options, options); |   t.deepEqual(verifyConditions2.args[0][1].options, options); | ||||||
|   t.deepEqual(verifyConditions2.args[0][1].logger, t.context.logger); |   t.deepEqual(verifyConditions2.args[0][1].logger, t.context.logger); | ||||||
|  |   t.deepEqual(verifyConditions2.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(analyzeCommits.callCount, 1); |   t.is(analyzeCommits.callCount, 1); | ||||||
|   t.deepEqual(analyzeCommits.args[0][0], config); |   t.deepEqual(analyzeCommits.args[0][0], config); | ||||||
| @ -105,6 +107,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(analyzeCommits.args[0][1].lastRelease, lastRelease); |   t.deepEqual(analyzeCommits.args[0][1].lastRelease, lastRelease); | ||||||
|   t.deepEqual(analyzeCommits.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(analyzeCommits.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(analyzeCommits.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(analyzeCommits.args[0][1].commits[0].message, commits[0].message); | ||||||
|  |   t.deepEqual(analyzeCommits.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(verifyRelease.callCount, 1); |   t.is(verifyRelease.callCount, 1); | ||||||
|   t.deepEqual(verifyRelease.args[0][0], config); |   t.deepEqual(verifyRelease.args[0][0], config); | ||||||
| @ -114,6 +117,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(verifyRelease.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(verifyRelease.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(verifyRelease.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(verifyRelease.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(verifyRelease.args[0][1].nextRelease, nextRelease); |   t.deepEqual(verifyRelease.args[0][1].nextRelease, nextRelease); | ||||||
|  |   t.deepEqual(verifyRelease.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(generateNotes1.callCount, 1); |   t.is(generateNotes1.callCount, 1); | ||||||
|   t.deepEqual(generateNotes1.args[0][0], config); |   t.deepEqual(generateNotes1.args[0][0], config); | ||||||
| @ -123,6 +127,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(generateNotes1.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(generateNotes1.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(generateNotes1.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(generateNotes1.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(generateNotes1.args[0][1].nextRelease, nextRelease); |   t.deepEqual(generateNotes1.args[0][1].nextRelease, nextRelease); | ||||||
|  |   t.deepEqual(generateNotes1.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(generateNotes2.callCount, 1); |   t.is(generateNotes2.callCount, 1); | ||||||
|   t.deepEqual(generateNotes2.args[0][0], config); |   t.deepEqual(generateNotes2.args[0][0], config); | ||||||
| @ -132,6 +137,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(generateNotes2.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(generateNotes2.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(generateNotes2.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(generateNotes2.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(generateNotes2.args[0][1].nextRelease, {...nextRelease, notes: notes1}); |   t.deepEqual(generateNotes2.args[0][1].nextRelease, {...nextRelease, notes: notes1}); | ||||||
|  |   t.deepEqual(generateNotes2.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(generateNotes3.callCount, 1); |   t.is(generateNotes3.callCount, 1); | ||||||
|   t.deepEqual(generateNotes3.args[0][0], config); |   t.deepEqual(generateNotes3.args[0][0], config); | ||||||
| @ -141,6 +147,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(generateNotes3.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(generateNotes3.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(generateNotes3.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(generateNotes3.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(generateNotes3.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}`}); |   t.deepEqual(generateNotes3.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}`}); | ||||||
|  |   t.deepEqual(generateNotes3.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(prepare.callCount, 1); |   t.is(prepare.callCount, 1); | ||||||
|   t.deepEqual(prepare.args[0][0], config); |   t.deepEqual(prepare.args[0][0], config); | ||||||
| @ -150,6 +157,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(prepare.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(prepare.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(prepare.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(prepare.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(prepare.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`}); |   t.deepEqual(prepare.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`}); | ||||||
|  |   t.deepEqual(prepare.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(publish1.callCount, 1); |   t.is(publish1.callCount, 1); | ||||||
|   t.deepEqual(publish1.args[0][0], config); |   t.deepEqual(publish1.args[0][0], config); | ||||||
| @ -159,6 +167,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|   t.deepEqual(publish1.args[0][1].commits[0].hash, commits[0].hash); |   t.deepEqual(publish1.args[0][1].commits[0].hash, commits[0].hash); | ||||||
|   t.deepEqual(publish1.args[0][1].commits[0].message, commits[0].message); |   t.deepEqual(publish1.args[0][1].commits[0].message, commits[0].message); | ||||||
|   t.deepEqual(publish1.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`}); |   t.deepEqual(publish1.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`}); | ||||||
|  |   t.deepEqual(publish1.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.is(success.callCount, 1); |   t.is(success.callCount, 1); | ||||||
|   t.deepEqual(success.args[0][0], config); |   t.deepEqual(success.args[0][0], config); | ||||||
| @ -172,6 +181,7 @@ test('Plugins are called with expected values', async t => { | |||||||
|     {...release1, ...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`, pluginName: '[Function: functionStub]'}, |     {...release1, ...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`, pluginName: '[Function: functionStub]'}, | ||||||
|     {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`, pluginName: pluginNoop}, |     {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`, pluginName: pluginNoop}, | ||||||
|   ]); |   ]); | ||||||
|  |   t.deepEqual(success.args[0][1].envCi, envCi); | ||||||
| 
 | 
 | ||||||
|   t.deepEqual(result, { |   t.deepEqual(result, { | ||||||
|     lastRelease, |     lastRelease, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user