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 1a136ac..237a2f4 100644 --- a/.github/workflows/createrelease.yml +++ b/.github/workflows/createrelease.yml @@ -20,7 +20,9 @@ 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 + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -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 @@ -114,6 +116,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..3f2ea0b 100644 --- a/.github/workflows/nightlybuild.yml +++ b/.github/workflows/nightlybuild.yml @@ -46,7 +46,9 @@ 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 + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -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 1ff87c4..1b044c2 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -17,7 +17,9 @@ 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 + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -30,7 +32,9 @@ jobs: dotnet test "MessagingService.Tests\MessagingService.Tests.csproj" - name: Build Docker Image - run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + 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 4ded98c..2c6a077 100644 --- a/.github/workflows/pushtomaster.yml +++ b/.github/workflows/pushtomaster.yml @@ -20,7 +20,9 @@ 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 + env: + GITHUBTOKEN: ${{ secrets.PRIVATEFEED_APIKEY }} + run: dotnet restore MessagingService.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} - name: Build Code run: dotnet build MessagingService.sln --configuration Release @@ -45,13 +47,13 @@ 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: | - 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 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 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 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 c6bc4ff..7eec447 100644 --- a/MessagingService/NuGet.Config +++ b/MessagingService/NuGet.Config @@ -1,9 +1,15 @@  - + + + + + + + @@ -15,4 +21,4 @@ - \ No newline at end of file + diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..23979ac --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + +