From db4b8843ba73c655694ed88ea054bf54caf8be22 Mon Sep 17 00:00:00 2001 From: Derek Sadler Date: Mon, 4 May 2020 14:23:08 -0400 Subject: [PATCH 1/4] WIP - TC Build Testing... 1. let's see what we get; --- .dockerignore | 10 ++++ Dockerfile | 34 ++++++++++++++ api/api.csproj | 2 +- generator.sln | 78 +++++++++++++++++++++++++------ infra/registry/docker-compose.yml | 13 ++++++ infra/teamcity/agent/Dockerfile | 4 ++ infra/teamcity/docker-compose.yml | 22 +++++++++ tests/RangeTests.cs | 30 ++++++++++++ tests/tests.csproj | 21 +++++++++ 9 files changed, 198 insertions(+), 16 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 infra/registry/docker-compose.yml create mode 100644 infra/teamcity/agent/Dockerfile create mode 100644 infra/teamcity/docker-compose.yml create mode 100644 tests/RangeTests.cs create mode 100644 tests/tests.csproj diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..160ab581 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +**/bin/ +**/obj/ +**/.git/ +**/.vs/ +infra/ +**/global.json +**/Dockerfile* +**/.dockerignore* +**/docker-compose*.yml +**/*.user \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..8da224b8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +# Build stage +FROM microsoft/aspnetcore-build:2 AS build-env + +WORKDIR /generator + +# restore +COPY api/api.csproj ./api/ +RUN dotnet restore api/api.csproj +COPY tests/tests.csproj ./tests/ +RUN dotnet restore tests/tests.csproj + +# debug... +#RUN ls -alR + +# copy src +COPY . . + + +## test +ENV TEAMCITY_PROJECT_NAME=fake +RUN dotnet test tests/tests.csproj + + +# +# publish +RUN dotnet publish api/api.csproj -o /publish + + + +# Runtime stage +FROM microsoft/aspnetcore:2 +COPY --from=build-env /publish /publish +WORKDIR /publish +ENTRYPOINT ["dotnet", "api.dll"] \ No newline at end of file diff --git a/api/api.csproj b/api/api.csproj index 79708048..a22d081a 100644 --- a/api/api.csproj +++ b/api/api.csproj @@ -7,7 +7,7 @@ - + diff --git a/generator.sln b/generator.sln index 6a20fce2..c23eb676 100644 --- a/generator.sln +++ b/generator.sln @@ -1,9 +1,35 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26124.0 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "api", "api\api.csproj", "{395194DA-84B9-4E9B-BA03-F4D091155E37}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "api", "api\api.csproj", "{395194DA-84B9-4E9B-BA03-F4D091155E37}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{687FD694-1180-4B8F-9D51-BBFA50281B23}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tests", "tests\tests.csproj", "{A7FC782A-14CC-4556-BA47-F5AE2C06884B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Root", "Root", "{4EEA85E1-FDD2-43AD-8437-03305AE05997}" + ProjectSection(SolutionItems) = preProject + .dockerignore = .dockerignore + Dockerfile = Dockerfile + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{A7DC401F-D314-4833-AEDE-23FE5F50D234}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Registry", "Registry", "{E8B61874-DB6D-42B5-8DDE-AA9E28375CBC}" + ProjectSection(SolutionItems) = preProject + infra\registry\docker-compose.yml = infra\registry\docker-compose.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TeamCity", "TeamCity", "{C15CDA56-CDE3-4E2C-BDD2-C2BCCC00F3A7}" + ProjectSection(SolutionItems) = preProject + infra\teamcity\docker-compose.yml = infra\teamcity\docker-compose.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Agent", "Agent", "{4D1A85B6-7A00-4EE7-8EC5-02D2BE4F2157}" + ProjectSection(SolutionItems) = preProject + infra\teamcity\agent\Dockerfile = infra\teamcity\agent\Dockerfile + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -14,21 +40,43 @@ Global Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.ActiveCfg = Debug|x64 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.Build.0 = Debug|x64 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.ActiveCfg = Debug|x86 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.Build.0 = Debug|x86 + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.ActiveCfg = Debug|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.Build.0 = Debug|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.ActiveCfg = Debug|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.Build.0 = Debug|Any CPU {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|Any CPU.ActiveCfg = Release|Any CPU {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|Any CPU.Build.0 = Release|Any CPU - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.ActiveCfg = Release|x64 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.Build.0 = Release|x64 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.ActiveCfg = Release|x86 - {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.Build.0 = Release|x86 + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.ActiveCfg = Release|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.Build.0 = Release|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.ActiveCfg = Release|Any CPU + {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.Build.0 = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|x64.ActiveCfg = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|x64.Build.0 = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|x86.ActiveCfg = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Debug|x86.Build.0 = Debug|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|Any CPU.Build.0 = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x64.ActiveCfg = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x64.Build.0 = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x86.ActiveCfg = Release|Any CPU + {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {4EEA85E1-FDD2-43AD-8437-03305AE05997} = {687FD694-1180-4B8F-9D51-BBFA50281B23} + {A7DC401F-D314-4833-AEDE-23FE5F50D234} = {687FD694-1180-4B8F-9D51-BBFA50281B23} + {E8B61874-DB6D-42B5-8DDE-AA9E28375CBC} = {A7DC401F-D314-4833-AEDE-23FE5F50D234} + {C15CDA56-CDE3-4E2C-BDD2-C2BCCC00F3A7} = {A7DC401F-D314-4833-AEDE-23FE5F50D234} + {4D1A85B6-7A00-4EE7-8EC5-02D2BE4F2157} = {C15CDA56-CDE3-4E2C-BDD2-C2BCCC00F3A7} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8D7F76E8-A82B-4271-997A-5B50B2830863} EndGlobalSection EndGlobal diff --git a/infra/registry/docker-compose.yml b/infra/registry/docker-compose.yml new file mode 100644 index 00000000..a5c76d5b --- /dev/null +++ b/infra/registry/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.1' + +services: + straps-q2-registry: + image: registry:2.6.1 + volumes: + - registry:/var/lib/registry + ports: + - "56000:5000" + restart: unless-stopped + +volumes: + registry: \ No newline at end of file diff --git a/infra/teamcity/agent/Dockerfile b/infra/teamcity/agent/Dockerfile new file mode 100644 index 00000000..e4f89104 --- /dev/null +++ b/infra/teamcity/agent/Dockerfile @@ -0,0 +1,4 @@ +FROM jetbrains/teamcity-agent:2017.1.2 + +RUN curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/docker-compose \ No newline at end of file diff --git a/infra/teamcity/docker-compose.yml b/infra/teamcity/docker-compose.yml new file mode 100644 index 00000000..7c03da85 --- /dev/null +++ b/infra/teamcity/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.1' + +services: + teamcity: + image: jetbrains/teamcity-server:2017.1.2 + volumes: + - teamcity-server-datadir:/data/teamcity_server/datadir + - teamcity-server-logs:/opt/teamcity/logs + ports: + - 8111:8111 + teamcity-agent: + image: aspnetcore/teamcity-agent-with-compose:2017.1.2 + build: ./agent + environment: + SERVER_URL: http://teamcity:8111 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + +volumes: + teamcity-server-datadir: + teamcity-server-logs: \ No newline at end of file diff --git a/tests/RangeTests.cs b/tests/RangeTests.cs new file mode 100644 index 00000000..f710d6f1 --- /dev/null +++ b/tests/RangeTests.cs @@ -0,0 +1,30 @@ +using System.Linq; +using Xunit; +using Range = api.Controllers.Range; + +namespace tests +{ + public class RangeTests + { + [Fact] + public void CountShouldControlNumberOfResults() + { + var range = new Range { Count = 3 }; + + var generated = range.Of(() => ""); + + Assert.Equal(3, generated.Count()); + } + + [Fact] + public void SortShouldOrderResults() + { + var range = new Range { Count = 3, Sort = true }; + var values = new[] { "a", "c", "b" }; + var counter = 0; + var generated = range.Of(() => values[counter++]); + + Assert.Equal(new[] { "a", "b", "c" }, generated.ToArray()); + } + } +} diff --git a/tests/tests.csproj b/tests/tests.csproj new file mode 100644 index 00000000..067c13ea --- /dev/null +++ b/tests/tests.csproj @@ -0,0 +1,21 @@ + + + + netcoreapp2.0 + + false + + + + + + + + + + + + + + + From 7175a722928314c617e7de1418f05d27f552dbf5 Mon Sep 17 00:00:00 2001 From: Derek Sadler Date: Mon, 4 May 2020 15:33:24 -0400 Subject: [PATCH 2/4] WIP - TC Build Testing (cont.)... 1. force unit test failure to see what happens in TC; --- api/Controllers/Range.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/api/Controllers/Range.cs b/api/Controllers/Range.cs index 275f8f3b..5b5aaec1 100644 --- a/api/Controllers/Range.cs +++ b/api/Controllers/Range.cs @@ -11,7 +11,8 @@ public class Range public bool Sort { get; set; } = false; public IEnumerable Of(Func generateItem) - => Count.Times(i => generateItem()) - .OrderBy(n => Sort ? n : default(TItem)); + => Count.Times(i => generateItem()); + + //.OrderBy(n => Sort ? n : default(TItem)); } } From 94b5e5ae3fd8dc7e620174219101a5dab2f172a6 Mon Sep 17 00:00:00 2001 From: Derek Sadler Date: Mon, 4 May 2020 15:49:53 -0400 Subject: [PATCH 3/4] WIP - TC Build Testing (cont.)... fixed bug introduced in previous check-in; --- api/Controllers/Range.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/api/Controllers/Range.cs b/api/Controllers/Range.cs index 5b5aaec1..275f8f3b 100644 --- a/api/Controllers/Range.cs +++ b/api/Controllers/Range.cs @@ -11,8 +11,7 @@ public class Range public bool Sort { get; set; } = false; public IEnumerable Of(Func generateItem) - => Count.Times(i => generateItem()); - - //.OrderBy(n => Sort ? n : default(TItem)); + => Count.Times(i => generateItem()) + .OrderBy(n => Sort ? n : default(TItem)); } } From dc524bced7093dbc01c903cf6699f788e6dc39de Mon Sep 17 00:00:00 2001 From: Derek Sadler Date: Tue, 5 May 2020 08:39:19 -0400 Subject: [PATCH 4/4] WIP - TC Build Testing (cont.)... 1. working; --- generator.sln | 24 +++++++++++++++- integration/.dockerignore | 5 ++++ integration/Dockerfile | 9 ++++++ integration/EmailTests.cs | 52 ++++++++++++++++++++++++++++++++++ integration/docker-compose.yml | 22 ++++++++++++++ integration/integration.csproj | 17 +++++++++++ 6 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 integration/.dockerignore create mode 100644 integration/Dockerfile create mode 100644 integration/EmailTests.cs create mode 100644 integration/docker-compose.yml create mode 100644 integration/integration.csproj diff --git a/generator.sln b/generator.sln index c23eb676..38631d65 100644 --- a/generator.sln +++ b/generator.sln @@ -6,7 +6,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "api", "api\api.csproj", "{3 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{687FD694-1180-4B8F-9D51-BBFA50281B23}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tests", "tests\tests.csproj", "{A7FC782A-14CC-4556-BA47-F5AE2C06884B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tests", "tests\tests.csproj", "{A7FC782A-14CC-4556-BA47-F5AE2C06884B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Root", "Root", "{4EEA85E1-FDD2-43AD-8437-03305AE05997}" ProjectSection(SolutionItems) = preProject @@ -31,6 +31,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Agent", "Agent", "{4D1A85B6 infra\teamcity\agent\Dockerfile = infra\teamcity\agent\Dockerfile EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "integration", "integration\integration.csproj", "{7CB23307-3C75-4A20-96C6-99BC68679D73}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Integration Testing", "Integration Testing", "{D104DEF7-CD5E-42BF-A980-567543FEC88F}" + ProjectSection(SolutionItems) = preProject + integration\.dockerignore = integration\.dockerignore + integration\docker-compose.yml = integration\docker-compose.yml + integration\Dockerfile = integration\Dockerfile + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -65,6 +74,18 @@ Global {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x64.Build.0 = Release|Any CPU {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x86.ActiveCfg = Release|Any CPU {A7FC782A-14CC-4556-BA47-F5AE2C06884B}.Release|x86.Build.0 = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|x64.ActiveCfg = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|x64.Build.0 = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|x86.ActiveCfg = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Debug|x86.Build.0 = Debug|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|Any CPU.Build.0 = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|x64.ActiveCfg = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|x64.Build.0 = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|x86.ActiveCfg = Release|Any CPU + {7CB23307-3C75-4A20-96C6-99BC68679D73}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -75,6 +96,7 @@ Global {E8B61874-DB6D-42B5-8DDE-AA9E28375CBC} = {A7DC401F-D314-4833-AEDE-23FE5F50D234} {C15CDA56-CDE3-4E2C-BDD2-C2BCCC00F3A7} = {A7DC401F-D314-4833-AEDE-23FE5F50D234} {4D1A85B6-7A00-4EE7-8EC5-02D2BE4F2157} = {C15CDA56-CDE3-4E2C-BDD2-C2BCCC00F3A7} + {D104DEF7-CD5E-42BF-A980-567543FEC88F} = {687FD694-1180-4B8F-9D51-BBFA50281B23} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8D7F76E8-A82B-4271-997A-5B50B2830863} diff --git a/integration/.dockerignore b/integration/.dockerignore new file mode 100644 index 00000000..6dd91c82 --- /dev/null +++ b/integration/.dockerignore @@ -0,0 +1,5 @@ +bin/ +obj/ +**/Dockerfile* +**/.dockerignore* +**/docker-compose*.yml \ No newline at end of file diff --git a/integration/Dockerfile b/integration/Dockerfile new file mode 100644 index 00000000..e5a7e3de --- /dev/null +++ b/integration/Dockerfile @@ -0,0 +1,9 @@ +# Build Stage +FROM microsoft/dotnet:2-sdk +WORKDIR /integration + +COPY integration.csproj . +RUN dotnet restore + +COPY . . +ENTRYPOINT ["dotnet", "test"] \ No newline at end of file diff --git a/integration/EmailTests.cs b/integration/EmailTests.cs new file mode 100644 index 00000000..287f4cd0 --- /dev/null +++ b/integration/EmailTests.cs @@ -0,0 +1,52 @@ +using System; +using System.Net.Http; +using System.Threading.Tasks; +using FluentAssertions.Json; +using Newtonsoft.Json.Linq; +using Xunit; + +namespace integration +{ + public class EmailTests + { + public const string GeneratorApiRoot = "http://generator"; + public const string MailHogApiV2Root = "http://mail:8025/api/v2"; + + [Fact] + public async Task SendEmailWithNames_IsFromGenerator() + { + // send email + var client = new HttpClient(); + var sendEmail = new HttpRequestMessage + { + Method = HttpMethod.Post, + RequestUri = new Uri($"{GeneratorApiRoot}/EmailRandomNames") + }; + Console.WriteLine($"Sending email: [{sendEmail.RequestUri}]"); + using (var response = await client.SendAsync(sendEmail)) + { + response.EnsureSuccessStatusCode(); + } + + // check if email + var checkEmails = new HttpRequestMessage + { + Method = HttpMethod.Get, + RequestUri = new Uri($"{MailHogApiV2Root}/messages") + }; + Console.WriteLine($"Checking emails: [{checkEmails.RequestUri}]"); + using (var response = await client.SendAsync(checkEmails)) + { + response.EnsureSuccessStatusCode(); + var content = await response.Content.ReadAsStringAsync(); + var messages = JObject.Parse(content); + messages.Should().HaveElement("total").Which.Should().Be(1); + messages.Should().HaveElement("items") + .Which.Should().BeOfType() + .Which.First.Should().HaveElement("Raw") + .Which.Should().HaveElement("From") + .Which.Should().Be("generator@generate.com"); + } + } + } +} \ No newline at end of file diff --git a/integration/docker-compose.yml b/integration/docker-compose.yml new file mode 100644 index 00000000..dc96be4f --- /dev/null +++ b/integration/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.1' + +services: + generator: + image: straps-q2-registry:56000/tcbuild:ci-9 + # + # DO NOT USE PORTS IN CI BUILD - + # THIS IS FOR LOCAL DEV DEBUGGING ONLY... + # + ports: + - "8080:80" + mail: + image: mailhog/mailhog + # + # DO NOT USE PORTS IN CI BUILD - + # THIS IS FOR LOCAL DEV DEBUGGING ONLY... + # + ports: + - "8025:8025" + integration: + image: straps-q2-registry:56000/tcbuild:integration-9 + build: . \ No newline at end of file diff --git a/integration/integration.csproj b/integration/integration.csproj new file mode 100644 index 00000000..a6ae3fa8 --- /dev/null +++ b/integration/integration.csproj @@ -0,0 +1,17 @@ + + + + netcoreapp2.0 + + false + + + + + + + + + + +