From 52d8cfcd968e6a62b8afe63051493a4a0e2bd5d2 Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Thu, 1 May 2025 15:47:53 -0700 Subject: [PATCH 1/3] Fix bad dependencies (#536) I had to relax branch protections in order to merge #527 and during that time Renovate was able to sneak some bad PRs in. This rolls those changes back. --- go.mod | 10 +++++----- go.sum | 12 ++++++------ sdk/go/dockerbuild/go.mod | 2 +- sdk/go/dockerbuild/go.sum | 4 ++-- sdk/python/pyproject.toml | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index c51b3c7..6af4cbb 100644 --- a/go.mod +++ b/go.mod @@ -15,14 +15,14 @@ require ( github.com/muesli/reflow v0.3.0 github.com/otiai10/copy v1.14.0 github.com/pulumi/providertest v0.3.1 - github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v3.79.0 + github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20241219213128-b19d8c8da35b github.com/pulumi/pulumi-go-provider v0.26.0 - github.com/pulumi/pulumi-java/pkg v1.10.0 + github.com/pulumi/pulumi-java/pkg v1.10.1-0.20250501074704-87881c4a7c04 github.com/pulumi/pulumi-yaml v1.17.0 github.com/pulumi/pulumi/pkg/v3 v3.165.0 - github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.165.0 - github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.165.0 - github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.165.0 + github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20250417110128-49fb14839a5a + github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20250417110128-49fb14839a5a + github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20250417110128-49fb14839a5a github.com/pulumi/pulumi/sdk/v3 v3.165.0 github.com/regclient/regclient v0.7.1 github.com/sirupsen/logrus v1.9.3 diff --git a/go.sum b/go.sum index b8f19df..8d74be3 100644 --- a/go.sum +++ b/go.sum @@ -952,20 +952,20 @@ github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20241219213128-b19 github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20241219213128-b19d8c8da35b/go.mod h1:5LjEUmPDpUyXzFbQCy3s1oFgeU9K3gVA6tX+xn1Xvbo= github.com/pulumi/pulumi-go-provider v0.26.0 h1:3ia10+irvv7qPph2NZ2YwUGI/KCf6li8Frlc1luv7D4= github.com/pulumi/pulumi-go-provider v0.26.0/go.mod h1:zJiGxY5xnodPzLulpRS+fsS960MzeCdlsdiVCZ5TMRA= -github.com/pulumi/pulumi-java/pkg v1.10.0 h1:gPW5dtKOdagDak7KUedkwRKKKUlhkdT7/vV21+ouWCw= -github.com/pulumi/pulumi-java/pkg v1.10.0/go.mod h1:MgV+XcV5jcs0R5Naqyxp3UBJn+lXLE3aG5JVb/O8JeE= +github.com/pulumi/pulumi-java/pkg v1.10.1-0.20250501074704-87881c4a7c04 h1:JtnozyKVJrV3ITXhnZL82lO3V8pbqrA+p5co8b3hbr4= +github.com/pulumi/pulumi-java/pkg v1.10.1-0.20250501074704-87881c4a7c04/go.mod h1:fE/A/3U2rpqpQKG0RrmmHjf0q+7shjsSfi74mhmLF6g= github.com/pulumi/pulumi-yaml v1.17.0 h1:ebzggygqBcQrtmdBUqi28B1L/fAyHCFVIt0dS5re8Oc= github.com/pulumi/pulumi-yaml v1.17.0/go.mod h1:4cpS4ITkIAXgVedTZB3JY/DnZu9XSh+RhrKB5WlB/fs= -github.com/pulumi/pulumi/pkg/v3 v3.163.0 h1:b9cwzffrRTWgawIkUdKfRqIyajAm4gdwHbYTJrpisms= -github.com/pulumi/pulumi/pkg/v3 v3.163.0/go.mod h1:/wRipYO0ZGehdQqTcT2t32gfYO95QvJCgN/hC0VXeGQ= +github.com/pulumi/pulumi/pkg/v3 v3.165.0 h1:a0UOxhM+yUi5NH+SP5lv0YHxac3JOaeaZ/VINVkK+bM= +github.com/pulumi/pulumi/pkg/v3 v3.165.0/go.mod h1:wJDlCqph9G1OCX8BYfjRp8yOtqBXZLij57fGbn1lXsM= github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20250417110128-49fb14839a5a h1:4V6DbJaLLSvOc9J/7ODqQEg892LaPD2JZtB9pKpHPI0= github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20250417110128-49fb14839a5a/go.mod h1:kle5wfWZA+tNa8M/8tBVk6yLE2kGqYtD3VEIpl8Vc6Y= github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20250417110128-49fb14839a5a h1:5QPCsb+EAqwB2N70hXHPJig8eKi02Gttm9pGs9PQf2I= github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20250417110128-49fb14839a5a/go.mod h1:9z23xCno15uQcyMDfFgXpISVExs/yXDuPsi5L8ykeRU= github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20250417110128-49fb14839a5a h1:4JkTGfh7AMYWlngOHk1V5m3US5JQsphUsQBpfCCW5yg= github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20250417110128-49fb14839a5a/go.mod h1:IhJFvQ3XHlTfik9Gmlw5A7KMGXOK+UMQuslTS0cuojA= -github.com/pulumi/pulumi/sdk/v3 v3.163.0 h1:yiT1nPelxXILVrN0yRn0I3NO8Yybba2IvWArYBstZJ8= -github.com/pulumi/pulumi/sdk/v3 v3.163.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44= +github.com/pulumi/pulumi/sdk/v3 v3.165.0 h1:cglplKZOJDpqH8wa/2J250G9az/sE9eKp9fS2bC+vi8= +github.com/pulumi/pulumi/sdk/v3 v3.165.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44= github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= diff --git a/sdk/go/dockerbuild/go.mod b/sdk/go/dockerbuild/go.mod index 5598fd5..9269ea4 100644 --- a/sdk/go/dockerbuild/go.mod +++ b/sdk/go/dockerbuild/go.mod @@ -4,7 +4,7 @@ go 1.24.1 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.163.0 + github.com/pulumi/pulumi/sdk/v3 v3.165.0 ) require ( diff --git a/sdk/go/dockerbuild/go.sum b/sdk/go/dockerbuild/go.sum index afc4c0e..2f55582 100644 --- a/sdk/go/dockerbuild/go.sum +++ b/sdk/go/dockerbuild/go.sum @@ -162,8 +162,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.13.0 h1:O2MPR2koScaQ2fXwyer8Q3Dd7z+DCnaDfsgNl5mVNMk= github.com/pulumi/esc v0.13.0/go.mod h1:IIQo6W6Uzajt6f1RW4QvNxIRDlbK3TNQysnrwBHNo3U= -github.com/pulumi/pulumi/sdk/v3 v3.163.0 h1:yiT1nPelxXILVrN0yRn0I3NO8Yybba2IvWArYBstZJ8= -github.com/pulumi/pulumi/sdk/v3 v3.163.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44= +github.com/pulumi/pulumi/sdk/v3 v3.165.0 h1:cglplKZOJDpqH8wa/2J250G9az/sE9eKp9fS2bC+vi8= +github.com/pulumi/pulumi/sdk/v3 v3.165.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index 5ece5fc..2cfafc6 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "pulumi_docker_build" description = "A Pulumi provider for building modern Docker images with buildx and BuildKit." - dependencies = ["parver>=0.2.1", "pulumi>=3.142.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11; python_version < \"3.11\""] + dependencies = ["parver>=0.2.1", "pulumi>=3.142.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11,<5; python_version < \"3.11\""] keywords = ["docker", "buildkit", "buildx", "kind/native"] readme = "README.md" requires-python = ">=3.9" From 7ca0d3a6a497d702b2c43227a0f5b439ba5af5bb Mon Sep 17 00:00:00 2001 From: Pulumi Bot <30351955+pulumi-bot@users.noreply.github.com> Date: Thu, 1 May 2025 22:49:32 -0700 Subject: [PATCH 2/3] Update GitHub Actions workflows. (#538) This PR was automatically generated by the update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt repo, from commit c2ecd95490e11d58e65add09cd1771e72475b14f. --- .github/workflows/build.yml | 28 +++++++++---------- .github/workflows/command-dispatch.yml | 8 +++--- .github/workflows/prerelease.yml | 32 +++++++++++----------- .github/workflows/pull-request.yml | 8 +++--- .github/workflows/release.yml | 32 +++++++++++----------- .github/workflows/run-acceptance-tests.yml | 20 +++++++------- .github/workflows/weekly-pulumi-update.yml | 10 +++---- 7 files changed, 69 insertions(+), 69 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4be8f94..26b5c98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,10 +39,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} @@ -240,7 +240,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -254,7 +254,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -384,7 +384,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -398,7 +398,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -410,7 +410,7 @@ jobs: -exec chmod +x {} \; - name: Download SDK if: ${{ matrix.language != 'yaml' }} - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: ${{ matrix.language }}-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -444,7 +444,7 @@ jobs: with: environment: logins/pulumi-ci - name: Authenticate to Google Cloud - uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8 + uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9 with: workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ @@ -571,11 +571,11 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Download python SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: python-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -583,7 +583,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C ${{github.workspace}}/sdk/python - name: Download dotnet SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: dotnet-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -591,7 +591,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C ${{github.workspace}}/sdk/dotnet - name: Download nodejs SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: nodejs-sdk.tar.gz path: ${{ github.workspace}}/sdk/ diff --git a/.github/workflows/command-dispatch.yml b/.github/workflows/command-dispatch.yml index 3b1147c..a713b08 100644 --- a/.github/workflows/command-dispatch.yml +++ b/.github/workflows/command-dispatch.yml @@ -24,10 +24,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 0a27ea9..5f0a1de 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -30,10 +30,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} @@ -232,7 +232,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -246,7 +246,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -375,7 +375,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -389,7 +389,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -401,7 +401,7 @@ jobs: -exec chmod +x {} \; - name: Download SDK if: ${{ matrix.language != 'yaml' }} - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: ${{ matrix.language }}-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -435,7 +435,7 @@ jobs: with: environment: logins/pulumi-ci - name: Authenticate to Google Cloud - uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8 + uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9 with: workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ @@ -562,11 +562,11 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Download python SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: python-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -574,7 +574,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C ${{github.workspace}}/sdk/python - name: Download dotnet SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: dotnet-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -582,7 +582,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C ${{github.workspace}}/sdk/dotnet - name: Download nodejs SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: nodejs-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -640,7 +640,7 @@ jobs: with: gradle-version: "7.6" - name: Download java SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: java-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -670,7 +670,7 @@ jobs: with: set-env: PROVIDER_VERSION - name: Download go SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: go-sdk.tar.gz path: ${{ github.workspace}}/sdk/ diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 14ca458..0f3781c 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -21,10 +21,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3dc0939..b27da84 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,10 +31,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} @@ -232,7 +232,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -246,7 +246,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -375,7 +375,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -389,7 +389,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -401,7 +401,7 @@ jobs: -exec chmod +x {} \; - name: Download SDK if: ${{ matrix.language != 'yaml' }} - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: ${{ matrix.language }}-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -435,7 +435,7 @@ jobs: with: environment: logins/pulumi-ci - name: Authenticate to Google Cloud - uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8 + uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9 with: workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ @@ -562,11 +562,11 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Download python SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: python-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -574,7 +574,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C ${{github.workspace}}/sdk/python - name: Download dotnet SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: dotnet-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -582,7 +582,7 @@ jobs: run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C ${{github.workspace}}/sdk/dotnet - name: Download nodejs SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: nodejs-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -640,7 +640,7 @@ jobs: with: gradle-version: "7.6" - name: Download java SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: java-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -670,7 +670,7 @@ jobs: with: set-env: PROVIDER_VERSION - name: Download go SDK - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: go-sdk.tar.gz path: ${{ github.workspace}}/sdk/ diff --git a/.github/workflows/run-acceptance-tests.yml b/.github/workflows/run-acceptance-tests.yml index 07fa554..e0e129a 100644 --- a/.github/workflows/run-acceptance-tests.yml +++ b/.github/workflows/run-acceptance-tests.yml @@ -27,10 +27,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} @@ -252,7 +252,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -266,7 +266,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -400,7 +400,7 @@ jobs: with: dotnet-version: ${{ env.DOTNETVERSION }} - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Setup Java @@ -414,7 +414,7 @@ jobs: with: gradle-version: "7.6" - name: Download provider - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: pulumi-${{ env.PROVIDER }}-provider.tar.gz path: ${{ github.workspace }}/bin @@ -426,7 +426,7 @@ jobs: -exec chmod +x {} \; - name: Download SDK if: ${{ matrix.language != 'yaml' }} - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: ${{ matrix.language }}-sdk.tar.gz path: ${{ github.workspace}}/sdk/ @@ -460,7 +460,7 @@ jobs: with: environment: logins/pulumi-ci - name: Authenticate to Google Cloud - uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8 + uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9 with: workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ diff --git a/.github/workflows/weekly-pulumi-update.yml b/.github/workflows/weekly-pulumi-update.yml index 83d886f..eaeec78 100644 --- a/.github/workflows/weekly-pulumi-update.yml +++ b/.github/workflows/weekly-pulumi-update.yml @@ -23,10 +23,10 @@ env: SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} - GOVERSION: 1.21.x - NODEVERSION: 20.x - PYTHONVERSION: "3.11" - DOTNETVERSION: 8.0.x + GOVERSION: "1.21.x" + NODEVERSION: "20.x" + PYTHONVERSION: "3.11.8" + DOTNETVERSION: "8.0.x" JAVAVERSION: "11" ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} @@ -73,7 +73,7 @@ jobs: node-version: ${{ env.NODEVERSION }} registry-url: https://registry.npmjs.org - name: Setup Python - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ env.PYTHONVERSION }} - name: Update Pulumi/Pulumi From 7eb1e3fe50bc6f1abc0a67918e52a13fb272bfe2 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Fri, 2 May 2025 12:31:40 +0200 Subject: [PATCH 3/3] Flow `context.Context` through image builds (#522) This should help with cancel responsiveness. Right now, there are multiple places where docker does not respond to cancel for long periods of time. --- CHANGELOG.md | 4 ++++ provider/internal/cli.go | 19 +++++++++++-------- provider/internal/cli_test.go | 4 ++-- provider/internal/client.go | 4 ++-- provider/internal/host.go | 12 ++++++------ 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8b6100..63821bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Unreleased +### Changed + +- Respond to cancel for exec builds. () + ## 0.0.11 (2025-04-11) ### Changed diff --git a/provider/internal/cli.go b/provider/internal/cli.go index bb5a280..ab33922 100644 --- a/provider/internal/cli.go +++ b/provider/internal/cli.go @@ -25,6 +25,7 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" "strings" @@ -203,7 +204,7 @@ func (c *cli) Close() error { // execBuild performs a build by os.Exec'ing the docker-buildx binary. // Credentials are communicated to docker-buildx via a temporary directory. // Secrets are communicated via dynamic environment variables. -func (c *cli) execBuild(b Build) (*client.SolveResponse, error) { +func (c *cli) execBuild(ctx context.Context, b Build) (*client.SolveResponse, error) { // Setup a temporary directory for auth, and clean it up when we're done. tmp, err := os.MkdirTemp("", "pulumi-docker-") if err != nil { @@ -213,7 +214,7 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) { opts := b.BuildOptions() - builder, err := c.host.builderFor(b) + builder, err := c.host.builderFor(ctx, b) if err != nil { return nil, err } @@ -339,7 +340,7 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) { } // Invoke docker-buildx. - err = c.exec(args, env) + err = c.exec(ctx, args, env) if err != nil { return nil, err } @@ -378,7 +379,7 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) { // exec invokes a Docker plugin binary. The first argument should be the name // of the plugin's subcommand, e.g. "buildx". -func (c *cli) exec(args, extraEnv []string) error { +func (c *cli) exec(ctx context.Context, args, extraEnv []string) error { if len(args) == 0 { return errors.New("args must be non-empty") } @@ -395,16 +396,18 @@ func (c *cli) exec(args, extraEnv []string) error { defer contract.IgnoreClose(c.w) - cmd, err := manager.PluginRunCommand(c, name, root) + runCmd, err := manager.PluginRunCommand(c, name, root) if err != nil { return err } - cmd.Args = append([]string{cmd.Args[0]}, args...) + // Create a new command that inherits from ctx. + cmd := exec.CommandContext(ctx, //nolint:gosec // We take the first argument and binary from runCmd. + runCmd.Path, append([]string{runCmd.Args[1]}, args...)..., + ) cmd.Stderr = c.Err() cmd.Stdout = c.Out() cmd.Stdin = c.In() - - cmd.Env = append(cmd.Env, extraEnv...) + cmd.Env = append(runCmd.Env, extraEnv...) //nolint:gocritic // We are intentionally assigning from runCmd to cmd return cmd.Run() } diff --git a/provider/internal/cli_test.go b/provider/internal/cli_test.go index 8169450..48f59fb 100644 --- a/provider/internal/cli_test.go +++ b/provider/internal/cli_test.go @@ -28,12 +28,12 @@ import ( func TestExec(t *testing.T) { t.Parallel() - h, err := newHost(context.Background(), nil) + h, err := newHost(t.Context(), nil) require.NoError(t, err) cli, err := wrap(h) require.NoError(t, err) - err = cli.exec([]string{"buildx", "version"}, nil) + err = cli.exec(t.Context(), []string{"buildx", "version"}, nil) assert.NoError(t, err) out, err := io.ReadAll(cli.r) diff --git a/provider/internal/client.go b/provider/internal/client.go index d09021c..6381704 100644 --- a/provider/internal/client.go +++ b/provider/internal/client.go @@ -106,10 +106,10 @@ func (c *cli) Build( defer contract.IgnoreClose(c) if build.ShouldExec() { - return c.execBuild(build) + return c.execBuild(ctx, build) } - b, err := c.host.builderFor(build) + b, err := c.host.builderFor(ctx, build) if err != nil { return nil, err } diff --git a/provider/internal/host.go b/provider/internal/host.go index 7b34f1c..3f852b0 100644 --- a/provider/internal/host.go +++ b/provider/internal/host.go @@ -68,7 +68,7 @@ func newHost(ctx context.Context, config *Config) (*host, error) { // // If the build doesn't specify a builder by name, we will iterate through all // available builders until we find one that we can connect to. -func (h *host) builderFor(build Build) (*cachedBuilder, error) { +func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, error) { h.mu.Lock() defer h.mu.Unlock() @@ -116,7 +116,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) { if bb.Err() != nil { continue } - nodes, err := bb.LoadNodes(context.Background()) + nodes, err := bb.LoadNodes(ctx) if err != nil { continue } @@ -125,7 +125,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) { if n.Driver == nil { continue nextbuilder } - if _, err := n.Driver.Dial(context.Background()); err != nil { + if _, err := n.Driver.Dial(ctx); err != nil { continue nextbuilder } // TODO: Confirm the builder supports the requested platforms. @@ -139,7 +139,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) { // If we STILL don't have a builder, create a docker-container instance. b, err = builder.Create( - context.Background(), + ctx, txn, h.cli, builder.CreateOpts{Driver: "docker-container"}, @@ -147,7 +147,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) { if err != nil { return nil, fmt.Errorf("creating builder: %w", err) } - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + ctx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() if _, err := b.Boot(ctx); err != nil { return nil, fmt.Errorf("booting builder: %w", err) @@ -157,7 +157,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) { // Attempt to load nodes in order to determine the builder's driver. Ignore // errors for "exec" builds because it's possible to request builders with // drivers that are unknown to us. - nodes, err := b.LoadNodes(context.Background(), builder.WithData()) + nodes, err := b.LoadNodes(ctx, builder.WithData()) if err != nil && !build.ShouldExec() { return nil, fmt.Errorf("loading nodes: %w", err) }