Esempio n. 1
0
        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);
        }