From 0c2b4ffb16b07497acc520820a1c8c8f04523e8f Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 11:46:55 +0100 Subject: [PATCH 1/7] Move to github packages --- .github/workflows/createrelease.yml | 6 +++--- .github/workflows/nightlybuild.yml | 2 +- .github/workflows/pushtomaster.yml | 6 +++--- MessagingService.sln | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/createrelease.yml b/.github/workflows/createrelease.yml index 1a136ac..d649722 100644 --- a/.github/workflows/createrelease.yml +++ b/.github/workflows/createrelease.yml @@ -20,7 +20,7 @@ jobs: run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} - name: Restore Nuget Packages - run: dotnet restore MessagingService.sln --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/transactionprocessing/api/v3/index.json + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -114,6 +114,6 @@ jobs: if: ${{ github.event.release.prerelease == false }} run: | dotnet pack "MessagingService.Client\MessagingService.Client.csproj" /p:PackageVersion=${{ steps.get_version.outputs.VERSION }} --output Nugets -c Release - dotnet nuget push Nugets/MessagingService.Client.${{ steps.get_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.MYGET_APIKEY }} --source https://www.myget.org/F/transactionprocessing/api/v2/package + dotnet nuget push Nugets/MessagingService.Client.${{ steps.get_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.PRIVATEFEED_APIKEY }} --source ${{ secrets.PRIVATEFEED_URL }} dotnet pack "MessagingService.EmailMessage.DomainEvents\MessagingService.EmailMessage.DomainEvents.csproj" /p:PackageVersion=${{ steps.get_version.outputs.VERSION }} --output Nugets -c Release - dotnet nuget push Nugets/MessagingService.EmailMessage.DomainEvents.${{ steps.get_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.MYGET_APIKEY }} --source https://www.myget.org/F/transactionprocessing/api/v2/package + dotnet nuget push Nugets/MessagingService.EmailMessage.DomainEvents.${{ steps.get_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.PRIVATEFEED_APIKEY }} --source ${{ secrets.PRIVATEFEED_URL }} \ No newline at end of file diff --git a/.github/workflows/nightlybuild.yml b/.github/workflows/nightlybuild.yml index b322c22..7a159f0 100644 --- a/.github/workflows/nightlybuild.yml +++ b/.github/workflows/nightlybuild.yml @@ -46,7 +46,7 @@ jobs: run: echo "action_url=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV - name: Restore Nuget Packages - run: dotnet restore MessagingService.sln --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/transactionprocessing/api/v3/index.json + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release diff --git a/.github/workflows/pushtomaster.yml b/.github/workflows/pushtomaster.yml index 4ded98c..dd3111b 100644 --- a/.github/workflows/pushtomaster.yml +++ b/.github/workflows/pushtomaster.yml @@ -20,7 +20,7 @@ jobs: fetch-depth: 0 - name: Restore Nuget Packages - run: dotnet restore MessagingService.sln --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/transactionprocessing/api/v3/index.json + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -45,9 +45,9 @@ jobs: - name: Build and Publish Nuget Packages run: | dotnet pack "MessagingService.Client\MessagingService.Client.csproj" /p:PackageVersion=${{ steps.next_version.outputs.VERSION }} --output Nugets -c Release - dotnet nuget push Nugets/MessagingService.Client.${{ steps.next_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.MYGET_APIKEY }} --source https://www.myget.org/F/transactionprocessing/api/v2/package + dotnet nuget push Nugets/MessagingService.Client.${{ steps.next_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.PRIVATEFEED_APIKEY }} --source ${{ secrets.PRIVATEFEED_URL }} dotnet pack "MessagingService.EmailMessage.DomainEvents\MessagingService.EmailMessage.DomainEvents.csproj" /p:PackageVersion=${{ steps.next_version.outputs.VERSION }} --output Nugets -c Release - dotnet nuget push Nugets/MessagingService.EmailMessage.DomainEvents.${{ steps.next_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.MYGET_APIKEY }} --source https://www.myget.org/F/transactionprocessing/api/v2/package + dotnet nuget push Nugets/MessagingService.EmailMessage.DomainEvents.${{ steps.next_version.outputs.VERSION }}.nupkg --api-key ${{ secrets.PRIVATEFEED_APIKEY }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Publish Images to Docker Hub run: | diff --git a/MessagingService.sln b/MessagingService.sln index 7ac2d40..0185196 100644 --- a/MessagingService.sln +++ b/MessagingService.sln @@ -35,7 +35,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MessagingService.SMSMessage EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MessagingService.SMSAggregate.Tests", "MessagingService.SMSAggregate.Tests\MessagingService.SMSAggregate.Tests.csproj", "{883DEFD0-7DDB-4F79-9996-2279E71CAF5B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessagingService.Models", "MessagingService.Models\MessagingService.Models.csproj", "{327FAE7D-AF25-4380-AA8B-9FF7FCF46FBB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MessagingService.Models", "MessagingService.Models\MessagingService.Models.csproj", "{327FAE7D-AF25-4380-AA8B-9FF7FCF46FBB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From a3c7927f96009af29e29e93fa70549c3d823ff82 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 12:08:57 +0100 Subject: [PATCH 2/7] oops --- .github/workflows/pullrequest.yml | 4 +++- MessagingService/NuGet.Config | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 1ff87c4..8d93fc9 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Restore Nuget Packages - run: dotnet restore MessagingService.sln --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/transactionprocessing/api/v3/index.json + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -30,6 +30,8 @@ jobs: dotnet test "MessagingService.Tests\MessagingService.Tests.csproj" - name: Build Docker Image + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest - name: Run Integration Tests diff --git a/MessagingService/NuGet.Config b/MessagingService/NuGet.Config index c6bc4ff..23979ac 100644 --- a/MessagingService/NuGet.Config +++ b/MessagingService/NuGet.Config @@ -1,9 +1,15 @@  - + + + + + + + @@ -15,4 +21,4 @@ - \ No newline at end of file + From cf7e40754ecc5e4da427443fc062360ef42970b2 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 12:16:29 +0100 Subject: [PATCH 3/7] :| --- .github/workflows/pullrequest.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 8d93fc9..11b09d9 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -17,6 +17,8 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Restore Nuget Packages + env: + NUGET_TOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code From d95b41d52fa32f283a33317a9c5fe3e3643fe9c1 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 12:18:18 +0100 Subject: [PATCH 4/7] :| --- .github/workflows/pullrequest.yml | 2 +- NuGet.Config | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 NuGet.Config diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 11b09d9..10967d6 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -18,7 +18,7 @@ jobs: - name: Restore Nuget Packages env: - NUGET_TOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..23979ac --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + From ebfc87958b5ff2c1231261d48c04215afcd82aff Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 12:40:30 +0100 Subject: [PATCH 5/7] :| --- .github/workflows/sonarcloud.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml index 52758cb..40191bf 100644 --- a/.github/workflows/sonarcloud.yml +++ b/.github/workflows/sonarcloud.yml @@ -43,9 +43,10 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} shell: powershell run: | .\.sonar\scanner\dotnet-sonarscanner begin /k:"TransactionProcessing_Messaging" /o:"transactionprocessing" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" - dotnet restore MessagingService.sln --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/transactionprocessing/api/v3/index.json + dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} dotnet build MessagingService.sln .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" \ No newline at end of file From 4d717725a8d69c1e5ceaecd3db91b17a8f388280 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 14:22:12 +0100 Subject: [PATCH 6/7] hopefully fix image building --- MessagingService/Dockerfile | 7 +++++++ MessagingService/Dockerfilewindows | 8 +++++++- MessagingService/NuGet.Config | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/MessagingService/Dockerfile b/MessagingService/Dockerfile index fcc44ab..c94839b 100644 --- a/MessagingService/Dockerfile +++ b/MessagingService/Dockerfile @@ -4,8 +4,15 @@ FROM stuartferguson/txnprocbase AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build + +# Set the ARG for your GitHub Secret +ARG NUGET_TOKEN + WORKDIR /src COPY ["MessagingService/NuGet.Config", "."] +# Replace the placeholders in the NuGet.config file with the GitHub Secret +RUN sed -i "s|NUGET_TOKEN|${NUGET_TOKEN}|g" NuGet.Config + COPY ["MessagingService/MessagingService.csproj", "MessagingService/"] COPY ["MessagingService.BusinessLogic/MessagingService.BusinessLogic.csproj", "MessagingService.BusinessLogic/"] COPY ["MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj", "MessagingService.EmailMessageAggregate/"] diff --git a/MessagingService/Dockerfilewindows b/MessagingService/Dockerfilewindows index c441f8c..5f332f2 100644 --- a/MessagingService/Dockerfilewindows +++ b/MessagingService/Dockerfilewindows @@ -2,8 +2,14 @@ FROM stuartferguson/txnprocbasewindows AS base USER ContainerAdministrator WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:7.0-windowsservercore-ltsc2019 AS build +# Set the ARG for your GitHub Secret +ARG NUGET_TOKEN + WORKDIR /src +COPY ["MessagingService/NuGet.Config", "."] +# Replace the placeholders in the NuGet.config file with the GitHub Secret +RUN powershell -Command "(Get-Content C:\NuGet.config) -replace 'NUGET_TOKEN', '${env:NUGET_TOKEN}' | Set-Content C:\NuGet.config" + COPY ["MessagingService/NuGet.Config", "."] COPY ["MessagingService/MessagingService.csproj", "MessagingService/"] COPY ["MessagingService.BusinessLogic/MessagingService.BusinessLogic.csproj", "MessagingService.BusinessLogic/"] diff --git a/MessagingService/NuGet.Config b/MessagingService/NuGet.Config index 23979ac..7eec447 100644 --- a/MessagingService/NuGet.Config +++ b/MessagingService/NuGet.Config @@ -7,7 +7,7 @@ - + From feb6c334b59de829b70bdc75727351a6d45699d7 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Thu, 27 Jul 2023 14:27:40 +0100 Subject: [PATCH 7/7] :| --- .github/workflows/buildwindowsimage.yml | 4 ++-- .github/workflows/createrelease.yml | 6 ++++-- .github/workflows/nightlybuild.yml | 4 +++- .github/workflows/pullrequest.yml | 2 +- .github/workflows/pushtomaster.yml | 6 ++++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/buildwindowsimage.yml b/.github/workflows/buildwindowsimage.yml index e0d5c5c..7340815 100644 --- a/.github/workflows/buildwindowsimage.yml +++ b/.github/workflows/buildwindowsimage.yml @@ -22,12 +22,12 @@ jobs: - name: Publish Images to Docker Hub - Pre Release if: ${{ github.event.release.prerelease == true }} run: | - docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:dev + docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:dev --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservicewindows:dev - name: Publish Images to Docker Hub - Formal Release if: ${{ github.event.release.prerelease == false }} run: | - docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:latest + docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:latest --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservicewindows:latest diff --git a/.github/workflows/createrelease.yml b/.github/workflows/createrelease.yml index d649722..237a2f4 100644 --- a/.github/workflows/createrelease.yml +++ b/.github/workflows/createrelease.yml @@ -20,6 +20,8 @@ jobs: run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} - name: Restore Nuget Packages + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code @@ -35,14 +37,14 @@ jobs: - name: Publish Images to Docker Hub - Pre Release if: ${{ github.event.release.prerelease == true }} run: | - docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:dev + docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:dev --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservice:dev - name: Publish Images to Docker Hub - Formal Release if: ${{ github.event.release.prerelease == false }} run: | - docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:latest + docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:latest --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservice:latest diff --git a/.github/workflows/nightlybuild.yml b/.github/workflows/nightlybuild.yml index 7a159f0..3f2ea0b 100644 --- a/.github/workflows/nightlybuild.yml +++ b/.github/workflows/nightlybuild.yml @@ -46,6 +46,8 @@ jobs: run: echo "action_url=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV - name: Restore Nuget Packages + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code @@ -68,7 +70,7 @@ jobs: files: ./lcov1.info,./lcov2.info,./lcov3.info,./lcov4.info - name: Build Docker Image - run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest + run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} - name: Run Integration Tests run: dotnet test "MessagingService.IntegrationTests\MessagingService.IntegrationTests.csproj" diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 10967d6..1b044c2 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -34,7 +34,7 @@ jobs: - name: Build Docker Image env: GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} - run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest + run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} - name: Run Integration Tests run: dotnet test "MessagingService.IntegrationTests\MessagingService.IntegrationTests.csproj" --filter Category=PRTest diff --git a/.github/workflows/pushtomaster.yml b/.github/workflows/pushtomaster.yml index dd3111b..2c6a077 100644 --- a/.github/workflows/pushtomaster.yml +++ b/.github/workflows/pushtomaster.yml @@ -20,6 +20,8 @@ jobs: fetch-depth: 0 - name: Restore Nuget Packages + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code @@ -51,7 +53,7 @@ jobs: - name: Publish Images to Docker Hub run: | - docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:master + docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:master --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservice:master @@ -69,6 +71,6 @@ jobs: - name: Publish Windows Images to Docker Hub run: | - docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:master + docker build . --file MessagingService/Dockerfilewindows --tag stuartferguson/messagingservicewindows:master --build-arg NUGET_TOKEN=${{ secrets.PRIVATEFEED_APIKEY }} docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} docker push stuartferguson/messagingservicewindows:master