Ejemplo n.º 1
0
        public async Task StartExecutionIsCalled_ForPREvent()
        {
            var repoName = "name";
            var sha      = "sha";
            var @ref     = "ref";
            var payload  = new PullRequestEvent
            {
                PullRequest = new PullRequest
                {
                    Head = new PullRequestHead
                    {
                        Sha = sha,
                        Ref = @ref,
                    }
                },
                Repository = new Repository
                {
                    Name = repoName
                }
            };

            var serializedPayload   = Serialize(payload);
            var stepFunctionsClient = Substitute.For <IAmazonStepFunctions>();
            var logger          = Substitute.For <ILogger <PipelineStarter> >();
            var pipelineStarter = new PipelineStarter(stepFunctionsClient, logger);

            await pipelineStarter.StartPipelineIfExists(payload);

            var StateMachineArn = $"arn:aws:states:us-east-1:5:stateMachine:{repoName}-cicd-pipeline";
            await stepFunctionsClient.Received().StartExecutionAsync(Arg.Is <StartExecutionRequest>(req =>
                                                                                                    req.StateMachineArn == StateMachineArn &&
                                                                                                    req.Name == sha &&
                                                                                                    req.Input == serializedPayload
                                                                                                    ));
        }
Ejemplo n.º 2
0
        private IEnumerable <Task> GetPushEventTasks(PushEvent pushEvent)
        {
            if (!pushEvent.OnDefaultBranch && !pushEvent.Ref.StartsWith("refs/tags/"))
            {
                yield break;
            }

            if (!pushEvent.HeadCommitMessage.Contains("[skip meta-ci]"))
            {
                yield return(pipelineDeployer.Deploy(pushEvent));
            }

            if (!pushEvent.HeadCommitMessage.Contains("[skip ci]"))
            {
                yield return(pipelineStarter.StartPipelineIfExists(pushEvent));
            }
        }