private void GetCodeBuildActionResources(PipelineActionCodeBuildOptions actionCodeBuildOptions, IDictionary <string, Artifact_> artifacts, out Artifact_ inputArtifact, out Artifact_ outputArtifact, out IProject project) { // Locate artifact if (string.IsNullOrWhiteSpace(actionCodeBuildOptions.InputArtifact)) { throw new ArgumentException($"There is no input artifact in the pipeline action {actionCodeBuildOptions.Name}"); } else { if (!artifacts.TryGetValue(actionCodeBuildOptions.InputArtifact, out inputArtifact)) { throw new ArgumentException($"The artifact {actionCodeBuildOptions.InputArtifact} of the pipeline action {actionCodeBuildOptions.Name} was not found"); } } if (!string.IsNullOrEmpty(actionCodeBuildOptions.OutputArtifact)) { if (artifacts.ContainsKey(actionCodeBuildOptions.OutputArtifact)) { throw new ArgumentException($"The artifact {actionCodeBuildOptions.OutputArtifact} of the pipeline action {actionCodeBuildOptions.Name} already exists"); } else { outputArtifact = new Artifact_(actionCodeBuildOptions.OutputArtifact); artifacts.Add(actionCodeBuildOptions.OutputArtifact, outputArtifact); } } else { // We don't have an output artifact specified outputArtifact = null; } // Locate CodeBuild project project = LocateCodeBuildProject(actionCodeBuildOptions.CodeBuildProject, $"The CodeBuild project {actionCodeBuildOptions.CodeBuildProject} of the pipeline action {actionCodeBuildOptions.Name} was not found"); }
private void CreateCodeBuildAction(IStage stage, IDictionary <string, Artifact_> artifacts, PipelineActionCodeBuildOptions actionCodeBuildOptions) { GetCodeBuildActionResources(actionCodeBuildOptions, artifacts, out var inputArtifact, out var outputArtifact, out var project); AwsCdkHandler.CreateCodeBuildActionInStage(stage, actionCodeBuildOptions.Name, inputArtifact, outputArtifact, project, actionCodeBuildOptions.EnvironmentVariables); }