Skip to content

Commit 0ee0b4d

Browse files
Merge pull request #29 from StuartFerguson/workflow/#24_fixnightlyschedule
Workflow/#24 fixnightlyschedule
2 parents d72eba6 + b964075 commit 0ee0b4d

File tree

4 files changed

+52
-12
lines changed

4 files changed

+52
-12
lines changed

.github/workflows/nightlybuild.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Nightly Build
22

33
on:
44
schedule:
5-
- cron: "* 23 * * *"
5+
- cron: "10 23 * * *"
66

77
jobs:
88
build:
@@ -51,4 +51,4 @@ jobs:
5151
run: docker build . --file TransactionProcessor/Dockerfile --tag transactionprocessor:latest
5252

5353
- name: Run Integration Tests
54-
run: dotnet test "TransactionProcessor.IntegrationTests\TransactionProcessor.IntegrationTests.csproj"
54+
run: dotnet test "TransactionProcessor.IntegrationTests\TransactionProcessor.IntegrationTests.csproj"

.github/workflows/pullrequest.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ jobs:
3939

4040
- name: Run Integration Tests
4141
run: dotnet test "TransactionProcessor.IntegrationTests\TransactionProcessor.IntegrationTests.csproj" --filter Category=PRTest
42+
43+
- name: Setup tmate session
44+
if: failure()
45+
uses: mxschmitt/action-tmate@v1

TransactionProcessor.IntegrationTests/Common/DockerHelper.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Threading.Tasks;
77
using Client;
88
using Ductus.FluentDocker.Builders;
9+
using Ductus.FluentDocker.Executors;
10+
using Ductus.FluentDocker.Extensions;
911
using Ductus.FluentDocker.Model.Builders;
1012
using Ductus.FluentDocker.Services;
1113
using Ductus.FluentDocker.Services.Extensions;
@@ -19,8 +21,8 @@ public class DockerHelper
1921
protected Int32 TransactionProcessorPort;
2022
protected Int32 EventStorePort;
2123

22-
protected IContainerService EstateManagementContainer;
23-
protected IContainerService TransactionProcessorContainer;
24+
public IContainerService EstateManagementContainer;
25+
public IContainerService TransactionProcessorContainer;
2426
protected IContainerService EventStoreContainer;
2527

2628
public IEstateClient EstateClient;
@@ -81,14 +83,13 @@ public async Task StartContainersForScenarioRun(String scenarioName)
8183
this.EstateManagementPort = this.EstateManagementContainer.ToHostExposedEndpoint("5000/tcp").Port;
8284
this.TransactionProcessorPort = this.TransactionProcessorContainer.ToHostExposedEndpoint("5002/tcp").Port;
8385
this.EventStorePort = this.EventStoreContainer.ToHostExposedEndpoint("2113/tcp").Port;
84-
86+
8587
// Setup the base address resolver
8688
Func<String, String> estateManagementBaseAddressResolver = api => $"http://127.0.0.1:{this.EstateManagementPort}";
8789
Func<String, String> transactionProcessorBaseAddressResolver = api => $"http://127.0.0.1:{this.TransactionProcessorPort}";
8890

89-
HttpClient httpClient = new HttpClient();
90-
this.EstateClient = new EstateClient(estateManagementBaseAddressResolver, httpClient);
91-
this.TransactionProcessorClient = new TransactionProcessorClient(transactionProcessorBaseAddressResolver, httpClient);
91+
this.EstateClient = new EstateClient(estateManagementBaseAddressResolver, new HttpClient());
92+
this.TransactionProcessorClient = new TransactionProcessorClient(transactionProcessorBaseAddressResolver, new HttpClient());
9293

9394
// TODO: Use this to talk to txn processor until we have a client
9495
//this.HttpClient = new HttpClient();
@@ -138,7 +139,8 @@ private void SetupEstateManagementContainer(String traceFolder)
138139
this.EstateManagementContainer = new Builder()
139140
.UseContainer()
140141
.WithName(this.EstateManagementContainerName)
141-
.WithEnvironment(this.EventStoreConnectionString) //,
142+
.WithEnvironment(this.EventStoreConnectionString,
143+
"urls=http://*:5000") //,
142144
//"AppSettings:MigrateDatabase=true",
143145
//"EventStoreSettings:START_PROJECTIONS=true",
144146
//"EventStoreSettings:ContinuousProjectionsFolder=/app/projections/continuous")

TransactionProcessor.IntegrationTests/Common/GenericSteps.cs

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@
44

55
namespace TransactionProcessor.IntegrationTests.Common
66
{
7+
using System.Threading;
78
using System.Threading.Tasks;
9+
using Ductus.FluentDocker.Executors;
10+
using Ductus.FluentDocker.Extensions;
11+
using Ductus.FluentDocker.Services;
12+
using Ductus.FluentDocker.Services.Extensions;
813
using TechTalk.SpecFlow;
14+
using TechTalk.SpecFlow.Plugins;
915

1016
[Binding]
1117
[Scope(Tag = "base")]
@@ -21,18 +27,46 @@ public GenericSteps(ScenarioContext scenarioContext,
2127
this.ScenarioContext = scenarioContext;
2228
this.TestingContext = testingContext;
2329
}
24-
25-
[BeforeScenario()]
30+
31+
[BeforeScenario]
2632
public async Task StartSystem()
2733
{
2834
String scenarioName = this.ScenarioContext.ScenarioInfo.Title.Replace(" ", "");
2935
this.TestingContext.DockerHelper = new DockerHelper();
3036
await this.TestingContext.DockerHelper.StartContainersForScenarioRun(scenarioName).ConfigureAwait(false);
37+
Thread.Sleep(20000);
3138
}
3239

33-
[AfterScenario()]
40+
[AfterScenario]
3441
public async Task StopSystem()
3542
{
43+
if (this.ScenarioContext.TestError != null)
44+
{
45+
Exception currentEx = this.ScenarioContext.TestError;
46+
Console.Out.WriteLine(currentEx.Message);
47+
while (currentEx.InnerException != null)
48+
{
49+
currentEx = currentEx.InnerException;
50+
Console.Out.WriteLine(currentEx.Message);
51+
}
52+
53+
// The test has failed, grab the logs from all the containers
54+
List<IContainerService> containers = new List<IContainerService>();
55+
containers.Add(this.TestingContext.DockerHelper.EstateManagementContainer);
56+
containers.Add(this.TestingContext.DockerHelper.TransactionProcessorContainer);
57+
58+
foreach (IContainerService containerService in containers)
59+
{
60+
ConsoleStream<String> logStream = containerService.Logs();
61+
IList<String> logData = logStream.ReadToEnd();
62+
63+
foreach (String s in logData)
64+
{
65+
Console.Out.WriteLine(s);
66+
}
67+
}
68+
}
69+
3670
await this.TestingContext.DockerHelper.StopContainersForScenarioRun().ConfigureAwait(false);
3771
}
3872
}

0 commit comments

Comments
 (0)