diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index 9781d00c46..dcf56d056c 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -75,13 +75,4 @@ jobs: docker_registry_username: ${{ secrets.DOCKER_USERNAME }} docker_registry_password: ${{ secrets.DOCKER_PASSWORD }} github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }} - - - name: DockerHub Publish Readme - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' - shell: pwsh - run: dotnet run/docker.dll --target=DockerHubReadmePublish - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - + github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1249908800..504a339b9f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -137,6 +137,14 @@ jobs: name: Attetstation if: ${{ github.event_name == 'repository_dispatch' }} uses: ./.github/actions/artifacts-attest + - + name: DockerHub Publish Readme + if: ${{ github.event_name == 'repository_dispatch' }} + shell: pwsh + run: dotnet run/docker.dll --target=DockerHubReadmePublish + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - name: '[Release]' shell: pwsh diff --git a/build/docker/Tasks/DockerHubReadmePublish.cs b/build/docker/Tasks/DockerHubReadmePublish.cs index 8fb3d1f9de..9245683370 100644 --- a/build/docker/Tasks/DockerHubReadmePublish.cs +++ b/build/docker/Tasks/DockerHubReadmePublish.cs @@ -11,7 +11,7 @@ public class DockerHubReadmePublish : FrostingTask; [TaskName(nameof(DockerHubReadmePublishInternal))] [TaskDescription("Publish the DockerHub updated README.md")] -public class DockerHubReadmePublishInternal : FrostingTask +public class DockerHubReadmePublishInternal : AsyncFrostingTask { public override bool ShouldRun(BuildContext context) { @@ -24,12 +24,15 @@ public override bool ShouldRun(BuildContext context) return shouldRun; } - public override void Run(BuildContext context) + public override async Task RunAsync(BuildContext context) { ArgumentNullException.ThrowIfNull(context.Credentials?.DockerHub); var readme = GetReadmeContent(context); - var response = context.HttpPost("https://hub.docker.com/v2/users/login", settings => + context.Information("Publishing README.md to DockerHub"); + + context.Information("Logging in to DockerHub"); + var response = await context.HttpPostAsync("https://hub.docker.com/v2/users/login", settings => { var credentials = context.Credentials.DockerHub; settings @@ -37,7 +40,7 @@ public override void Run(BuildContext context) .SetJsonRequestBody(new { username = credentials.Username, password = credentials.Password }); }); - + context.Information("Updating README.md on DockerHub"); context.HttpPatch("https://hub.docker.com/v2/repositories/gittools/gitversion", settings => { var token = context.ParseJson(response).Value("token"); @@ -46,6 +49,7 @@ public override void Run(BuildContext context) .SetAuthorization("JWT", token) .SetJsonRequestBody(new { full_description = readme }); }); + context.Information("README.md updated on DockerHub"); } private static string GetReadmeContent(BuildContextBase context)