Compare commits

..

27 Commits
mise ... v0.0.8

Author SHA1 Message Date
Pulumi Bot
80d25003de Update GitHub Actions workflows. (#348)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 7420998a8bb5f45102a45aadd31dde676da6d1d2.
2024-12-10 09:06:27 -08:00
Bryce Lampe
195fbfc784 Add support for multiple exporters (#235)
Buildkit 0.13 introduced support for [multiple
exporters](https://docs.docker.com/build/exporters/#multiple-exporters).
We currently return an error in these situations.

Instead, inspect the builder's version when loading the node and relax
this error if we see it's running at least 0.13.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/21.
2024-12-10 09:05:36 -08:00
Bryce Lampe
2907567484 Don't attempt to parse custom syntax (#346)
The provider currently attempts to parse your Dockerfile in case there
are any obviously broken syntax errors.

However, Dockerfiles can use custom syntaxes which are implemented as
their own images. Buildkit detects `# syntax=` directives, pulls the
image, and uses it to parse.

It doesn't make sense for us to attempt to replicate that behavior, so
when we detect a custom syntax we will simply disable this validation.
If there are syntax errors the user will discover them after the build
is attempted.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/300
2024-12-09 15:41:58 -08:00
Bryce Lampe
0a045d12bf regenerate sdk 2024-12-04 20:22:31 +00:00
pulumi-renovate[bot]
9f3d3db1dd Pin dependencies 2024-12-04 20:22:31 +00:00
pulumi-renovate[bot]
a18d56b485 Update module github.com/moby/buildkit to v0.18.1 (#330)
Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-04 10:18:32 -08:00
Pulumi Bot
2f620af3be Update GitHub Actions workflows. (#343)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit e7696dfaff0baa5b84126fc6971cc40e89d490cf.
2024-12-04 09:29:48 -08:00
Bryce Lampe
9aa209c0fe Disable Dependabot version bumps 2024-11-25 17:23:38 -08:00
pulumi-renovate[bot]
2c2f8a68a3 fix(deps): update first-party pulumi dependencies 2024-11-25 17:21:25 -08:00
pulumi-renovate[bot]
7479f9f2a5 fix(deps): update github.com/tonistiigi/fsutil digest to 8d32dbd (main) (#309) 2024-11-20 20:43:44 -08:00
pulumi-renovate[bot]
e15f743f8c fix(deps): update module go.uber.org/mock to v0.5.0 (main) (#311) 2024-11-21 04:20:12 +00:00
pulumi-renovate[bot]
ec4594a854 fix(deps): update module github.com/moby/buildkit to v0.17.1 (main) (#315) 2024-11-21 04:18:32 +00:00
pulumi-renovate[bot]
0ce316d7de fix(deps): update module github.com/docker/buildx to v0.18.0 (main) (#312) 2024-11-20 20:00:22 -08:00
Pulumi Bot
0b7a26a9b6 Update GitHub Actions workflows. (#301)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 915e1137e1e0cac4db9d582f73bc5f578774b762.

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-11-20 18:46:58 -08:00
Bryce Lampe
b66e4a56fd regenerate sdk 2024-11-20 18:30:11 -08:00
Bryce Lampe
0d17198e54 lint 2024-11-20 18:30:11 -08:00
pulumi-renovate[bot]
fb7912a889 fix(deps): update first-party pulumi dependencies 2024-11-20 18:30:11 -08:00
Renovate Bot
4c03012268 Update first-party Pulumi dependencies 2024-10-20 17:01:10 -07:00
Renovate Bot
bf6080cdc4 Update first-party Pulumi dependencies 2024-10-13 17:00:57 -07:00
Ramon Quitales
3d57abba75 upgrade: bump pulumi/pulumi to 3.136.1 (#284)
This is the required commit to unblock CI:
bc7700a50c

Resolves: #272
2024-10-11 16:22:58 -07:00
Anton Tayanovskyy
9d3d0712f2 Fix: do not over-specify SDK dependencies (#271)
Re: https://github.com/pulumi/ci-mgmt/issues/1091
2024-10-02 14:03:54 -04:00
Bryce Lampe
30a26f61e4 Upgrade pulumi-go-provider (#268)
Fixes https://github.com/pulumi/pulumi-docker-build/issues/262.

@iwahbe I realized while putting this together that the provider config
case wasn't actually tested e2e, and I'm skeptical it was ever actually
working. I think it would be reasonable to pull in
https://github.com/pulumi/pulumi-docker-build/pull/253 IMO.
2024-09-27 09:57:50 -07:00
Pulumi Bot
242d99d4d6 Automated upgrade: bump pulumi/pulumi to 3.134.1 (#266)
Automated upgrade: bump pulumi/pulumi to 3.134.1
2024-09-26 10:45:31 -07:00
Pulumi Bot
8151f0369f Automated upgrade: bump pulumi/pulumi to 3.131.0 (#244)
Automated upgrade: bump pulumi/pulumi to 3.131.0

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-09-10 09:26:19 -07:00
Pulumi Bot
3e25f4a26a Update GitHub Actions workflows. (#250)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit ef73d27abae63a21fe95561ad39d3c5b15060b3e.
2024-09-10 03:55:58 -07:00
Pulumi Bot
1affb91b69 Update GitHub Actions workflows. (#240)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 1ade282c11c4b1e46d1ede6d849c8972f0e2f4e2.
2024-08-29 03:53:53 -07:00
Ramon Quitales
06cf6ec5f8 Fix weekly-pulumi-update (#232)
Fixes: #212

This PR follows the `weekly-pulumi-update` CI workflow steps to update
our `pulumi/pulumi` dependency, with manual intervention to resolve
tooling update conflicts. Before generating the SDKs, it's necessary to
update the language tools and otel packages to ensure compatibility with
the latest changes.

Additional command executed for the manual updates:

```sh
TOOLS=(
    "github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3"
    "github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3"
    "github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3"
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
)

for TOOL in "${TOOLS[@]}"; do
    go get -u $TOOL
    go mod tidy
done
```
2024-08-26 09:57:49 -07:00
63 changed files with 3505 additions and 1623 deletions

View File

@@ -1,34 +0,0 @@
name: Setup tools
description: Installs all tools necessary for building and testing the project.
runs:
using: "composite"
steps:
- name: Collect workflow stats
uses: catchpoint/workflow-telemetry-action@v2
with:
comment_on_pr: false
env:
GITHUB_TOKEN: ""
- name: Setup mise
uses: jdx/mise-action@v2
- name: Go cache paths
id: go-cache-paths
shell: sh
run: |
echo "go-build=$(go env GOCACHE)" >> $GITHUB_OUTPUT
echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
- name: Go build cache
uses: actions/cache@v2
with:
path: ${{ steps.go-cache-paths.outputs.go-build }}
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
- name: Go mod cache
uses: actions/cache@v2
with:
path: ${{ steps.go-cache-paths.outputs.go-mod }}
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}

View File

@@ -1,25 +0,0 @@
version: 2
updates:
- package-ecosystem: gomod
directory: /
schedule:
interval: daily
groups:
pulumi:
patterns:
- "github.com/pulumi/*"
docker:
patterns:
- "github.com/distribution/*"
- "github.com/docker/*"
- "github.com/moby/*"
security:
applies-to: security-updates
patterns:
- "*"
other:
patterns:
- "*"
labels:
- dependencies
- impact/no-changelog-required

View File

@@ -61,28 +61,28 @@ jobs:
name: prerequisites name: prerequisites
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -101,16 +101,16 @@ jobs:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with: with:
message: | message: |
${{ env.SCHEMA_CHANGES }} ${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck comment-tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot' github.actor == 'pulumi-bot'
name: Add label if no breaking changes name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0 uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
with: with:
labels: impact/no-changelog-required labels: impact/no-changelog-required
number: ${{ github.event.issue.number }} number: ${{ github.event.issue.number }}
@@ -118,7 +118,7 @@ jobs:
- name: Build Provider - name: Build Provider
run: make provider run: make provider
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -132,19 +132,19 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov - name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -164,50 +164,50 @@ jobs:
name: build_sdks name: build_sdks
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -222,7 +222,7 @@ jobs:
- name: Build SDK - name: Build SDK
run: make build_${{ matrix.language }} run: make build_${{ matrix.language }}
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -234,14 +234,14 @@ jobs:
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30 retention-days: 30
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -265,50 +265,50 @@ jobs:
id-token: write id-token: write
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -319,7 +319,7 @@ jobs:
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \; -exec chmod +x {} \;
- name: Download SDK - name: Download SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -338,7 +338,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: make install_${{ matrix.language}}_sdk run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }} aws-region: ${{ env.AWS_REGION }}
@@ -347,7 +347,7 @@ jobs:
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0 uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f # v2.1.7
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -355,7 +355,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2 uses: google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a # v2.1.2
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -367,10 +367,10 @@ jobs:
run: >- run: >-
set -euo pipefail set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -381,21 +381,21 @@ jobs:
name: publish name: publish
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
tool-cache: false tool-cache: false
dotnet: false dotnet: false
@@ -404,13 +404,13 @@ jobs:
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
@@ -420,7 +420,7 @@ jobs:
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
with: with:
@@ -428,7 +428,7 @@ jobs:
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -439,46 +439,46 @@ jobs:
name: publish_sdk name: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -486,7 +486,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -494,7 +494,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -510,78 +510,29 @@ jobs:
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
publish_java_sdk:
runs-on: ubuntu-latest
continue-on-error: true
needs: publish
name: publish_java_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- id: version
name: Set Provider Version
uses: pulumi/provider-version-action@v1
with:
set-env: PROVIDER_VERSION
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download java SDK
uses: actions/download-artifact@v4
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress java SDK
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Publish Java SDK
uses: gradle/gradle-build-action@v3
env:
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
with:
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
build-root-directory: ./sdk/java
gradle-version: 7.4.1
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
ref: ${{ env.PR_COMMIT_SHA }} ref: ${{ env.PR_COMMIT_SHA }}
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Disarm go:embed directives to enable linters that compile source code
run: git grep -l 'go:embed' -- provider | xargs --no-run-if-empty sed -i
's/go:embed/ goembed/g'
- name: golangci-lint provider pkg - name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
with: with:
version: ${{ env.GOLANGCI_LINT_VERSION }} version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml args: -c ../.golangci.yml

View File

@@ -53,10 +53,10 @@ jobs:
name: command-dispatch-for-testing name: command-dispatch-for-testing
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- uses: peter-evans/slash-command-dispatch@v2 - uses: peter-evans/slash-command-dispatch@13bc09769d122a64f75aa5037256f6f2d78be8c4 # v4.0.0
with: with:
token: ${{ secrets.PULUMI_BOT_TOKEN }} token: ${{ secrets.PULUMI_BOT_TOKEN }}
reaction-token: ${{ secrets.GITHUB_TOKEN }} reaction-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -53,28 +53,28 @@ jobs:
name: prerequisites name: prerequisites
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -93,16 +93,16 @@ jobs:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with: with:
message: | message: |
${{ env.SCHEMA_CHANGES }} ${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck comment-tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot' github.actor == 'pulumi-bot'
name: Add label if no breaking changes name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0 uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
with: with:
labels: impact/no-changelog-required labels: impact/no-changelog-required
number: ${{ github.event.issue.number }} number: ${{ github.event.issue.number }}
@@ -110,7 +110,7 @@ jobs:
- name: Build Provider - name: Build Provider
run: make provider run: make provider
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -124,19 +124,19 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov - name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -156,50 +156,50 @@ jobs:
name: build_sdks name: build_sdks
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -214,7 +214,7 @@ jobs:
- name: Build SDK - name: Build SDK
run: make build_${{ matrix.language }} run: make build_${{ matrix.language }}
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -226,13 +226,13 @@ jobs:
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -256,50 +256,50 @@ jobs:
id-token: write id-token: write
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -310,7 +310,7 @@ jobs:
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \; -exec chmod +x {} \;
- name: Download SDK - name: Download SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -329,7 +329,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: make install_${{ matrix.language}}_sdk run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }} aws-region: ${{ env.AWS_REGION }}
@@ -338,7 +338,7 @@ jobs:
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0 uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f # v2.1.7
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -346,7 +346,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2 uses: google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a # v2.1.2
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -358,10 +358,10 @@ jobs:
run: >- run: >-
set -euo pipefail set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -372,21 +372,21 @@ jobs:
name: publish name: publish
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
tool-cache: false tool-cache: false
dotnet: false dotnet: false
@@ -395,13 +395,13 @@ jobs:
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
@@ -411,7 +411,7 @@ jobs:
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
with: with:
@@ -419,7 +419,7 @@ jobs:
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -430,46 +430,46 @@ jobs:
name: publish_sdk name: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -477,7 +477,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -485,7 +485,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -501,7 +501,7 @@ jobs:
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -513,37 +513,37 @@ jobs:
name: publish_java_sdk name: publish_java_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download java SDK - name: Download java SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: java-sdk.tar.gz name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -551,7 +551,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java ${{github.workspace}}/sdk/java
- name: Publish Java SDK - name: Publish Java SDK
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
env: env:
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }} PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
with: with:
@@ -564,16 +564,16 @@ jobs:
needs: publish_sdk needs: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Download go SDK - name: Download go SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: go-sdk.tar.gz name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/

View File

@@ -50,15 +50,15 @@ jobs:
name: comment-on-pr name: comment-on-pr
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- name: Comment PR - name: Comment PR
uses: thollander/actions-comment-pull-request@v2 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with: with:
message: > message: >
PR is now waiting for a maintainer to run the acceptance tests. PR is now waiting for a maintainer to run the acceptance tests.
**Note for the maintainer:** To run the acceptance tests, please comment */run-acceptance-tests* on the PR **Note for the maintainer:** To run the acceptance tests, please comment */run-acceptance-tests* on the PR
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
if: github.event.pull_request.head.repo.full_name != github.repository if: github.event.pull_request.head.repo.full_name != github.repository

View File

@@ -53,28 +53,28 @@ jobs:
name: prerequisites name: prerequisites
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -93,16 +93,16 @@ jobs:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with: with:
message: | message: |
${{ env.SCHEMA_CHANGES }} ${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck comment-tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot' github.actor == 'pulumi-bot'
name: Add label if no breaking changes name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0 uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
with: with:
labels: impact/no-changelog-required labels: impact/no-changelog-required
number: ${{ github.event.issue.number }} number: ${{ github.event.issue.number }}
@@ -110,7 +110,7 @@ jobs:
- name: Build Provider - name: Build Provider
run: make provider run: make provider
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -124,19 +124,19 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov - name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -156,50 +156,50 @@ jobs:
name: build_sdks name: build_sdks
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -214,7 +214,7 @@ jobs:
- name: Build SDK - name: Build SDK
run: make build_${{ matrix.language }} run: make build_${{ matrix.language }}
- name: Check worktree clean - name: Check worktree clean
uses: pulumi/git-status-check-action@v1 uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with: with:
allowed-changes: |- allowed-changes: |-
sdk/**/pulumi-plugin.json sdk/**/pulumi-plugin.json
@@ -226,13 +226,13 @@ jobs:
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -256,50 +256,50 @@ jobs:
id-token: write id-token: write
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download provider + tfgen binaries - name: Download provider + tfgen binaries
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -310,7 +310,7 @@ jobs:
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \; -exec chmod +x {} \;
- name: Download SDK - name: Download SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -329,7 +329,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: make install_${{ matrix.language}}_sdk run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }} aws-region: ${{ env.AWS_REGION }}
@@ -338,7 +338,7 @@ jobs:
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0 uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f # v2.1.7
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -346,7 +346,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2 uses: google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a # v2.1.2
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -358,10 +358,10 @@ jobs:
run: >- run: >-
set -euo pipefail set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -372,21 +372,21 @@ jobs:
name: publish name: publish
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
tool-cache: false tool-cache: false
dotnet: false dotnet: false
@@ -395,13 +395,13 @@ jobs:
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4 uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
@@ -411,7 +411,7 @@ jobs:
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
with: with:
@@ -419,7 +419,7 @@ jobs:
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -430,46 +430,46 @@ jobs:
name: publish_sdks name: publish_sdks
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -477,7 +477,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -485,7 +485,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -501,7 +501,7 @@ jobs:
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@v3 uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
@@ -513,37 +513,37 @@ jobs:
name: publish_java_sdk name: publish_java_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with: with:
java-version: ${{ env.JAVAVERSION }} java-version: ${{ env.JAVAVERSION }}
distribution: temurin distribution: temurin
cache: gradle cache: gradle
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Download java SDK - name: Download java SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: java-sdk.tar.gz name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -551,7 +551,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java ${{github.workspace}}/sdk/java
- name: Publish Java SDK - name: Publish Java SDK
uses: gradle/gradle-build-action@v3 uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
env: env:
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }} PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
with: with:
@@ -564,16 +564,16 @@ jobs:
needs: publish_sdk needs: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@v1 uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Download go SDK - name: Download go SDK
uses: actions/download-artifact@v4 uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with: with:
name: go-sdk.tar.gz name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -595,7 +595,7 @@ jobs:
needs: publish_go_sdk needs: publish_go_sdk
steps: steps:
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Dispatch Event - name: Dispatch Event

View File

@@ -4,10 +4,10 @@ name: run-acceptance-tests
on: on:
repository_dispatch: repository_dispatch:
types: types:
- run-acceptance-tests-command - run-acceptance-tests-command
pull_request: pull_request:
paths-ignore: paths-ignore:
- CHANGELOG.md - CHANGELOG.md
workflow_dispatch: {} workflow_dispatch: {}
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
@@ -27,6 +27,13 @@ env:
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2 AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
@@ -49,251 +56,386 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: comment-notification name: comment-notification
steps: steps:
- name: Create URL to the run output - name: Create URL to the run output
id: vars id: vars
run: echo run: echo
run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
>> "$GITHUB_OUTPUT" >> "$GITHUB_OUTPUT"
- name: Update with Result - name: Update with Result
uses: peter-evans/create-or-update-comment@v1 uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with: with:
token: ${{ secrets.PULUMI_BOT_TOKEN }} token: ${{ secrets.PULUMI_BOT_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
issue-number: ${{ github.event.client_payload.github.payload.issue.number }} issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}" body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}"
if: github.event_name == 'repository_dispatch' if: github.event_name == 'repository_dispatch'
prerequisites: prerequisites:
runs-on: ubuntu-latest
name: prerequisites
steps:
- name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- id: version
name: Set Provider Version
uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with:
set-env: PROVIDER_VERSION
- name: Install Go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment-tag: schemaCheck
github-token: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest build_sdks:
permissions: needs: prerequisites
contents: read runs-on: pulumi-ubuntu-8core
id-token: write
actions: write # For telemetry.
pull-requests: write # For schema comment.
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Setup tools
uses: ./.github/actions/setup-tools
- id: version
name: Set Provider Version
uses: pulumi/provider-version-action@v1
with:
set-env: PROVIDER_VERSION
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if:
contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
uses: pulumi/git-status-check-action@v1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
- name: Generate & Build SDK
run: mise run sdk
- name: Check worktree clean
uses: pulumi/git-status-check-action@v1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
- run: git status --porcelain
- name: Tar SDK folder
run: tar -zcf sdk.tar.gz -C sdk .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sdk.tar.gz
path: ${{ github.workspace}}/sdk.tar.gz
retention-days: 30
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
test:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
actions: write # For telemetry.
needs:
- prerequisites
strategy: strategy:
fail-fast: true fail-fast: true
matrix: matrix:
shard: [0, 1, 2, 3, 4, 5, 6, 7] language:
- nodejs
- python
- dotnet
- go
- java
name: build_sdks
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
ref: ${{ env.PR_COMMIT_SHA }} ref: ${{ env.PR_COMMIT_SHA }}
- name: Setup tools - id: version
uses: ./.github/actions/setup-tools name: Set Provider Version
- id: version uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
name: Set Provider Version with:
uses: pulumi/provider-version-action@v1 set-env: PROVIDER_VERSION
with: - name: Install Go
set-env: PROVIDER_VERSION uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
- name: Download provider + tfgen binaries with:
uses: actions/download-artifact@v4 go-version: ${{ env.GOVERSION }}
with: cache-dependency-path: "**/*.sum"
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz - name: Install pulumictl
path: ${{ github.workspace }}/bin uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
- name: UnTar provider binaries with:
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ repo: pulumi/pulumictl
github.workspace}}/bin - name: Install Pulumi CLI
- name: Restore Binary Permissions uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
run: - name: Setup Node
find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
-exec chmod +x {} \; with:
- name: Download SDK node-version: ${{ env.NODEVERSION }}
uses: actions/download-artifact@v4 registry-url: https://registry.npmjs.org
with: - name: Setup DotNet
name: sdk.tar.gz uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
path: ${{ github.workspace}} with:
- name: UnTar SDK folder dotnet-version: ${{ env.DOTNETVERSION }}
run: tar -zxf ${{ github.workspace}}/sdk.tar.gz -C ${{github.workspace}}/sdk - name: Setup Python
- name: Update path uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH with:
- name: Install Node dependencies python-version: ${{ env.PYTHONVERSION }}
run: yarn global add typescript - name: Setup Java
- run: dotnet nuget add source ${{ github.workspace }}/nuget uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
- name: Install dependencies with:
run: mise run install java-version: ${{ env.JAVAVERSION }}
- name: Configure AWS Credentials distribution: temurin
uses: aws-actions/configure-aws-credentials@v4 cache: gradle
with: - name: Setup Gradle
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
aws-region: ${{ env.AWS_REGION }} with:
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} gradle-version: "7.6"
role-duration-seconds: 3600 - name: Download provider + tfgen binaries
role-session-name: ${{ env.PROVIDER }}@githubActions uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} with:
- name: Authenticate to Google Cloud name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
uses: google-github-actions/auth@v0 path: ${{ github.workspace }}/bin
with: - name: UnTar provider binaries
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
}}/locations/global/workloadIdentityPools/${{ github.workspace}}/bin
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{ - name: Restore Binary Permissions
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} -exec chmod +x {} \;
- name: Setup gcloud auth - name: Generate SDK
uses: google-github-actions/setup-gcloud@v2 run: make generate_${{ matrix.language }}
with: - name: Build SDK
skip_install: true run: make build_${{ matrix.language }}
- name: Shard tests - name: Check worktree clean
run: mise run "test:examples:shard" -- --total ${{ strategy.job-total }} --index ${{ strategy.job-index }} > go-test uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
- name: Run tests with:
run: mise run "test:examples" $(cat go-test) 2>&1 | tee /tmp/gotest.log | gotestfmt allowed-changes: |-
- if: failure() && github.event_name == 'push' sdk/**/pulumi-plugin.json
name: Notify Slack sdk/dotnet/Pulumi.*.csproj
uses: 8398a7/action-slack@v3 sdk/go/**/pulumiUtilities.go
with: sdk/nodejs/package.json
author_name: Failure in SDK tests sdk/python/pyproject.toml
fields: repo,commit,author,action - run: git status --porcelain
status: ${{ job.status }} - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
test:
runs-on: pulumi-ubuntu-8core
needs:
- build_sdks
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: test
permissions:
contents: read
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- id: version
name: Set Provider Version
uses: pulumi/provider-version-action@0391d47b9b0d865d33dd0a295b1fcf9f7021dd4c # v1.5.3
with:
set-env: PROVIDER_VERSION
- name: Install Go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup Node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: UnTar SDK folder
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
github.workspace}}/sdk/${{ matrix.language}}
- name: Update path
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
- name: Install Node dependencies
run: yarn global add typescript
- run: dotnet nuget add source ${{ github.workspace }}/nuget
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install dependencies
run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f # v2.1.7
with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a # v2.1.2
with:
install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: >-
set -euo pipefail
cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2
with:
author_name: Failure in SDK tests
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
sentinel: sentinel:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: sentinel name: sentinel
steps: steps:
- name: Mark workflow as successful - name: Mark workflow as successful
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76 uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76 # v1.1.13
with: with:
authToken: ${{ secrets.GITHUB_TOKEN }} authToken: ${{ secrets.GITHUB_TOKEN }}
context: Sentinel context: Sentinel
state: success state: success
description: Sentinel checks passed description: Sentinel checks passed
sha: ${{ github.event.pull_request.head.sha || github.sha }} sha: ${{ github.event.pull_request.head.sha || github.sha }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
needs: needs:
- test - test
- lint - lint
lint: lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Install Go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Disarm go:embed directives to enable linters that compile source code
run: git grep -l 'go:embed' -- provider | xargs --no-run-if-empty sed -i
's/go:embed/ goembed/g'
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml
working-directory: provider
name: lint
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
actions: write # For telemetry.
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Setup tools
uses: ./.github/actions/setup-tools
- run: make lint

View File

@@ -51,31 +51,31 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:
lfs: true lfs: true
- name: Install Go - name: Install Go
uses: actions/setup-go@v5 uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with: with:
go-version: ${{ env.GOVERSION }} go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum" cache-dependency-path: "**/*.sum"
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0 uses: jaxxstorm/action-install-gh-release@cd6b2b78ad38bdd294341cda064ec0692b06215b # v1.14.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Install Pulumi CLI - name: Install Pulumi CLI
uses: pulumi/actions@v5 uses: pulumi/actions@c7fad9e2f0b79653172b36538b8b34b3c0291952 # v6.0.0
- name: Setup DotNet - name: Setup DotNet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with: with:
dotnet-version: ${{ env.DOTNETVERSION }} dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with: with:
node-version: ${{ env.NODEVERSION }} node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with: with:
python-version: ${{ env.PYTHONVERSION }} python-version: ${{ env.PYTHONVERSION }}
- name: Update Pulumi/Pulumi - name: Update Pulumi/Pulumi
@@ -127,12 +127,10 @@ jobs:
- name: Create PR - name: Create PR
id: create-pr id: create-pr
if: steps.gomod.outputs.changes != 0 if: steps.gomod.outputs.changes != 0
uses: repo-sync/pull-request@v2.6.2 run: |
with: ver=$(cat .pulumi.version)
source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }} msg="Automated upgrade: bump pulumi/pulumi to ${ver}"
destination_branch: main gh pr create -t "$msg" -b "$msg" -B main
pr_title: Automated Pulumi/Pulumi upgrade
github_token: ${{ secrets.PULUMI_BOT_TOKEN }}
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
name: weekly-pulumi-update name: weekly-pulumi-update

6
.gitignore vendored
View File

@@ -2,7 +2,6 @@
**/bin/ **/bin/
**/obj/ **/obj/
**/node_modules/ **/node_modules/
**/venv
**/.vs **/.vs
**/.idea **/.idea
**/.ionide **/.ionide
@@ -19,7 +18,4 @@ sdk/dotnet/version.txt
sdk/java/.gradle sdk/java/.gradle
sdk/java/build/ sdk/java/build/
sdk/java/build.gradle sdk/java/build.gradle
sdk/python/venv
# Allow local mise overrides.
.mise.*.local.toml
.mise.local.toml

View File

@@ -16,6 +16,8 @@ builds:
ignore: [] ignore: []
main: ./cmd/pulumi-resource-docker-build/ main: ./cmd/pulumi-resource-docker-build/
ldflags: ldflags:
- -s
- -w
- -X - -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}} github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}} - -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}

View File

@@ -16,6 +16,8 @@ builds:
ignore: [] ignore: []
main: ./cmd/pulumi-resource-docker-build/ main: ./cmd/pulumi-resource-docker-build/
ldflags: ldflags:
- -s
- -w
- -X - -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}} github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}} - -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}

View File

@@ -1,133 +0,0 @@
[tasks.provider]
run = ["make provider"]
sources = ["provider/**/*.go", "go.mod"]
outputs = ["bin/pulumi-resource-docker-build"]
# Generate
[tasks."generate:nodejs"]
depends = ["provider"]
run = "make generate_nodejs"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["sdk/nodejs/**/*.ts"]
[tasks."generate:python"]
run = "make generate_python"
depends = ["provider"]
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["sdk/python/**/*.py"]
[tasks."generate:dotnet"]
depends = ["provider"]
run = "make generate_dotnet"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["sdk/dotnet/**/*.cs"]
[tasks."generate:go"]
depends = ["provider"]
run = "make generate_go"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["sdk/go/**/*.go"]
[tasks."generate:java"]
depends = ["provider"]
run = "make generate_java"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["sdk/java/**/*.java"]
# Build
[tasks."build:nodejs"]
depends = ["generate:nodejs"]
run = "make build_nodejs"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["*"]
[tasks."build:python"]
depends = ["generate:python"]
run = "make build_python"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["*"]
[tasks."build:dotnet"]
depends = ["generate:dotnet"]
run = "make build_dotnet"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["*"]
[tasks."build:go"]
depends = ["generate:go"]
run = "make build_go"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["*"]
[tasks."build:java"]
depends = ["generate:java"]
run = "make build_java"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["*"]
# TODO: Might be able to link these directly?
[tasks."install:dotnet"]
run = "make install_dotnet_sdk"
[tasks."install:nodejs"]
run = "make install_nodejs_sdk"
[tasks.sdk]
depends = ["generate:*", "build:*"]
[tasks.install]
depends = ["install:*"]
[tasks.test]
sources = ["**/*.go"]
outputs = ["*"]
run = "make test_provider"
[tasks."test:examples"]
run = "go test -v -json -cover -timeout 2h -tags=all -parallel 4"
[tasks."test:examples:shard"]
run = "go run github.com/blampe/shard@latest --root ./examples"
[tasks.schema]
run = "pulumi package get-schema bin/pulumi-resource-docker-build | jq 'del(.version)' > provider/cmd/pulumi-resource-docker-build/schema.json"
sources = ["bin/pulumi-resource-docker-build"]
outputs = ["provider/cmd/pulumi-resource-docker-build/schema.json"]
[tasks.docs]
run = "go generate docs/generate.go"
depends = ["schema"]
sources = ["docs/yaml/*.yaml"]
outputs= ["provider/internal/embed/*.md"]
# TODO: tasks.examples
[tools]
# Development tooling.
go = "latest" # Will read version from go.mod.
lefthook = "1.7.12"
golangci-lint = "1.58.1"
# Build and test tools.
pulumi = "3.128.0"
node = "22"
dotnet = "6"
python = "3.11.9"
java = "temurin-11"
gradle = "7.6"
"go:github.com/pulumi/schema-tools" = "v0.6.0"
"go:github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt" = "v2.5.0"
"go:github.com/pulumi/pulumictl/cmd/pulumictl" = "a1b89aaf4299fe5bc78e140fc60eba79088b3dc5" # blampe/replace branch doesn't work?
yarn = "1.22.19"
gcloud = "455.0.0"
[env]
# TODO(https://github.com/jdx/mise/issues/1898): create = true
_.python.venv = { path = "venv", create = false }
CGO_ENABLED = "0"
[settings]
experimental = true # Enable Go backend.
python_compile = false # Don't build Python from source.

View File

@@ -1 +1 @@
3.128.0 3.136.1

View File

@@ -1,5 +1,27 @@
## Unreleased ## Unreleased
### Added
- Multiple exports are now allowed if the build daemon is detected to have
version 0.13 of Buildkit or newer. (https://github.com/pulumi/pulumi-docker-build/issues/21)
### Changed
- Upgraded buildx from 0.16.0 to 0.18.0.
### Fixed
- Custom `# syntax=` directives no longer cause validation errors. (https://github.com/pulumi/pulumi-docker-build/issues/300)
## 0.0.7 (2024-10-16)
### Fixed
- Fixed an issue where registry authentication couldn't be specified on the
provider. (https://github.com/pulumi/pulumi-docker-build/issues/262)
## 0.0.6 (2024-08-13)
### Fixed ### Fixed
- Refreshing an `Index` resource will no longer fail if its stored credentials - Refreshing an `Index` resource will no longer fail if its stored credentials

View File

@@ -17,6 +17,9 @@ WORKING_DIR := $(shell pwd)
EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml
TESTPARALLELISM := 4 TESTPARALLELISM := 4
PULUMI := bin/pulumi
GOGLANGCILINT := bin/golangci-lint
# Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable # Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable
# Local & branch builds will just used this fixed default version unless specified # Local & branch builds will just used this fixed default version unless specified
PROVIDER_VERSION ?= 0.1.0-alpha.0+dev PROVIDER_VERSION ?= 0.1.0-alpha.0+dev
@@ -60,26 +63,38 @@ examples/yaml:
rm -rf ${WORKING_DIR}/examples/yaml/app rm -rf ${WORKING_DIR}/examples/yaml/app
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app
examples/go: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/go: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,go) $(call example,go)
@git checkout examples/go/go.mod @git checkout examples/go/go.mod
examples/nodejs: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/nodejs: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,nodejs) $(call example,nodejs)
@git checkout examples/nodejs/package.json @git checkout examples/nodejs/package.json
examples/python: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/python: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,python) $(call example,python)
@git checkout examples/python/requirements.txt @git checkout examples/python/requirements.txt
examples/dotnet: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/dotnet: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,dotnet) $(call example,dotnet)
@git checkout examples/dotnet/provider-docker-build.csproj @git checkout examples/dotnet/provider-docker-build.csproj
examples/java: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,java) $(call example,java)
@git checkout examples/java/pom.xml @git checkout examples/java/pom.xml
${PULUMI}: go.sum
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/pkg/v3/cmd/pulumi
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-java/pkg/cmd/pulumi-language-java
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-yaml/cmd/pulumi-converter-yaml
${GOGLANGCILINT}: go.sum
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint
define pulumi_login define pulumi_login
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \ export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
pulumi login --local; pulumi login --local;
@@ -87,7 +102,7 @@ endef
define example define example
rm -rf ${WORKING_DIR}/examples/$(1) rm -rf ${WORKING_DIR}/examples/$(1)
pulumi convert \ $(PULUMI) convert \
--cwd ${WORKING_DIR}/examples/yaml \ --cwd ${WORKING_DIR}/examples/yaml \
--logtostderr \ --logtostderr \
--generate-only \ --generate-only \
@@ -125,8 +140,8 @@ build:: provider sdk/dotnet sdk/go sdk/nodejs sdk/python sdk/java ${SCHEMA_PATH}
only_build:: build only_build:: build
.PHONY: lint .PHONY: lint
lint: lint: ${GOGLANGCILINT}
golangci-lint run --fix -c .golangci.yml ${GOGLANGCILINT} run --fix -c .golangci.yml
install:: install_nodejs_sdk install_dotnet_sdk install:: install_nodejs_sdk install_dotnet_sdk
cp $(WORKING_DIR)/bin/${PROVIDER} ${GOPATH}/bin cp $(WORKING_DIR)/bin/${PROVIDER} ${GOPATH}/bin
@@ -180,7 +195,7 @@ bin/${PROVIDER}: $(shell find ./provider -name '*.go') go.mod
bin/pulumi-gen-${PACK}: # Required by CI bin/pulumi-gen-${PACK}: # Required by CI
touch bin/pulumi-gen-${PACK} touch bin/pulumi-gen-${PACK}
go.mod: $(shell find provider -name '*.go') go.mod: $(shell find . -name '*.go')
go.sum: go.mod go.sum: go.mod
sdk: $(shell mkdir -p sdk) sdk: $(shell mkdir -p sdk)
@@ -190,9 +205,9 @@ sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
.PHONY: sdk/* .PHONY: sdk/*
sdk/python: TMPDIR := $(shell mktemp -d) sdk/python: TMPDIR := $(shell mktemp -d)
sdk/python: bin/${PROVIDER} sdk/python: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/python rm -rf sdk/python
pulumi package gen-sdk bin/$(PROVIDER) --language python -o ${TMPDIR} $(PULUMI) package gen-sdk bin/$(PROVIDER) --language python -o ${TMPDIR}
cp README.md ${TMPDIR}/python/ cp README.md ${TMPDIR}/python/
cd ${TMPDIR}/python/ && \ cd ${TMPDIR}/python/ && \
rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \
@@ -203,9 +218,9 @@ sdk/python: bin/${PROVIDER}
mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/. mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/.
sdk/nodejs: TMPDIR := $(shell mktemp -d) sdk/nodejs: TMPDIR := $(shell mktemp -d)
sdk/nodejs: bin/${PROVIDER} sdk/nodejs: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/nodejs rm -rf sdk/nodejs
pulumi package gen-sdk bin/$(PROVIDER) --language nodejs -o ${TMPDIR} $(PULUMI) package gen-sdk bin/$(PROVIDER) --language nodejs -o ${TMPDIR}
cp README.md LICENSE ${TMPDIR}/nodejs cp README.md LICENSE ${TMPDIR}/nodejs
cd ${TMPDIR}/nodejs/ && \ cd ${TMPDIR}/nodejs/ && \
yarn install && \ yarn install && \
@@ -215,9 +230,9 @@ sdk/nodejs: bin/${PROVIDER}
sdk/go: TMPDIR := $(shell mktemp -d) sdk/go: TMPDIR := $(shell mktemp -d)
sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)" sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)"
sdk/go: bin/${PROVIDER} sdk/go: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/go rm -rf sdk/go
PATH=$(PATH) pulumi package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR} PATH=$(PATH) $(PULUMI) package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
cp go.mod ${TMPDIR}/go/dockerbuild/go.mod cp go.mod ${TMPDIR}/go/dockerbuild/go.mod
cd ${TMPDIR}/go/dockerbuild && \ cd ${TMPDIR}/go/dockerbuild && \
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/dockerbuild && \ go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/dockerbuild && \
@@ -225,9 +240,9 @@ sdk/go: bin/${PROVIDER}
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
sdk/dotnet: TMPDIR := $(shell mktemp -d) sdk/dotnet: TMPDIR := $(shell mktemp -d)
sdk/dotnet: bin/${PROVIDER} sdk/dotnet: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/dotnet rm -rf sdk/dotnet
pulumi package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR} $(PULUMI) package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR}
cd ${TMPDIR}/dotnet/ && \ cd ${TMPDIR}/dotnet/ && \
echo "$(VERSION_GENERIC)" > version.txt && \ echo "$(VERSION_GENERIC)" > version.txt && \
dotnet build dotnet build
@@ -235,9 +250,9 @@ sdk/dotnet: bin/${PROVIDER}
sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)") sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)")
sdk/java: TMPDIR := $(shell mktemp -d) sdk/java: TMPDIR := $(shell mktemp -d)
sdk/java: bin/${PROVIDER} sdk/java: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/java rm -rf sdk/java
pulumi package gen-sdk --language java bin/${PROVIDER} -o ${TMPDIR} $(PULUMI) package gen-sdk --language java bin/${PROVIDER} -o ${TMPDIR}
cd ${TMPDIR}/java/ && gradle --console=plain build cd ${TMPDIR}/java/ && gradle --console=plain build
mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/. mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/.

204
bin/pulumi-language-python-exec Executable file
View File

@@ -0,0 +1,204 @@
#!/usr/bin/env python
# Copyright 2016-2018, Pulumi Corporation. All rights reserved.
import argparse
import asyncio
from typing import Optional
import logging
import os
import sys
import traceback
import runpy
from concurrent.futures import ThreadPoolExecutor
# The user might not have installed Pulumi yet in their environment - provide a high-quality error message in that case.
try:
import pulumi
import pulumi.runtime
except ImportError:
# For whatever reason, sys.stderr.write is not picked up by the engine as a message, but 'print' is. The Python
# langhost automatically flushes stdout and stderr on shutdown, so we don't need to do it here - just trust that
# Python does the sane thing when printing to stderr.
print(traceback.format_exc(), file=sys.stderr)
print("""
It looks like the Pulumi SDK has not been installed. Have you run pip install?
If you are running in a virtualenv, you must run pip install -r requirements.txt from inside the virtualenv.""", file=sys.stderr)
sys.exit(1)
# use exit code 32 to signal to the language host that an error message was displayed to the user
PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE = 32
def get_abs_module_path(mod_path):
path, ext = os.path.splitext(mod_path)
if not ext:
path = os.path.join(path, '__main__')
return os.path.abspath(path)
def _get_user_stacktrace(user_program_abspath: str) -> str:
'''grabs the current stacktrace and truncates it to show the only stacks pertaining to a user's program'''
tb = traceback.extract_tb(sys.exc_info()[2])
for frame_index, frame in enumerate(tb):
# loop over stack frames until we reach the main program
# then return the traceback truncated to the user's code
cur_module = frame[0]
if get_abs_module_path(user_program_abspath) == get_abs_module_path(cur_module):
# we have detected the start of a user's stack trace
remaining_frames = len(tb)-frame_index
# include remaining frames from the bottom by negating
return traceback.format_exc(limit=-remaining_frames)
# we did not detect a __main__ program, return normal traceback
return traceback.format_exc()
def _set_default_executor(loop, parallelism: Optional[int]):
'''configure this event loop to respect the settings provided.'''
if parallelism is None:
return
parallelism = max(parallelism, 1)
exec = ThreadPoolExecutor(max_workers=parallelism)
loop.set_default_executor(exec)
if __name__ == "__main__":
# Parse the arguments, program name, and optional arguments.
ap = argparse.ArgumentParser(description='Execute a Pulumi Python program')
ap.add_argument('--project', help='Set the project name')
ap.add_argument('--stack', help='Set the stack name')
ap.add_argument('--parallel', help='Run P resource operations in parallel (default=none)')
ap.add_argument('--dry_run', help='Simulate resource changes, but without making them')
ap.add_argument('--pwd', help='Change the working directory before running the program')
ap.add_argument('--monitor', help='An RPC address for the resource monitor to connect to')
ap.add_argument('--engine', help='An RPC address for the engine to connect to')
ap.add_argument('--tracing', help='A Zipkin-compatible endpoint to send tracing data to')
ap.add_argument('--organization', help='Set the organization name')
ap.add_argument('PROGRAM', help='The Python program to run')
ap.add_argument('ARGS', help='Arguments to pass to the program', nargs='*')
args = ap.parse_args()
# If any config variables are present, parse and set them, so subsequent accesses are fast.
config_env = pulumi.runtime.get_config_env()
if hasattr(pulumi.runtime, "get_config_secret_keys_env") and hasattr(pulumi.runtime, "set_all_config"):
# If the pulumi SDK has `get_config_secret_keys_env` and `set_all_config`, use them
# to set the config and secret keys.
config_secret_keys_env = pulumi.runtime.get_config_secret_keys_env()
pulumi.runtime.set_all_config(config_env, config_secret_keys_env)
else:
# Otherwise, fallback to setting individual config values.
for k, v in config_env.items():
pulumi.runtime.set_config(k, v)
# Configure the runtime so that the user program hooks up to Pulumi as appropriate.
# New versions of pulumi python support setting organization, old versions do not
try:
settings = pulumi.runtime.Settings(
monitor=args.monitor,
engine=args.engine,
project=args.project,
stack=args.stack,
parallel=int(args.parallel),
dry_run=args.dry_run == "true",
organization=args.organization,
)
except TypeError:
settings = pulumi.runtime.Settings(
monitor=args.monitor,
engine=args.engine,
project=args.project,
stack=args.stack,
parallel=int(args.parallel),
dry_run=args.dry_run == "true"
)
pulumi.runtime.configure(settings)
# Finally, swap in the args, chdir if needed, and run the program as if it had been executed directly.
sys.argv = [args.PROGRAM] + args.ARGS
if args.pwd is not None:
os.chdir(args.pwd)
successful = False
try:
# The docs for get_running_loop are somewhat misleading because they state:
# This function can only be called from a coroutine or a callback. However, if the function is
# called from outside a coroutine or callback (the standard case when running `pulumi up`), the function
# raises a RuntimeError as expected and falls through to the exception clause below.
loop = asyncio.get_running_loop()
except RuntimeError:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
# Configure the event loop to respect the parallelism value provided as input.
_set_default_executor(loop, settings.parallel)
# We are (unfortunately) suppressing the log output of asyncio to avoid showing to users some of the bad things we
# do in our programming model.
#
# Fundamentally, Pulumi is a way for users to build asynchronous dataflow graphs that, as their deployments
# progress, resolve naturally and eventually result in the complete resolution of the graph. If one node in the
# graph fails (i.e. a resource fails to create, there's an exception in an apply, etc.), part of the graph remains
# unevaluated at the time that we exit.
#
# asyncio abhors this. It gets very upset if the process terminates without having observed every future that we
# have resolved. If we are terminating abnormally, it is highly likely that we are not going to observe every single
# future that we have created. Furthermore, it's *harmless* to do this - asyncio logs errors because it thinks it
# needs to tell users that they're doing bad things (which, to their credit, they are), but we are doing this
# deliberately.
#
# In order to paper over this for our users, we simply turn off the logger for asyncio. Users won't see any asyncio
# error messages, but if they stick to the Pulumi programming model, they wouldn't be seeing any anyway.
logging.getLogger("asyncio").setLevel(logging.CRITICAL)
exit_code = 1
try:
# record the location of the user's program to return user tracebacks
user_program_abspath = os.path.abspath(args.PROGRAM)
def run():
try:
runpy.run_path(args.PROGRAM, run_name='__main__')
except ImportError as e:
def fix_module_file(m: str) -> str:
# Work around python 11 reporting "<frozen runpy>" rather
# than runpy.__file__ in the traceback.
return runpy.__file__ if m == "<frozen runpy>" else m
# detect if the main pulumi python program does not exist
stack_modules = [fix_module_file(f.filename) for f in traceback.extract_tb(e.__traceback__)]
unique_modules = set(module for module in stack_modules)
last_module_name = stack_modules[-1]
# we identify a missing program error if
# 1. the only modules in the stack trace are
# - `pulumi-language-python-exec`
# - `runpy`
# 2. the last function in the stack trace is in the `runpy` module
if unique_modules == {
__file__, # the language runtime itself
runpy.__file__,
} and last_module_name == runpy.__file__ :
# this error will only be hit when the user provides a directory
# the engine has a check to determine if the `main` file exists and will fail early
# if a language runtime receives a directory, it's the language's responsibility to determine
# whether the provided directory has a pulumi program
pulumi.log.error(f"unable to find main python program `__main__.py` in `{user_program_abspath}`")
sys.exit(PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE)
else:
raise e
coro = pulumi.runtime.run_in_stack(run)
loop.run_until_complete(coro)
exit_code = 0
except pulumi.RunError as e:
pulumi.log.error(str(e))
except Exception:
error_msg = "Program failed with an unhandled exception:\n" + _get_user_stacktrace(user_program_abspath)
pulumi.log.error(error_msg)
exit_code = PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE
finally:
loop.close()
sys.stdout.flush()
sys.stderr.flush()
sys.exit(exit_code)

View File

@@ -6,7 +6,7 @@ toolchain go1.21.9
require ( require (
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7 github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7
github.com/pulumi/pulumi/sdk/v3 v3.128.0 github.com/pulumi/pulumi/sdk/v3 v3.136.1
) )
require ( require (
@@ -60,7 +60,7 @@ require (
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.9.1 // indirect github.com/pulumi/esc v0.10.0 // indirect
github.com/rivo/uniseg v0.4.4 // indirect github.com/rivo/uniseg v0.4.4 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
@@ -71,19 +71,18 @@ require (
github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/cobra v1.8.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/pflag v1.0.5 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/zclconf/go-cty v1.14.1 // indirect github.com/zclconf/go-cty v1.14.1 // indirect
go.uber.org/atomic v1.10.0 // indirect go.uber.org/atomic v1.10.0 // indirect
golang.org/x/crypto v0.24.0 // indirect golang.org/x/crypto v0.25.0 // indirect
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
golang.org/x/mod v0.18.0 // indirect golang.org/x/mod v0.18.0 // indirect
golang.org/x/net v0.26.0 // indirect golang.org/x/net v0.27.0 // indirect
golang.org/x/sync v0.7.0 // indirect golang.org/x/sync v0.7.0 // indirect
golang.org/x/sys v0.21.0 // indirect golang.org/x/sys v0.22.0 // indirect
golang.org/x/term v0.21.0 // indirect golang.org/x/term v0.22.0 // indirect
golang.org/x/text v0.16.0 // indirect golang.org/x/text v0.16.0 // indirect
golang.org/x/tools v0.22.0 // indirect golang.org/x/tools v0.22.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect

View File

@@ -150,12 +150,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7 h1:elp7Ar01zvIJtRQv+megjeGSfpxxzPYyKBGfDDtWFBA= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7 h1:elp7Ar01zvIJtRQv+megjeGSfpxxzPYyKBGfDDtWFBA=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7/go.mod h1:48lEA1mq2tRC4SfASAJmLYG1hRWM5sP5VPFeoZEM54U= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7/go.mod h1:48lEA1mq2tRC4SfASAJmLYG1hRWM5sP5VPFeoZEM54U=
github.com/pulumi/pulumi/sdk/v3 v3.128.0 h1:5VPFfygxt6rva0bEYVQZXxsGAo2/D1wsb9erGOtXxzk= github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI=
github.com/pulumi/pulumi/sdk/v3 v3.128.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
@@ -189,8 +189,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
@@ -211,8 +209,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM=
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
@@ -234,8 +232,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -263,15 +261,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk=
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=

View File

@@ -147,6 +147,18 @@ func TestCaching(t *testing.T) {
} }
} }
func TestConfig(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "tests", "config"),
Dependencies: []string{"@pulumi/docker-build"},
}
integration.ProgramTest(t, &test)
}
type ECR struct { type ECR struct {
address string address string
username string username string

View File

@@ -0,0 +1,3 @@
name: test-buildx-config
runtime: nodejs
description: A minimal TypeScript Pulumi program

View File

@@ -0,0 +1,5 @@
import * as buildx from "@pulumi/docker-build";
new buildx.Provider("with-structured-config", {
registries: [{ username: "foo", password: "bar", address: "docker.io" }],
});

View File

@@ -0,0 +1,9 @@
{
"name": "test-buildx-caching",
"devDependencies": {
"@types/node": "^20.0.0"
},
"dependencies": {
"@pulumi/pulumi": "^3.128.0"
}
}

433
go.mod
View File

@@ -1,104 +1,163 @@
module github.com/pulumi/pulumi-docker-build module github.com/pulumi/pulumi-docker-build
go 1.21.7 go 1.22.0
toolchain go1.22.6
require ( require (
github.com/aws/aws-sdk-go v1.54.18 github.com/aws/aws-sdk-go v1.55.5
github.com/blang/semver v3.5.1+incompatible github.com/blang/semver v3.5.1+incompatible
github.com/distribution/reference v0.6.0 github.com/distribution/reference v0.6.0
github.com/docker/buildx v0.16.0 github.com/docker/buildx v0.18.0
github.com/docker/cli v27.0.3+incompatible github.com/docker/cli v27.4.0-rc.2+incompatible
github.com/docker/docker v27.1.1+incompatible github.com/docker/docker v27.4.0-rc.2+incompatible
github.com/moby/buildkit v0.15.0 github.com/golangci/golangci-lint v1.59.1
github.com/moby/buildkit v0.18.1
github.com/moby/patternmatcher v0.6.0 github.com/moby/patternmatcher v0.6.0
github.com/muesli/reflow v0.3.0 github.com/muesli/reflow v0.3.0
github.com/otiai10/copy v1.14.0 github.com/otiai10/copy v1.14.0
github.com/pulumi/providertest v0.0.13 github.com/pulumi/providertest v0.1.3
github.com/pulumi/pulumi-go-provider v0.21.0 github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20241204093051-ef54328d7bfc
github.com/pulumi/pulumi-java/pkg v0.13.0 github.com/pulumi/pulumi-go-provider v0.23.0
github.com/pulumi/pulumi/pkg/v3 v3.128.0 github.com/pulumi/pulumi-java/pkg v0.18.0
github.com/pulumi/pulumi/sdk/v3 v3.128.0 github.com/pulumi/pulumi-yaml v1.12.0
github.com/pulumi/pulumi/pkg/v3 v3.142.0
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20241126145446-1837a707182a
github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20241126145446-1837a707182a
github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20241126145446-1837a707182a
github.com/pulumi/pulumi/sdk/v3 v3.142.0
github.com/regclient/regclient v0.7.1 github.com/regclient/regclient v0.7.1
github.com/sirupsen/logrus v1.9.3 github.com/sirupsen/logrus v1.9.3
github.com/spf13/afero v1.11.0 github.com/spf13/afero v1.11.0
github.com/stretchr/testify v1.9.0 github.com/stretchr/testify v1.9.0
github.com/theupdateframework/notary v0.7.0 github.com/theupdateframework/notary v0.7.0
github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c github.com/tonistiigi/fsutil v0.0.0-20241121093142-31cf1f437184
go.uber.org/mock v0.4.0 go.opentelemetry.io/otel/metric v1.29.0
golang.org/x/crypto v0.25.0 go.opentelemetry.io/otel/sdk v1.29.0
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 go.opentelemetry.io/otel/trace v1.29.0
google.golang.org/protobuf v1.34.2 go.uber.org/mock v0.5.0
golang.org/x/crypto v0.27.0
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0
google.golang.org/protobuf v1.35.1
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )
require ( require (
cloud.google.com/go v0.112.1 // indirect 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
cloud.google.com/go/compute v1.25.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go v0.115.1 // indirect
cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/auth v0.9.3 // indirect
cloud.google.com/go/kms v1.15.7 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
cloud.google.com/go/logging v1.9.0 // indirect cloud.google.com/go/compute/metadata v0.5.0 // indirect
cloud.google.com/go/longrunning v0.5.5 // indirect cloud.google.com/go/iam v1.2.0 // indirect
cloud.google.com/go/storage v1.39.1 // indirect cloud.google.com/go/kms v1.19.0 // indirect
dario.cat/mergo v1.0.0 // indirect cloud.google.com/go/logging v1.11.0 // indirect
cloud.google.com/go/longrunning v0.6.0 // indirect
cloud.google.com/go/storage v1.43.0 // indirect
dario.cat/mergo v1.0.1 // indirect
github.com/4meepo/tagalign v1.3.4 // indirect
github.com/Abirdcfly/dupword v0.0.14 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
github.com/Antonboom/errname v0.1.13 // indirect
github.com/Antonboom/nilnil v0.1.9 // indirect
github.com/Antonboom/testifylint v1.3.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect
github.com/Crocmagnon/fatcontext v0.2.2 // indirect
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
github.com/agext/levenshtein v1.2.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect
github.com/alecthomas/chroma v0.10.0 // indirect
github.com/alecthomas/chroma/v2 v2.13.0 // indirect
github.com/alecthomas/go-check-sumtype v0.1.4 // indirect
github.com/alexkohler/nakedret/v2 v2.0.4 // indirect
github.com/alexkohler/prealloc v1.0.0 // indirect
github.com/alingse/asasalint v0.0.11 // indirect
github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/ashanbrown/forbidigo v1.6.0 // indirect
github.com/ashanbrown/makezero v1.1.1 // indirect
github.com/atotto/clipboard v0.1.4 // indirect github.com/atotto/clipboard v0.1.4 // indirect
github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect github.com/aws/aws-sdk-go-v2 v1.30.5 // indirect
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.33 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.32 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.10 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect
github.com/aws/smithy-go v1.20.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 // indirect
github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 // indirect
github.com/aws/smithy-go v1.20.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/bkielbasa/cyclop v1.2.1 // indirect
github.com/blizzy78/varnamelen v0.8.0 // indirect
github.com/bombsimon/wsl/v4 v4.2.1 // indirect
github.com/breml/bidichk v0.2.7 // indirect
github.com/breml/errchkjson v0.3.6 // indirect
github.com/butuzov/ireturn v0.3.0 // indirect
github.com/butuzov/mirror v1.2.0 // indirect
github.com/catenacyber/perfsprint v0.7.1 // indirect
github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/bubbles v0.18.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect
github.com/charmbracelet/bubbletea v0.26.4 // indirect github.com/charmbracelet/bubbles v0.20.0 // indirect
github.com/charmbracelet/lipgloss v0.11.0 // indirect github.com/charmbracelet/bubbletea v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.1.2 // indirect github.com/charmbracelet/glamour v0.6.0 // indirect
github.com/charmbracelet/x/input v0.1.0 // indirect github.com/charmbracelet/lipgloss v0.13.0 // indirect
github.com/charmbracelet/x/term v0.1.1 // indirect github.com/charmbracelet/x/ansi v0.2.3 // indirect
github.com/charmbracelet/x/windows v0.1.0 // indirect github.com/charmbracelet/x/term v0.2.0 // indirect
github.com/chavacava/garif v0.1.0 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.8 // indirect github.com/ckaznocha/intrange v0.1.2 // indirect
github.com/compose-spec/compose-go/v2 v2.1.3 // indirect github.com/cloudflare/circl v1.4.0 // indirect
github.com/compose-spec/compose-go/v2 v2.4.1 // indirect
github.com/containerd/console v1.0.4 // indirect github.com/containerd/console v1.0.4 // indirect
github.com/containerd/containerd v1.7.19 // indirect github.com/containerd/containerd v1.7.24 // indirect
github.com/containerd/containerd/api v1.7.19 // indirect github.com/containerd/containerd/api v1.7.19 // indirect
github.com/containerd/continuity v0.4.3 // indirect github.com/containerd/continuity v0.4.5 // indirect
github.com/containerd/errdefs v0.1.0 // indirect github.com/containerd/errdefs v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect github.com/containerd/platforms v0.2.1 // indirect
github.com/containerd/ttrpc v1.2.5 // indirect github.com/containerd/ttrpc v1.2.5 // indirect
github.com/containerd/typeurl/v2 v2.1.1 // indirect github.com/containerd/typeurl/v2 v2.2.3 // indirect
github.com/cyphar/filepath-securejoin v0.2.5 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
github.com/curioswitch/go-reassign v0.2.0 // indirect
github.com/cyphar/filepath-securejoin v0.3.1 // indirect
github.com/daixiang0/gci v0.13.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set/v2 v2.5.0 // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect
github.com/denis-tingaikin/go-header v0.5.0 // indirect
github.com/djherbis/times v1.6.0 // indirect github.com/djherbis/times v1.6.0 // indirect
github.com/dlclark/regexp2 v1.11.0 // indirect
github.com/docker/cli-docs-tool v0.8.0 // indirect github.com/docker/cli-docs-tool v0.8.0 // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/docker-credential-helpers v0.8.2 // indirect
@@ -107,45 +166,77 @@ require (
github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-metrics v0.0.1 // indirect
github.com/docker/go-units v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/erikgeiser/promptkit v0.9.0 // indirect
github.com/ettle/strcase v0.2.0 // indirect
github.com/fatih/color v1.17.0 // indirect github.com/fatih/color v1.17.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/firefart/nonamedreturns v1.0.5 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/fvbommel/sortorder v1.1.0 // indirect github.com/fvbommel/sortorder v1.1.0 // indirect
github.com/fzipp/gocyclo v0.6.0 // indirect
github.com/ghostiam/protogetter v0.3.6 // indirect
github.com/go-critic/go-critic v0.11.4 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.3 // indirect github.com/go-jose/go-jose/v4 v4.0.4 // indirect
github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-toolsmith/astcast v1.1.0 // indirect
github.com/go-toolsmith/astcopy v1.1.0 // indirect
github.com/go-toolsmith/astequal v1.2.0 // indirect
github.com/go-toolsmith/astfmt v1.1.0 // indirect
github.com/go-toolsmith/astp v1.1.0 // indirect
github.com/go-toolsmith/strparse v1.1.0 // indirect
github.com/go-toolsmith/typep v1.1.0 // indirect
github.com/go-viper/mapstructure/v2 v2.0.0 // indirect github.com/go-viper/mapstructure/v2 v2.0.0 // indirect
github.com/gofrs/flock v0.12.0 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gobwas/glob v0.2.3 // indirect
github.com/gogo/googleapis v1.4.1 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
github.com/golang/glog v1.2.1 // indirect github.com/golang/glog v1.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect github.com/golang/protobuf v1.5.4 // indirect
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
github.com/golangci/misspell v0.6.0 // indirect
github.com/golangci/modinfo v0.3.4 // indirect
github.com/golangci/plugin-module-register v0.1.1 // indirect
github.com/golangci/revgrep v0.5.3 // indirect
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-cmp v0.6.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect github.com/google/gofuzz v1.2.0 // indirect
github.com/google/s2a-go v0.1.7 // indirect github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
github.com/google/s2a-go v0.1.8 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/google/wire v0.6.0 // indirect github.com/google/wire v0.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/googleapis/gax-go/v2 v2.13.0 // indirect
github.com/gorilla/mux v1.8.0 // indirect github.com/gordonklaus/ineffassign v0.1.0 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
github.com/gostaticanalysis/comment v1.4.2 // indirect
github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
github.com/gostaticanalysis/nilerr v0.1.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
@@ -156,27 +247,57 @@ require (
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-sockaddr v1.0.6 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/hcl/v2 v2.20.1 // indirect github.com/hashicorp/hcl/v2 v2.22.0 // indirect
github.com/hashicorp/vault/api v1.12.0 // indirect github.com/hashicorp/vault/api v1.14.0 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/iancoleman/strcase v0.3.0 // indirect
github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect
github.com/imdario/mergo v0.3.16 // indirect github.com/imdario/mergo v0.3.16 // indirect
github.com/in-toto/in-toto-golang v0.5.0 // indirect github.com/in-toto/in-toto-golang v0.5.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jgautheron/goconst v1.7.1 // indirect
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
github.com/jjti/go-spancheck v0.6.1 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jonboulle/clockwork v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect github.com/json-iterator/go v1.1.12 // indirect
github.com/julz/importas v0.1.0 // indirect
github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/klauspost/compress v1.17.9 // indirect github.com/kisielk/errcheck v1.7.0 // indirect
github.com/kkHAIKE/contextcheck v1.1.5 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/kulti/thelper v0.6.3 // indirect
github.com/kunwardeep/paralleltest v1.0.10 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect
github.com/kyoh86/exportloopref v0.1.11 // indirect
github.com/lasiar/canonicalheader v1.1.1 // indirect
github.com/ldez/gomoddirectives v0.2.4 // indirect
github.com/ldez/tagliatelle v0.5.0 // indirect
github.com/leonklingele/grouper v1.1.2 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/lufeee/execinquery v1.2.1 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/macabu/inamedparam v0.1.3 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mailru/easyjson v0.7.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect
github.com/maratori/testableexamples v1.0.0 // indirect
github.com/maratori/testpackage v1.1.1 // indirect
github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-shellwords v1.0.12 // indirect github.com/mattn/go-shellwords v1.0.12 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mgechev/revive v1.3.7 // indirect
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
github.com/miekg/pkcs11 v1.1.1 // indirect github.com/miekg/pkcs11 v1.1.1 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -187,115 +308,176 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/locker v1.0.1 // indirect github.com/moby/locker v1.0.1 // indirect
github.com/moby/moby v25.0.4+incompatible // indirect
github.com/moby/spdystream v0.2.0 // indirect github.com/moby/spdystream v0.2.0 // indirect
github.com/moby/sys/mountinfo v0.7.1 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/sequential v0.6.0 // indirect
github.com/moby/sys/signal v0.7.0 // indirect github.com/moby/sys/signal v0.7.1 // indirect
github.com/moby/sys/user v0.1.0 // indirect github.com/moby/sys/user v0.3.0 // indirect
github.com/moby/sys/userns v0.1.0 // indirect
github.com/moby/term v0.5.0 // indirect github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/moricho/tparallel v0.3.1 // indirect
github.com/morikuni/aec v1.0.0 // indirect github.com/morikuni/aec v1.0.0 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.15.2 // indirect github.com/muesli/termenv v0.15.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/nakabonne/nestif v0.3.1 // indirect
github.com/natefinch/atomic v1.0.1 // indirect github.com/natefinch/atomic v1.0.1 // indirect
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
github.com/nishanths/exhaustive v0.12.0 // indirect
github.com/nishanths/predeclared v0.2.2 // indirect
github.com/nunnatsa/ginkgolinter v0.16.2 // indirect
github.com/nxadm/tail v1.4.11 // indirect github.com/nxadm/tail v1.4.11 // indirect
github.com/onsi/ginkgo/v2 v2.17.3 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/onsi/gomega v1.33.1 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/petar-dambovaliev/aho-corasick v0.0.0-20230725210150-fb29fc3c913e // indirect
github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e // indirect
github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pgavlin/text v0.0.0-20240821195002-b51d0990e284 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.17.0 // indirect github.com/polyfloyd/go-errorlint v1.5.2 // indirect
github.com/prometheus/client_model v0.5.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/client_golang v1.20.2 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.9.1 // indirect github.com/pulumi/esc v0.10.0 // indirect
github.com/pulumi/inflector v0.1.1 // indirect github.com/pulumi/inflector v0.2.1 // indirect
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect
github.com/quasilyte/gogrep v0.5.0 // indirect
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/ryancurrah/gomodguard v1.3.2 // indirect
github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
github.com/sashamelentyev/usestdlibvars v1.26.0 // indirect
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
github.com/segmentio/asm v1.1.3 // indirect github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect
github.com/segmentio/encoding v0.3.5 // indirect github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/encoding v0.4.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
github.com/shibumi/go-pathspec v1.3.0 // indirect github.com/shibumi/go-pathspec v1.3.0 // indirect
github.com/skeema/knownhosts v1.2.2 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
github.com/sivchari/containedctx v1.0.3 // indirect
github.com/sivchari/tenv v1.7.1 // indirect
github.com/skeema/knownhosts v1.3.0 // indirect
github.com/sonatard/noctx v0.0.2 // indirect
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
github.com/sourcegraph/go-diff v0.7.0 // indirect
github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.12.0 // indirect github.com/spf13/viper v1.12.0 // indirect
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/subosito/gotenv v1.4.1 // indirect github.com/subosito/gotenv v1.4.1 // indirect
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
github.com/tdakkota/asciicheck v0.2.0 // indirect
github.com/tetafro/godot v1.4.16 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect
github.com/timonwong/loggercheck v0.9.4 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect
github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // indirect github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // indirect
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect
github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/ulikunitz/xz v0.5.12 // indirect github.com/ulikunitz/xz v0.5.12 // indirect
github.com/ultraware/funlen v0.1.0 // indirect
github.com/ultraware/whitespace v0.1.1 // indirect
github.com/uudashr/gocognit v1.1.2 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect
github.com/zclconf/go-cty v1.14.4 // indirect github.com/yagipy/maintidx v1.0.0 // indirect
github.com/yeya24/promlinter v0.3.0 // indirect
github.com/ykadowak/zerologlint v0.1.5 // indirect
github.com/yuin/goldmark v1.5.2 // indirect
github.com/yuin/goldmark-emoji v1.0.1 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
github.com/zclconf/go-cty v1.15.0 // indirect
gitlab.com/bosi/decorder v0.4.2 // indirect
go-simpler.org/musttag v0.12.2 // indirect
go-simpler.org/sloglint v0.7.1 // indirect
go.opencensus.io v0.24.0 // indirect go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.54.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect
go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect
go.opentelemetry.io/otel/sdk v1.22.0 // indirect go.pennock.tech/tabular v1.1.3 // indirect
go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
gocloud.dev v0.37.0 // indirect go.uber.org/automaxprocs v1.5.3 // indirect
gocloud.dev/secrets/hashivault v0.37.0 // indirect go.uber.org/multierr v1.11.0 // indirect
golang.org/x/mod v0.18.0 // indirect go.uber.org/zap v1.27.0 // indirect
golang.org/x/net v0.26.0 // indirect gocloud.dev v0.39.0 // indirect
golang.org/x/oauth2 v0.18.0 // indirect gocloud.dev/secrets/hashivault v0.39.0 // indirect
golang.org/x/sync v0.7.0 // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
golang.org/x/sys v0.24.0 // indirect golang.org/x/mod v0.21.0 // indirect
golang.org/x/term v0.22.0 // indirect golang.org/x/net v0.29.0 // indirect
golang.org/x/text v0.16.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect
golang.org/x/time v0.5.0 // indirect golang.org/x/sync v0.8.0 // indirect
golang.org/x/tools v0.22.0 // indirect golang.org/x/sys v0.26.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect golang.org/x/term v0.24.0 // indirect
google.golang.org/api v0.169.0 // indirect golang.org/x/text v0.18.0 // indirect
google.golang.org/appengine v1.6.8 // indirect golang.org/x/time v0.6.0 // indirect
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect golang.org/x/tools v0.25.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/api v0.196.0 // indirect
google.golang.org/grpc v1.64.1 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/grpc v1.67.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect
honnef.co/go/tools v0.4.7 // indirect
k8s.io/api v0.29.2 // indirect k8s.io/api v0.29.2 // indirect
k8s.io/apimachinery v0.29.2 // indirect k8s.io/apimachinery v0.29.2 // indirect
k8s.io/client-go v0.29.2 // indirect k8s.io/client-go v0.29.2 // indirect
@@ -304,6 +486,7 @@ require (
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
lukechampine.com/frand v1.4.2 // indirect lukechampine.com/frand v1.4.2 // indirect
mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/gofumpt v0.6.0 // indirect
mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect sigs.k8s.io/yaml v1.3.0 // indirect

1011
go.sum

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -689,8 +689,10 @@ func (c CacheTo) validate(preview bool) (*controllerapi.CacheOptionsEntry, error
type CacheMode string type CacheMode string
const ( const (
Min CacheMode = "min" // Min cache mode. // Min cache mode.
Max CacheMode = "max" // Max cache mode. Min CacheMode = "min"
// Max cache mode.
Max CacheMode = "max"
) )
// Values returns all valid CacheMode values for SDK generation. // Values returns all valid CacheMode values for SDK generation.
@@ -711,9 +713,12 @@ func (CacheMode) Values() []infer.EnumValue[CacheMode] {
type CompressionType string type CompressionType string
const ( const (
Gzip CompressionType = "gzip" // Gzip compression. // Gzip compression.
Estargz CompressionType = "estargz" // Estargz compression. Gzip CompressionType = "gzip"
Zstd CompressionType = "zstd" // Zstd compression. // Estargz compression.
Estargz CompressionType = "estargz"
// Zstd compression.
Zstd CompressionType = "zstd"
) )
// Values returns all valid CompressionType values for SDK generation. // Values returns all valid CompressionType values for SDK generation.

View File

@@ -141,6 +141,10 @@ func (c *cli) Err() *streams.Out {
return streams.NewOut(&c.err) return streams.NewOut(&c.err)
} }
func (c *cli) SupportsMultipleExports() bool {
return c.host.supportsMultipleExports
}
// rc returns a registry client with matching auth. // rc returns a registry client with matching auth.
func (c *cli) rc() *regclient.RegClient { func (c *cli) rc() *regclient.RegClient {
hosts := []config.Host{} hosts := []config.Host{}
@@ -329,8 +333,8 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) {
return nil, err return nil, err
} }
// We abuse the pb.Secret proto by stuffing the secret's value in // We abuse the pb.Secret proto by stuffing the secret's value in
// XXX_unrecognized. We never serialize this proto so this is tolerable. // Env. We never serialize this proto so this is tolerable.
env = append(env, fmt.Sprintf("%s=%s", envvar, s.XXX_unrecognized)) env = append(env, fmt.Sprintf("%s=%s", envvar, s.Env))
args = append(args, "--secret", fmt.Sprintf("id=%s,env=%s", s.ID, envvar)) args = append(args, "--secret", fmt.Sprintf("id=%s,env=%s", s.ID, envvar))
} }

View File

@@ -15,6 +15,7 @@
package internal package internal
import ( import (
"context"
"io" "io"
"testing" "testing"
@@ -27,7 +28,7 @@ import (
func TestExec(t *testing.T) { func TestExec(t *testing.T) {
t.Parallel() t.Parallel()
h, err := newHost(nil) h, err := newHost(context.Background(), nil)
require.NoError(t, err) require.NoError(t, err)
cli, err := wrap(h) cli, err := wrap(h)
require.NoError(t, err) require.NoError(t, err)
@@ -44,7 +45,7 @@ func TestWrappedAuth(t *testing.T) {
t.Parallel() t.Parallel()
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com" ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
realhost, err := newHost(nil) realhost, err := newHost(context.Background(), nil)
require.NoError(t, err) require.NoError(t, err)
h := &host{ h := &host{
@@ -102,7 +103,7 @@ func TestWrappedAuth(t *testing.T) {
assert.Len(t, h.auths, 2) // In-memory host auth is unchanged. assert.Len(t, h.auths, 2) // In-memory host auth is unchanged.
// Assert that our on-disk host's auth is untouched. // Assert that our on-disk host's auth is untouched.
realhostRefreshed, err := newHost(nil) realhostRefreshed, err := newHost(context.Background(), nil)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, realhost.auths, realhostRefreshed.auths) assert.Equal(t, realhost.auths, realhostRefreshed.auths)
} }

View File

@@ -22,13 +22,13 @@ import (
"errors" "errors"
"fmt" "fmt"
"os" "os"
"path/filepath"
"strings" "strings"
"github.com/distribution/reference" "github.com/distribution/reference"
buildx "github.com/docker/buildx/build" buildx "github.com/docker/buildx/build"
"github.com/docker/buildx/commands" "github.com/docker/buildx/commands"
controllerapi "github.com/docker/buildx/controller/pb" controllerapi "github.com/docker/buildx/controller/pb"
"github.com/docker/buildx/util/confutil"
"github.com/docker/buildx/util/dockerutil" "github.com/docker/buildx/util/dockerutil"
"github.com/docker/buildx/util/platformutil" "github.com/docker/buildx/util/platformutil"
"github.com/docker/buildx/util/progress" "github.com/docker/buildx/util/progress"
@@ -58,6 +58,8 @@ type Client interface {
ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error
ManifestInspect(ctx context.Context, target string) (string, error) ManifestInspect(ctx context.Context, target string) (string, error)
ManifestDelete(ctx context.Context, target string) error ManifestDelete(ctx context.Context, target string) error
SupportsMultipleExports() bool
} }
// Build encapsulates all of the user-provider build parameters and options. // Build encapsulates all of the user-provider build parameters and options.
@@ -88,8 +90,6 @@ func newDockerCLI(config *Config) (*command.DockerCli, error) {
return nil, err return nil, err
} }
// TODO: Log some version information for debugging.
return cli, nil return cli, nil
} }
@@ -197,7 +197,7 @@ func (c *cli) Build(
DockerfilePath: opts.DockerfileName, DockerfilePath: opts.DockerfileName,
DockerfileInline: build.Inline(), DockerfileInline: build.Inline(),
NamedContexts: namedContexts, NamedContexts: namedContexts,
InStream: strings.NewReader(""), InStream: buildx.NewSyncMultiReader(strings.NewReader("")),
}, },
// Disable default provenance for now. Docker's `manifest create` // Disable default provenance for now. Docker's `manifest create`
// doesn't handle manifests with provenance included; more reason // doesn't handle manifests with provenance included; more reason
@@ -230,7 +230,7 @@ func (c *cli) Build(
b.nodes, b.nodes,
payload, payload,
dockerutil.NewClient(c), dockerutil.NewClient(c),
filepath.Dir(c.ConfigFile().Filename), confutil.NewConfig(c),
printer, printer,
) )
if err != nil { if err != nil {

View File

@@ -55,7 +55,7 @@ func TestCustomHost(t *testing.T) {
t.Run("env", func(t *testing.T) { t.Run("env", func(t *testing.T) {
t.Setenv("DOCKER_HOST", socket) t.Setenv("DOCKER_HOST", socket)
h, err := newHost(nil) h, err := newHost(context.Background(), nil)
require.NoError(t, err) require.NoError(t, err)
cli, err := wrap(h) cli, err := wrap(h)
require.NoError(t, err) require.NoError(t, err)
@@ -66,7 +66,7 @@ func TestCustomHost(t *testing.T) {
t.Run("config", func(t *testing.T) { t.Run("config", func(t *testing.T) {
t.Parallel() t.Parallel()
h, err := newHost(&Config{Host: socket}) h, err := newHost(context.Background(), &Config{Host: socket})
require.NoError(t, err) require.NoError(t, err)
cli, err := wrap(h) cli, err := wrap(h)
require.NoError(t, err) require.NoError(t, err)
@@ -290,7 +290,7 @@ func TestBuild(t *testing.T) {
ctx := context.Background() ctx := context.Background()
cli := testcli(t, true, tt.auths...) cli := testcli(t, true, tt.auths...)
build, err := tt.args.toBuild(ctx, false) build, err := tt.args.toBuild(ctx, true, false)
require.NoError(t, err) require.NoError(t, err)
_, err = cli.Build(ctx, build) _, err = cli.Build(ctx, build)
@@ -383,7 +383,7 @@ func TestBuildError(t *testing.T) {
ctx := context.Background() ctx := context.Background()
cli := testcli(t, true) cli := testcli(t, true)
build, err := args.toBuild(ctx, false) build, err := args.toBuild(ctx, true, false)
require.NoError(t, err) require.NoError(t, err)
_, err = cli.Build(ctx, build) _, err = cli.Build(ctx, build)
@@ -418,7 +418,7 @@ func TestBuildExecError(t *testing.T) {
ctx := context.Background() ctx := context.Background()
cli := testcli(t, true) cli := testcli(t, true)
build, err := args.toBuild(ctx, false) build, err := args.toBuild(ctx, true, false)
require.NoError(t, err) require.NoError(t, err)
_, err = cli.Build(ctx, build) _, err = cli.Build(ctx, build)
@@ -438,7 +438,7 @@ func TestBuildExecError(t *testing.T) {
// testcli returns a new standalone CLI instance. Set ping to true if a live // testcli returns a new standalone CLI instance. Set ping to true if a live
// daemon is required -- the test will be skipped if the daemon is not available. // daemon is required -- the test will be skipped if the daemon is not available.
func testcli(t *testing.T, ping bool, auths ...Registry) *cli { func testcli(t *testing.T, ping bool, auths ...Registry) *cli {
h, err := newHost(nil) h, err := newHost(context.Background(), nil)
require.NoError(t, err) require.NoError(t, err)
cli, err := wrap(h, auths...) cli, err := wrap(h, auths...)

View File

@@ -15,6 +15,7 @@
package internal package internal
import ( import (
"bytes"
"errors" "errors"
"io" "io"
"os" "os"
@@ -96,13 +97,26 @@ func (d *Dockerfile) validate(preview bool, c *Context) error {
} }
func parseDockerfile(r io.Reader) error { func parseDockerfile(r io.Reader) error {
parsed, err := parser.Parse(r) df, _ := io.ReadAll(r)
syntax, _, _, _ := parser.DetectSyntax(df)
if syntax == "" {
syntax = os.Getenv("BUILDKIT_SYNTAX")
}
// Disable validation if this uses a custom syntax.
if syntax != "" && syntax != "docker/dockerfile:1" {
return nil
}
parsed, err := parser.Parse(bytes.NewReader(df))
if err != nil { if err != nil {
return newCheckFailure(err, "dockerfile") return newCheckFailure(err, "dockerfile")
} }
_, _, err = instructions.Parse(parsed.AST, nil) _, _, err = instructions.Parse(parsed.AST, nil)
if err != nil { if err != nil {
return err return newCheckFailure(err, "dockerfile")
} }
return nil return nil
} }

View File

@@ -57,12 +57,31 @@ func TestValidateDockerfile(t *testing.T) {
}, },
wantErr: "unknown instruction: RUNN", wantErr: "unknown instruction: RUNN",
}, },
{
name: "invalid syntax inline with default syntax directive",
d: Dockerfile{
Inline: `# syntax=docker/dockerfile:1
RUNN it`,
},
wantErr: "unknown instruction: RUNN",
},
{ {
name: "valid syntax inline", name: "valid syntax inline",
d: Dockerfile{ d: Dockerfile{
Inline: "FROM scratch", Inline: "FROM scratch",
}, },
}, },
{
name: "valid custom syntax inline",
d: Dockerfile{
Inline: `# syntax=docker.io/docker/dockerfile:1.7-labs
FROM public.ecr.aws/docker/library/node:22-alpine AS base
WORKDIR /app
COPY --parents ./package.json ./package-lock.json ./apps/*/package.json ./packages/*/package.json ./
`,
},
},
{ {
name: "unset", name: "unset",
d: Dockerfile{}, d: Dockerfile{},

View File

@@ -1214,7 +1214,7 @@ image = docker_build.Image("image",
context={ context={
"location": "app", "location": "app",
"named": { "named": {
"golang_latest": { "golang:latest": {
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984", "location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
}, },
}, },

View File

@@ -21,6 +21,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/blang/semver"
"github.com/docker/buildx/builder" "github.com/docker/buildx/builder"
"github.com/docker/buildx/store/storeutil" "github.com/docker/buildx/store/storeutil"
"github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command"
@@ -35,9 +36,12 @@ type host struct {
config *Config config *Config
builders map[string]*cachedBuilder builders map[string]*cachedBuilder
auths map[string]cfgtypes.AuthConfig auths map[string]cfgtypes.AuthConfig
// True if the buildkit daemon is at least v0.13.
supportsMultipleExports bool
} }
func newHost(config *Config) (*host, error) { func newHost(ctx context.Context, config *Config) (*host, error) {
docker, err := newDockerCLI(config) docker, err := newDockerCLI(config)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -47,11 +51,13 @@ func newHost(config *Config) (*host, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
h := &host{ h := &host{
cli: docker, cli: docker,
config: config, config: config,
builders: map[string]*cachedBuilder{}, builders: map[string]*cachedBuilder{},
auths: auths, auths: auths,
supportsMultipleExports: false, // Determined when we boot the builder.
} }
return h, err return h, err
} }
@@ -151,10 +157,22 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
// Attempt to load nodes in order to determine the builder's driver. Ignore // 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 // errors for "exec" builds because it's possible to request builders with
// drivers that are unknown to us. // drivers that are unknown to us.
nodes, err := b.LoadNodes(context.Background()) nodes, err := b.LoadNodes(context.Background(), builder.WithData())
if err != nil && !build.ShouldExec() { if err != nil && !build.ShouldExec() {
return nil, fmt.Errorf("loading nodes: %w", err) return nil, fmt.Errorf("loading nodes: %w", err)
} }
// Attempt to determine our builder's buildkit version.
for idx := range nodes {
if nodes[idx].Version == "" {
continue
}
v, err := semver.ParseTolerant(nodes[idx].Version)
if err != nil {
return nil, fmt.Errorf("parsing buildkit version %q: %w", nodes[idx].Version, err)
}
h.supportsMultipleExports = v.GE(semver.MustParse("0.13.0"))
break
}
cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes} cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes}
h.builders[opts.Builder] = cached h.builders[opts.Builder] = cached

View File

@@ -362,7 +362,12 @@ func (i *Image) Check(
// :( // :(
preview := news.ContainsUnknowns() preview := news.ContainsUnknowns()
if _, berr := args.validate(preview); berr != nil { cfg := infer.GetConfig[Config](ctx)
supportsMultipleExports := true
if cfg.host != nil {
supportsMultipleExports = cfg.host.supportsMultipleExports
}
if _, berr := args.validate(supportsMultipleExports, preview); berr != nil {
errs := berr.(interface{ Unwrap() []error }).Unwrap() errs := berr.(interface{ Unwrap() []error }).Unwrap()
for _, e := range errs { for _, e := range errs {
if cf, ok := e.(checkFailure); ok { if cf, ok := e.(checkFailure); ok {
@@ -466,15 +471,15 @@ type build struct {
exec bool exec bool
} }
func (b build) BuildOptions() controllerapi.BuildOptions { func (b *build) BuildOptions() controllerapi.BuildOptions {
return b.opts return b.opts //nolint:govet // copylocks - not serialized.
} }
func (b build) Inline() string { func (b *build) Inline() string {
return b.inline return b.inline
} }
func (b build) Secrets() session.Attachable { func (b *build) Secrets() session.Attachable {
m := map[string][]byte{} m := map[string][]byte{}
for k, v := range b.secrets { for k, v := range b.secrets {
m[k] = []byte(v) m[k] = []byte(v)
@@ -482,15 +487,16 @@ func (b build) Secrets() session.Attachable {
return secretsprovider.FromMap(m) return secretsprovider.FromMap(m)
} }
func (b build) ShouldExec() bool { func (b *build) ShouldExec() bool {
return b.exec return b.exec
} }
func (ia ImageArgs) toBuild( func (ia ImageArgs) toBuild(
ctx context.Context, ctx context.Context,
supportsMultipleExports bool,
preview bool, preview bool,
) (Build, error) { ) (Build, error) {
opts, err := ia.validate(preview) opts, err := ia.validate(supportsMultipleExports, preview)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -507,8 +513,8 @@ func (ia ImageArgs) toBuild(
"Instead, perform one cached build per platform and create an Index to join them all together.") "Instead, perform one cached build per platform and create an Index to join them all together.")
} }
return build{ return &build{
opts: opts, opts: opts, //nolint:govet // copylocks - not serialized.
inline: ia.Dockerfile.Inline, inline: ia.Dockerfile.Inline,
secrets: ia.Secrets, secrets: ia.Secrets,
exec: ia.Exec, exec: ia.Exec,
@@ -517,27 +523,29 @@ func (ia ImageArgs) toBuild(
// validate confirms the ImageArgs are valid and returns BuildOptions // validate confirms the ImageArgs are valid and returns BuildOptions
// appropriate for passing to builders. // appropriate for passing to builders.
func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error) { func (ia *ImageArgs) validate(supportsMultipleExports, preview bool) (controllerapi.BuildOptions, error) {
var multierr error var multierr error
if len(ia.Exports) > 1 { if !supportsMultipleExports {
multierr = errors.Join(multierr, if len(ia.Exports) > 1 {
newCheckFailure(errors.New("multiple exports are currently unsupported"), "exports"), multierr = errors.Join(multierr,
) newCheckFailure(errors.New("multiple exports require a v0.13 buildkit daemon or newer"), "exports"),
} )
if ia.Push && ia.Load { }
multierr = errors.Join( if ia.Push && ia.Load {
multierr, multierr = errors.Join(
newCheckFailure( multierr,
errors.New("push and load may not be set together at the moment"), newCheckFailure(
"push", errors.New("simultaneous push and load requires a v0.13 buildkit daemon or newer"),
), "push",
) ),
} )
if len(ia.Exports) > 0 && (ia.Push || ia.Load) { }
multierr = errors.Join(multierr, if len(ia.Exports) > 0 && (ia.Push || ia.Load) {
newCheckFailure(errors.New("exports can't be provided with push or load"), "exports"), multierr = errors.Join(multierr,
) newCheckFailure(errors.New("multiple exports require a v0.13 buildkit daemon or newer"), "exports"),
)
}
} }
dockerfile, context, err := ia.Context.validate(preview, ia.Dockerfile) dockerfile, context, err := ia.Context.validate(preview, ia.Dockerfile)
@@ -626,10 +634,10 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
secrets := []*controllerapi.Secret{} secrets := []*controllerapi.Secret{}
for k, v := range normalized.Secrets { for k, v := range normalized.Secrets {
// We abuse the pb.Secret proto by stuffing the secret's value in // We abuse the pb.Secret proto by stuffing the secret's value in
// XXX_unrecognized. We never serialize this proto so this is tolerable. // Env. We never serialize this proto so this is tolerable.
secrets = append(secrets, &controllerapi.Secret{ secrets = append(secrets, &controllerapi.Secret{
ID: k, ID: k,
XXX_unrecognized: []byte(v), Env: v,
}) })
} }
@@ -659,7 +667,7 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
Target: normalized.Target, Target: normalized.Target,
} }
return opts, multierr return opts, multierr //nolint:govet // copylocks - not serialized.
} }
// Create builds an image using buildkit. // Create builds an image using buildkit.
@@ -694,7 +702,7 @@ func (i *Image) Create(
return id, state, errors.New("buildkit is not supported on this host") return id, state, errors.New("buildkit is not supported on this host")
} }
build, err := input.toBuild(ctx, preview) build, err := input.toBuild(ctx, cli.SupportsMultipleExports(), preview)
if err != nil { if err != nil {
return id, state, fmt.Errorf("preparing: %w", err) return id, state, fmt.Errorf("preparing: %w", err)
} }

View File

@@ -64,7 +64,8 @@ func TestImageLifecycle(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
c := NewMockClient(ctrl) c := NewMockClient(ctrl)
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes() c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn( c.EXPECT().SupportsMultipleExports().Return(true).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(&build{})).DoAndReturn(
func(_ context.Context, b Build) (*client.SolveResponse, error) { func(_ context.Context, b Build) (*client.SolveResponse, error) {
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName) assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
return &client.SolveResponse{ return &client.SolveResponse{
@@ -238,7 +239,8 @@ func TestImageLifecycle(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
c := NewMockClient(ctrl) c := NewMockClient(ctrl)
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes() c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn( c.EXPECT().SupportsMultipleExports().Return(true).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(&build{})).DoAndReturn(
func(_ context.Context, b Build) (*client.SolveResponse, error) { func(_ context.Context, b Build) (*client.SolveResponse, error) {
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName) assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
return &client.SolveResponse{ return &client.SolveResponse{
@@ -279,7 +281,8 @@ func TestImageLifecycle(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
c := NewMockClient(ctrl) c := NewMockClient(ctrl)
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes() c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn( c.EXPECT().SupportsMultipleExports().Return(true).AnyTimes()
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(&build{})).DoAndReturn(
func(_ context.Context, b Build) (*client.SolveResponse, error) { func(_ context.Context, b Build) (*client.SolveResponse, error) {
assert.Equal(t, "FROM alpine:latest", b.Inline()) assert.Equal(t, "FROM alpine:latest", b.Inline())
return &client.SolveResponse{ return &client.SolveResponse{
@@ -829,7 +832,7 @@ func TestValidateImageArgs(t *testing.T) {
CacheTo: []CacheTo{{Raw: "=badcacheto"}}, CacheTo: []CacheTo{{Raw: "=badcacheto"}},
} }
_, err := args.validate(false) _, err := args.validate(true, false)
assert.ErrorContains(t, err, "invalid value badexport") assert.ErrorContains(t, err, "invalid value badexport")
assert.ErrorContains(t, err, "OSAndVersion specifier component must matc") assert.ErrorContains(t, err, "OSAndVersion specifier component must matc")
assert.ErrorContains(t, err, "badcachefrom") assert.ErrorContains(t, err, "badcachefrom")
@@ -845,12 +848,12 @@ func TestValidateImageArgs(t *testing.T) {
Tags: []string{"my-tag"}, Tags: []string{"my-tag"},
Exports: []Export{{Registry: &ExportRegistry{ExportImage{Push: pulumi.BoolRef(true)}}}}, Exports: []Export{{Registry: &ExportRegistry{ExportImage{Push: pulumi.BoolRef(true)}}}},
} }
actual, err := args.validate(true) actual, err := args.validate(true, true)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "image", actual.Exports[0].Type) assert.Equal(t, "image", actual.Exports[0].Type)
assert.Equal(t, "false", actual.Exports[0].Attrs["push"]) assert.Equal(t, "false", actual.Exports[0].Attrs["push"])
actual, err = args.validate(false) actual, err = args.validate(true, false)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "image", actual.Exports[0].Type) assert.Equal(t, "image", actual.Exports[0].Type)
assert.Equal(t, "true", actual.Exports[0].Attrs["push"]) assert.Equal(t, "true", actual.Exports[0].Attrs["push"])
@@ -886,11 +889,11 @@ func TestValidateImageArgs(t *testing.T) {
Tags: []string{"known", ""}, Tags: []string{"known", ""},
} }
_, err := unknowns.validate(true) _, err := unknowns.validate(true, true)
assert.NoError(t, err) assert.NoError(t, err)
assert.False(t, unknowns.buildable()) assert.False(t, unknowns.buildable())
_, err = unknowns.validate(false) _, err = unknowns.validate(true, false)
assert.Error(t, err) assert.Error(t, err)
}) })
@@ -903,26 +906,26 @@ func TestValidateImageArgs(t *testing.T) {
Exports: []Export{{Raw: "type=registry", Disabled: true}}, Exports: []Export{{Raw: "type=registry", Disabled: true}},
} }
opts, err := args.validate(true) opts, err := args.validate(true, true)
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, opts.CacheTo, 0) assert.Len(t, opts.CacheTo, 0)
assert.Len(t, opts.CacheFrom, 0) assert.Len(t, opts.CacheFrom, 0)
assert.Len(t, opts.Exports, 0) assert.Len(t, opts.Exports, 0)
opts, err = args.validate(false) opts, err = args.validate(true, false)
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, opts.CacheTo, 0) assert.Len(t, opts.CacheTo, 0)
assert.Len(t, opts.CacheFrom, 0) assert.Len(t, opts.CacheFrom, 0)
assert.Len(t, opts.Exports, 0) assert.Len(t, opts.Exports, 0)
}) })
t.Run("multiple exports aren't allowed yet", func(t *testing.T) { t.Run("multiple exports pre-0.13", func(t *testing.T) {
t.Parallel() t.Parallel()
args := ImageArgs{ args := ImageArgs{
Exports: []Export{{Raw: "type=local"}, {Raw: "type=tar"}}, Exports: []Export{{Raw: "type=local"}, {Raw: "type=tar"}},
} }
_, err := args.validate(false) _, err := args.validate(false, false)
assert.ErrorContains(t, err, "multiple exports are currently unsupported") assert.ErrorContains(t, err, "multiple exports require a v0.13 buildkit daemon or newer")
}) })
t.Run("cache and export entries are union-ish", func(t *testing.T) { t.Run("cache and export entries are union-ish", func(t *testing.T) {
@@ -932,7 +935,7 @@ func TestValidateImageArgs(t *testing.T) {
CacheTo: []CacheTo{{Raw: "type=tar", Local: &CacheToLocal{Dest: "/foo"}}}, CacheTo: []CacheTo{{Raw: "type=tar", Local: &CacheToLocal{Dest: "/foo"}}},
CacheFrom: []CacheFrom{{Raw: "type=tar", Registry: &CacheFromRegistry{}}}, CacheFrom: []CacheFrom{{Raw: "type=tar", Registry: &CacheFromRegistry{}}},
} }
_, err := args.validate(false) _, err := args.validate(true, false)
assert.ErrorContains(t, err, "exports should only specify one export type") assert.ErrorContains(t, err, "exports should only specify one export type")
assert.ErrorContains(t, err, "cacheFrom should only specify one cache type") assert.ErrorContains(t, err, "cacheFrom should only specify one cache type")
assert.ErrorContains(t, err, "cacheTo should only specify one cache type") assert.ErrorContains(t, err, "cacheTo should only specify one cache type")
@@ -949,7 +952,7 @@ func TestValidateImageArgs(t *testing.T) {
} { } {
d := d d := d
args := ImageArgs{Dockerfile: &d} args := ImageArgs{Dockerfile: &d}
_, err := args.validate(false) _, err := args.validate(true, false)
assert.ErrorContains(t, err, "unknown instruction: RUNN (did you mean RUN?)") assert.ErrorContains(t, err, "unknown instruction: RUNN (did you mean RUN?)")
} }
}) })
@@ -1061,6 +1064,6 @@ func TestToBuild(t *testing.T) {
}, },
} }
_, err := ia.toBuild(context.Background(), false) _, err := ia.toBuild(context.Background(), true, false)
assert.NoError(t, err) assert.NoError(t, err)
} }

View File

@@ -5,11 +5,11 @@
// //
// mockgen -typed -package internal -source cli.go -destination mockcli_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal // mockgen -typed -package internal -source cli.go -destination mockcli_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
// //
// Package internal is a generated GoMock package. // Package internal is a generated GoMock package.
package internal package internal
import ( import (
io "io"
reflect "reflect" reflect "reflect"
command "github.com/docker/cli/cli/command" command "github.com/docker/cli/cli/command"
@@ -22,6 +22,9 @@ import (
trust "github.com/docker/cli/cli/trust" trust "github.com/docker/cli/cli/trust"
client0 "github.com/docker/docker/client" client0 "github.com/docker/docker/client"
client1 "github.com/theupdateframework/notary/client" client1 "github.com/theupdateframework/notary/client"
metric "go.opentelemetry.io/otel/metric"
resource "go.opentelemetry.io/otel/sdk/resource"
trace "go.opentelemetry.io/otel/trace"
gomock "go.uber.org/mock/gomock" gomock "go.uber.org/mock/gomock"
) )
@@ -29,6 +32,7 @@ import (
type MockCli struct { type MockCli struct {
ctrl *gomock.Controller ctrl *gomock.Controller
recorder *MockCliMockRecorder recorder *MockCliMockRecorder
isgomock struct{}
} }
// MockCliMockRecorder is the mock recorder for MockCli. // MockCliMockRecorder is the mock recorder for MockCli.
@@ -61,31 +65,31 @@ func (m *MockCli) Apply(ops ...command.CLIOption) error {
} }
// Apply indicates an expected call of Apply. // Apply indicates an expected call of Apply.
func (mr *MockCliMockRecorder) Apply(ops ...any) *CliApplyCall { func (mr *MockCliMockRecorder) Apply(ops ...any) *MockCliApplyCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Apply", reflect.TypeOf((*MockCli)(nil).Apply), ops...) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Apply", reflect.TypeOf((*MockCli)(nil).Apply), ops...)
return &CliApplyCall{Call: call} return &MockCliApplyCall{Call: call}
} }
// CliApplyCall wrap *gomock.Call // MockCliApplyCall wrap *gomock.Call
type CliApplyCall struct { type MockCliApplyCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliApplyCall) Return(arg0 error) *CliApplyCall { func (c *MockCliApplyCall) Return(arg0 error) *MockCliApplyCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliApplyCall) Do(f func(...command.CLIOption) error) *CliApplyCall { func (c *MockCliApplyCall) Do(f func(...command.CLIOption) error) *MockCliApplyCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliApplyCall) DoAndReturn(f func(...command.CLIOption) error) *CliApplyCall { func (c *MockCliApplyCall) DoAndReturn(f func(...command.CLIOption) error) *MockCliApplyCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -100,31 +104,31 @@ func (m *MockCli) BuildKitEnabled() (bool, error) {
} }
// BuildKitEnabled indicates an expected call of BuildKitEnabled. // BuildKitEnabled indicates an expected call of BuildKitEnabled.
func (mr *MockCliMockRecorder) BuildKitEnabled() *CliBuildKitEnabledCall { func (mr *MockCliMockRecorder) BuildKitEnabled() *MockCliBuildKitEnabledCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildKitEnabled", reflect.TypeOf((*MockCli)(nil).BuildKitEnabled)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildKitEnabled", reflect.TypeOf((*MockCli)(nil).BuildKitEnabled))
return &CliBuildKitEnabledCall{Call: call} return &MockCliBuildKitEnabledCall{Call: call}
} }
// CliBuildKitEnabledCall wrap *gomock.Call // MockCliBuildKitEnabledCall wrap *gomock.Call
type CliBuildKitEnabledCall struct { type MockCliBuildKitEnabledCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliBuildKitEnabledCall) Return(arg0 bool, arg1 error) *CliBuildKitEnabledCall { func (c *MockCliBuildKitEnabledCall) Return(arg0 bool, arg1 error) *MockCliBuildKitEnabledCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliBuildKitEnabledCall) Do(f func() (bool, error)) *CliBuildKitEnabledCall { func (c *MockCliBuildKitEnabledCall) Do(f func() (bool, error)) *MockCliBuildKitEnabledCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliBuildKitEnabledCall) DoAndReturn(f func() (bool, error)) *CliBuildKitEnabledCall { func (c *MockCliBuildKitEnabledCall) DoAndReturn(f func() (bool, error)) *MockCliBuildKitEnabledCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -138,31 +142,31 @@ func (m *MockCli) Client() client0.APIClient {
} }
// Client indicates an expected call of Client. // Client indicates an expected call of Client.
func (mr *MockCliMockRecorder) Client() *CliClientCall { func (mr *MockCliMockRecorder) Client() *MockCliClientCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Client", reflect.TypeOf((*MockCli)(nil).Client)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Client", reflect.TypeOf((*MockCli)(nil).Client))
return &CliClientCall{Call: call} return &MockCliClientCall{Call: call}
} }
// CliClientCall wrap *gomock.Call // MockCliClientCall wrap *gomock.Call
type CliClientCall struct { type MockCliClientCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliClientCall) Return(arg0 client0.APIClient) *CliClientCall { func (c *MockCliClientCall) Return(arg0 client0.APIClient) *MockCliClientCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliClientCall) Do(f func() client0.APIClient) *CliClientCall { func (c *MockCliClientCall) Do(f func() client0.APIClient) *MockCliClientCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliClientCall) DoAndReturn(f func() client0.APIClient) *CliClientCall { func (c *MockCliClientCall) DoAndReturn(f func() client0.APIClient) *MockCliClientCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -176,31 +180,31 @@ func (m *MockCli) ConfigFile() *configfile.ConfigFile {
} }
// ConfigFile indicates an expected call of ConfigFile. // ConfigFile indicates an expected call of ConfigFile.
func (mr *MockCliMockRecorder) ConfigFile() *CliConfigFileCall { func (mr *MockCliMockRecorder) ConfigFile() *MockCliConfigFileCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigFile", reflect.TypeOf((*MockCli)(nil).ConfigFile)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigFile", reflect.TypeOf((*MockCli)(nil).ConfigFile))
return &CliConfigFileCall{Call: call} return &MockCliConfigFileCall{Call: call}
} }
// CliConfigFileCall wrap *gomock.Call // MockCliConfigFileCall wrap *gomock.Call
type CliConfigFileCall struct { type MockCliConfigFileCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliConfigFileCall) Return(arg0 *configfile.ConfigFile) *CliConfigFileCall { func (c *MockCliConfigFileCall) Return(arg0 *configfile.ConfigFile) *MockCliConfigFileCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliConfigFileCall) Do(f func() *configfile.ConfigFile) *CliConfigFileCall { func (c *MockCliConfigFileCall) Do(f func() *configfile.ConfigFile) *MockCliConfigFileCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliConfigFileCall) DoAndReturn(f func() *configfile.ConfigFile) *CliConfigFileCall { func (c *MockCliConfigFileCall) DoAndReturn(f func() *configfile.ConfigFile) *MockCliConfigFileCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -214,31 +218,31 @@ func (m *MockCli) ContentTrustEnabled() bool {
} }
// ContentTrustEnabled indicates an expected call of ContentTrustEnabled. // ContentTrustEnabled indicates an expected call of ContentTrustEnabled.
func (mr *MockCliMockRecorder) ContentTrustEnabled() *CliContentTrustEnabledCall { func (mr *MockCliMockRecorder) ContentTrustEnabled() *MockCliContentTrustEnabledCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContentTrustEnabled", reflect.TypeOf((*MockCli)(nil).ContentTrustEnabled)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContentTrustEnabled", reflect.TypeOf((*MockCli)(nil).ContentTrustEnabled))
return &CliContentTrustEnabledCall{Call: call} return &MockCliContentTrustEnabledCall{Call: call}
} }
// CliContentTrustEnabledCall wrap *gomock.Call // MockCliContentTrustEnabledCall wrap *gomock.Call
type CliContentTrustEnabledCall struct { type MockCliContentTrustEnabledCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliContentTrustEnabledCall) Return(arg0 bool) *CliContentTrustEnabledCall { func (c *MockCliContentTrustEnabledCall) Return(arg0 bool) *MockCliContentTrustEnabledCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliContentTrustEnabledCall) Do(f func() bool) *CliContentTrustEnabledCall { func (c *MockCliContentTrustEnabledCall) Do(f func() bool) *MockCliContentTrustEnabledCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliContentTrustEnabledCall) DoAndReturn(f func() bool) *CliContentTrustEnabledCall { func (c *MockCliContentTrustEnabledCall) DoAndReturn(f func() bool) *MockCliContentTrustEnabledCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -252,31 +256,31 @@ func (m *MockCli) ContextStore() store.Store {
} }
// ContextStore indicates an expected call of ContextStore. // ContextStore indicates an expected call of ContextStore.
func (mr *MockCliMockRecorder) ContextStore() *CliContextStoreCall { func (mr *MockCliMockRecorder) ContextStore() *MockCliContextStoreCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContextStore", reflect.TypeOf((*MockCli)(nil).ContextStore)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContextStore", reflect.TypeOf((*MockCli)(nil).ContextStore))
return &CliContextStoreCall{Call: call} return &MockCliContextStoreCall{Call: call}
} }
// CliContextStoreCall wrap *gomock.Call // MockCliContextStoreCall wrap *gomock.Call
type CliContextStoreCall struct { type MockCliContextStoreCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliContextStoreCall) Return(arg0 store.Store) *CliContextStoreCall { func (c *MockCliContextStoreCall) Return(arg0 store.Store) *MockCliContextStoreCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliContextStoreCall) Do(f func() store.Store) *CliContextStoreCall { func (c *MockCliContextStoreCall) Do(f func() store.Store) *MockCliContextStoreCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliContextStoreCall) DoAndReturn(f func() store.Store) *CliContextStoreCall { func (c *MockCliContextStoreCall) DoAndReturn(f func() store.Store) *MockCliContextStoreCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -290,31 +294,31 @@ func (m *MockCli) CurrentContext() string {
} }
// CurrentContext indicates an expected call of CurrentContext. // CurrentContext indicates an expected call of CurrentContext.
func (mr *MockCliMockRecorder) CurrentContext() *CliCurrentContextCall { func (mr *MockCliMockRecorder) CurrentContext() *MockCliCurrentContextCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentContext", reflect.TypeOf((*MockCli)(nil).CurrentContext)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentContext", reflect.TypeOf((*MockCli)(nil).CurrentContext))
return &CliCurrentContextCall{Call: call} return &MockCliCurrentContextCall{Call: call}
} }
// CliCurrentContextCall wrap *gomock.Call // MockCliCurrentContextCall wrap *gomock.Call
type CliCurrentContextCall struct { type MockCliCurrentContextCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliCurrentContextCall) Return(arg0 string) *CliCurrentContextCall { func (c *MockCliCurrentContextCall) Return(arg0 string) *MockCliCurrentContextCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliCurrentContextCall) Do(f func() string) *CliCurrentContextCall { func (c *MockCliCurrentContextCall) Do(f func() string) *MockCliCurrentContextCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliCurrentContextCall) DoAndReturn(f func() string) *CliCurrentContextCall { func (c *MockCliCurrentContextCall) DoAndReturn(f func() string) *MockCliCurrentContextCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -328,31 +332,31 @@ func (m *MockCli) CurrentVersion() string {
} }
// CurrentVersion indicates an expected call of CurrentVersion. // CurrentVersion indicates an expected call of CurrentVersion.
func (mr *MockCliMockRecorder) CurrentVersion() *CliCurrentVersionCall { func (mr *MockCliMockRecorder) CurrentVersion() *MockCliCurrentVersionCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentVersion", reflect.TypeOf((*MockCli)(nil).CurrentVersion)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentVersion", reflect.TypeOf((*MockCli)(nil).CurrentVersion))
return &CliCurrentVersionCall{Call: call} return &MockCliCurrentVersionCall{Call: call}
} }
// CliCurrentVersionCall wrap *gomock.Call // MockCliCurrentVersionCall wrap *gomock.Call
type CliCurrentVersionCall struct { type MockCliCurrentVersionCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliCurrentVersionCall) Return(arg0 string) *CliCurrentVersionCall { func (c *MockCliCurrentVersionCall) Return(arg0 string) *MockCliCurrentVersionCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliCurrentVersionCall) Do(f func() string) *CliCurrentVersionCall { func (c *MockCliCurrentVersionCall) Do(f func() string) *MockCliCurrentVersionCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliCurrentVersionCall) DoAndReturn(f func() string) *CliCurrentVersionCall { func (c *MockCliCurrentVersionCall) DoAndReturn(f func() string) *MockCliCurrentVersionCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -366,31 +370,31 @@ func (m *MockCli) DefaultVersion() string {
} }
// DefaultVersion indicates an expected call of DefaultVersion. // DefaultVersion indicates an expected call of DefaultVersion.
func (mr *MockCliMockRecorder) DefaultVersion() *CliDefaultVersionCall { func (mr *MockCliMockRecorder) DefaultVersion() *MockCliDefaultVersionCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DefaultVersion", reflect.TypeOf((*MockCli)(nil).DefaultVersion)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DefaultVersion", reflect.TypeOf((*MockCli)(nil).DefaultVersion))
return &CliDefaultVersionCall{Call: call} return &MockCliDefaultVersionCall{Call: call}
} }
// CliDefaultVersionCall wrap *gomock.Call // MockCliDefaultVersionCall wrap *gomock.Call
type CliDefaultVersionCall struct { type MockCliDefaultVersionCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliDefaultVersionCall) Return(arg0 string) *CliDefaultVersionCall { func (c *MockCliDefaultVersionCall) Return(arg0 string) *MockCliDefaultVersionCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliDefaultVersionCall) Do(f func() string) *CliDefaultVersionCall { func (c *MockCliDefaultVersionCall) Do(f func() string) *MockCliDefaultVersionCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliDefaultVersionCall) DoAndReturn(f func() string) *CliDefaultVersionCall { func (c *MockCliDefaultVersionCall) DoAndReturn(f func() string) *MockCliDefaultVersionCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -404,69 +408,69 @@ func (m *MockCli) DockerEndpoint() docker.Endpoint {
} }
// DockerEndpoint indicates an expected call of DockerEndpoint. // DockerEndpoint indicates an expected call of DockerEndpoint.
func (mr *MockCliMockRecorder) DockerEndpoint() *CliDockerEndpointCall { func (mr *MockCliMockRecorder) DockerEndpoint() *MockCliDockerEndpointCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DockerEndpoint", reflect.TypeOf((*MockCli)(nil).DockerEndpoint)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DockerEndpoint", reflect.TypeOf((*MockCli)(nil).DockerEndpoint))
return &CliDockerEndpointCall{Call: call} return &MockCliDockerEndpointCall{Call: call}
} }
// CliDockerEndpointCall wrap *gomock.Call // MockCliDockerEndpointCall wrap *gomock.Call
type CliDockerEndpointCall struct { type MockCliDockerEndpointCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliDockerEndpointCall) Return(arg0 docker.Endpoint) *CliDockerEndpointCall { func (c *MockCliDockerEndpointCall) Return(arg0 docker.Endpoint) *MockCliDockerEndpointCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliDockerEndpointCall) Do(f func() docker.Endpoint) *CliDockerEndpointCall { func (c *MockCliDockerEndpointCall) Do(f func() docker.Endpoint) *MockCliDockerEndpointCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliDockerEndpointCall) DoAndReturn(f func() docker.Endpoint) *CliDockerEndpointCall { func (c *MockCliDockerEndpointCall) DoAndReturn(f func() docker.Endpoint) *MockCliDockerEndpointCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
// Err mocks base method. // Err mocks base method.
func (m *MockCli) Err() io.Writer { func (m *MockCli) Err() *streams.Out {
m.ctrl.T.Helper() m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Err") ret := m.ctrl.Call(m, "Err")
ret0, _ := ret[0].(io.Writer) ret0, _ := ret[0].(*streams.Out)
return ret0 return ret0
} }
// Err indicates an expected call of Err. // Err indicates an expected call of Err.
func (mr *MockCliMockRecorder) Err() *CliErrCall { func (mr *MockCliMockRecorder) Err() *MockCliErrCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Err", reflect.TypeOf((*MockCli)(nil).Err)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Err", reflect.TypeOf((*MockCli)(nil).Err))
return &CliErrCall{Call: call} return &MockCliErrCall{Call: call}
} }
// CliErrCall wrap *gomock.Call // MockCliErrCall wrap *gomock.Call
type CliErrCall struct { type MockCliErrCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliErrCall) Return(arg0 io.Writer) *CliErrCall { func (c *MockCliErrCall) Return(arg0 *streams.Out) *MockCliErrCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliErrCall) Do(f func() io.Writer) *CliErrCall { func (c *MockCliErrCall) Do(f func() *streams.Out) *MockCliErrCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliErrCall) DoAndReturn(f func() io.Writer) *CliErrCall { func (c *MockCliErrCall) DoAndReturn(f func() *streams.Out) *MockCliErrCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -480,31 +484,31 @@ func (m *MockCli) In() *streams.In {
} }
// In indicates an expected call of In. // In indicates an expected call of In.
func (mr *MockCliMockRecorder) In() *CliInCall { func (mr *MockCliMockRecorder) In() *MockCliInCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "In", reflect.TypeOf((*MockCli)(nil).In)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "In", reflect.TypeOf((*MockCli)(nil).In))
return &CliInCall{Call: call} return &MockCliInCall{Call: call}
} }
// CliInCall wrap *gomock.Call // MockCliInCall wrap *gomock.Call
type CliInCall struct { type MockCliInCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliInCall) Return(arg0 *streams.In) *CliInCall { func (c *MockCliInCall) Return(arg0 *streams.In) *MockCliInCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliInCall) Do(f func() *streams.In) *CliInCall { func (c *MockCliInCall) Do(f func() *streams.In) *MockCliInCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliInCall) DoAndReturn(f func() *streams.In) *CliInCall { func (c *MockCliInCall) DoAndReturn(f func() *streams.In) *MockCliInCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -518,31 +522,69 @@ func (m *MockCli) ManifestStore() store0.Store {
} }
// ManifestStore indicates an expected call of ManifestStore. // ManifestStore indicates an expected call of ManifestStore.
func (mr *MockCliMockRecorder) ManifestStore() *CliManifestStoreCall { func (mr *MockCliMockRecorder) ManifestStore() *MockCliManifestStoreCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestStore", reflect.TypeOf((*MockCli)(nil).ManifestStore)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestStore", reflect.TypeOf((*MockCli)(nil).ManifestStore))
return &CliManifestStoreCall{Call: call} return &MockCliManifestStoreCall{Call: call}
} }
// CliManifestStoreCall wrap *gomock.Call // MockCliManifestStoreCall wrap *gomock.Call
type CliManifestStoreCall struct { type MockCliManifestStoreCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliManifestStoreCall) Return(arg0 store0.Store) *CliManifestStoreCall { func (c *MockCliManifestStoreCall) Return(arg0 store0.Store) *MockCliManifestStoreCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliManifestStoreCall) Do(f func() store0.Store) *CliManifestStoreCall { func (c *MockCliManifestStoreCall) Do(f func() store0.Store) *MockCliManifestStoreCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliManifestStoreCall) DoAndReturn(f func() store0.Store) *CliManifestStoreCall { func (c *MockCliManifestStoreCall) DoAndReturn(f func() store0.Store) *MockCliManifestStoreCall {
c.Call = c.Call.DoAndReturn(f)
return c
}
// MeterProvider mocks base method.
func (m *MockCli) MeterProvider() metric.MeterProvider {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "MeterProvider")
ret0, _ := ret[0].(metric.MeterProvider)
return ret0
}
// MeterProvider indicates an expected call of MeterProvider.
func (mr *MockCliMockRecorder) MeterProvider() *MockCliMeterProviderCall {
mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MeterProvider", reflect.TypeOf((*MockCli)(nil).MeterProvider))
return &MockCliMeterProviderCall{Call: call}
}
// MockCliMeterProviderCall wrap *gomock.Call
type MockCliMeterProviderCall struct {
*gomock.Call
}
// Return rewrite *gomock.Call.Return
func (c *MockCliMeterProviderCall) Return(arg0 metric.MeterProvider) *MockCliMeterProviderCall {
c.Call = c.Call.Return(arg0)
return c
}
// Do rewrite *gomock.Call.Do
func (c *MockCliMeterProviderCall) Do(f func() metric.MeterProvider) *MockCliMeterProviderCall {
c.Call = c.Call.Do(f)
return c
}
// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCliMeterProviderCall) DoAndReturn(f func() metric.MeterProvider) *MockCliMeterProviderCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -557,31 +599,31 @@ func (m *MockCli) NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []st
} }
// NotaryClient indicates an expected call of NotaryClient. // NotaryClient indicates an expected call of NotaryClient.
func (mr *MockCliMockRecorder) NotaryClient(imgRefAndAuth, actions any) *CliNotaryClientCall { func (mr *MockCliMockRecorder) NotaryClient(imgRefAndAuth, actions any) *MockCliNotaryClientCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotaryClient", reflect.TypeOf((*MockCli)(nil).NotaryClient), imgRefAndAuth, actions) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotaryClient", reflect.TypeOf((*MockCli)(nil).NotaryClient), imgRefAndAuth, actions)
return &CliNotaryClientCall{Call: call} return &MockCliNotaryClientCall{Call: call}
} }
// CliNotaryClientCall wrap *gomock.Call // MockCliNotaryClientCall wrap *gomock.Call
type CliNotaryClientCall struct { type MockCliNotaryClientCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliNotaryClientCall) Return(arg0 client1.Repository, arg1 error) *CliNotaryClientCall { func (c *MockCliNotaryClientCall) Return(arg0 client1.Repository, arg1 error) *MockCliNotaryClientCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliNotaryClientCall) Do(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *CliNotaryClientCall { func (c *MockCliNotaryClientCall) Do(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *MockCliNotaryClientCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliNotaryClientCall) DoAndReturn(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *CliNotaryClientCall { func (c *MockCliNotaryClientCall) DoAndReturn(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *MockCliNotaryClientCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -595,31 +637,31 @@ func (m *MockCli) Out() *streams.Out {
} }
// Out indicates an expected call of Out. // Out indicates an expected call of Out.
func (mr *MockCliMockRecorder) Out() *CliOutCall { func (mr *MockCliMockRecorder) Out() *MockCliOutCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Out", reflect.TypeOf((*MockCli)(nil).Out)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Out", reflect.TypeOf((*MockCli)(nil).Out))
return &CliOutCall{Call: call} return &MockCliOutCall{Call: call}
} }
// CliOutCall wrap *gomock.Call // MockCliOutCall wrap *gomock.Call
type CliOutCall struct { type MockCliOutCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliOutCall) Return(arg0 *streams.Out) *CliOutCall { func (c *MockCliOutCall) Return(arg0 *streams.Out) *MockCliOutCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliOutCall) Do(f func() *streams.Out) *CliOutCall { func (c *MockCliOutCall) Do(f func() *streams.Out) *MockCliOutCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliOutCall) DoAndReturn(f func() *streams.Out) *CliOutCall { func (c *MockCliOutCall) DoAndReturn(f func() *streams.Out) *MockCliOutCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -633,31 +675,69 @@ func (m *MockCli) RegistryClient(arg0 bool) client.RegistryClient {
} }
// RegistryClient indicates an expected call of RegistryClient. // RegistryClient indicates an expected call of RegistryClient.
func (mr *MockCliMockRecorder) RegistryClient(arg0 any) *CliRegistryClientCall { func (mr *MockCliMockRecorder) RegistryClient(arg0 any) *MockCliRegistryClientCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegistryClient", reflect.TypeOf((*MockCli)(nil).RegistryClient), arg0) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegistryClient", reflect.TypeOf((*MockCli)(nil).RegistryClient), arg0)
return &CliRegistryClientCall{Call: call} return &MockCliRegistryClientCall{Call: call}
} }
// CliRegistryClientCall wrap *gomock.Call // MockCliRegistryClientCall wrap *gomock.Call
type CliRegistryClientCall struct { type MockCliRegistryClientCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliRegistryClientCall) Return(arg0 client.RegistryClient) *CliRegistryClientCall { func (c *MockCliRegistryClientCall) Return(arg0 client.RegistryClient) *MockCliRegistryClientCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliRegistryClientCall) Do(f func(bool) client.RegistryClient) *CliRegistryClientCall { func (c *MockCliRegistryClientCall) Do(f func(bool) client.RegistryClient) *MockCliRegistryClientCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliRegistryClientCall) DoAndReturn(f func(bool) client.RegistryClient) *CliRegistryClientCall { func (c *MockCliRegistryClientCall) DoAndReturn(f func(bool) client.RegistryClient) *MockCliRegistryClientCall {
c.Call = c.Call.DoAndReturn(f)
return c
}
// Resource mocks base method.
func (m *MockCli) Resource() *resource.Resource {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Resource")
ret0, _ := ret[0].(*resource.Resource)
return ret0
}
// Resource indicates an expected call of Resource.
func (mr *MockCliMockRecorder) Resource() *MockCliResourceCall {
mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Resource", reflect.TypeOf((*MockCli)(nil).Resource))
return &MockCliResourceCall{Call: call}
}
// MockCliResourceCall wrap *gomock.Call
type MockCliResourceCall struct {
*gomock.Call
}
// Return rewrite *gomock.Call.Return
func (c *MockCliResourceCall) Return(arg0 *resource.Resource) *MockCliResourceCall {
c.Call = c.Call.Return(arg0)
return c
}
// Do rewrite *gomock.Call.Do
func (c *MockCliResourceCall) Do(f func() *resource.Resource) *MockCliResourceCall {
c.Call = c.Call.Do(f)
return c
}
// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCliResourceCall) DoAndReturn(f func() *resource.Resource) *MockCliResourceCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -671,31 +751,31 @@ func (m *MockCli) ServerInfo() command.ServerInfo {
} }
// ServerInfo indicates an expected call of ServerInfo. // ServerInfo indicates an expected call of ServerInfo.
func (mr *MockCliMockRecorder) ServerInfo() *CliServerInfoCall { func (mr *MockCliMockRecorder) ServerInfo() *MockCliServerInfoCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ServerInfo", reflect.TypeOf((*MockCli)(nil).ServerInfo)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ServerInfo", reflect.TypeOf((*MockCli)(nil).ServerInfo))
return &CliServerInfoCall{Call: call} return &MockCliServerInfoCall{Call: call}
} }
// CliServerInfoCall wrap *gomock.Call // MockCliServerInfoCall wrap *gomock.Call
type CliServerInfoCall struct { type MockCliServerInfoCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliServerInfoCall) Return(arg0 command.ServerInfo) *CliServerInfoCall { func (c *MockCliServerInfoCall) Return(arg0 command.ServerInfo) *MockCliServerInfoCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliServerInfoCall) Do(f func() command.ServerInfo) *CliServerInfoCall { func (c *MockCliServerInfoCall) Do(f func() command.ServerInfo) *MockCliServerInfoCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliServerInfoCall) DoAndReturn(f func() command.ServerInfo) *CliServerInfoCall { func (c *MockCliServerInfoCall) DoAndReturn(f func() command.ServerInfo) *MockCliServerInfoCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -707,31 +787,69 @@ func (m *MockCli) SetIn(in *streams.In) {
} }
// SetIn indicates an expected call of SetIn. // SetIn indicates an expected call of SetIn.
func (mr *MockCliMockRecorder) SetIn(in any) *CliSetInCall { func (mr *MockCliMockRecorder) SetIn(in any) *MockCliSetInCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetIn", reflect.TypeOf((*MockCli)(nil).SetIn), in) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetIn", reflect.TypeOf((*MockCli)(nil).SetIn), in)
return &CliSetInCall{Call: call} return &MockCliSetInCall{Call: call}
} }
// CliSetInCall wrap *gomock.Call // MockCliSetInCall wrap *gomock.Call
type CliSetInCall struct { type MockCliSetInCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *CliSetInCall) Return() *CliSetInCall { func (c *MockCliSetInCall) Return() *MockCliSetInCall {
c.Call = c.Call.Return() c.Call = c.Call.Return()
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *CliSetInCall) Do(f func(*streams.In)) *CliSetInCall { func (c *MockCliSetInCall) Do(f func(*streams.In)) *MockCliSetInCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *CliSetInCall) DoAndReturn(f func(*streams.In)) *CliSetInCall { func (c *MockCliSetInCall) DoAndReturn(f func(*streams.In)) *MockCliSetInCall {
c.Call = c.Call.DoAndReturn(f)
return c
}
// TracerProvider mocks base method.
func (m *MockCli) TracerProvider() trace.TracerProvider {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "TracerProvider")
ret0, _ := ret[0].(trace.TracerProvider)
return ret0
}
// TracerProvider indicates an expected call of TracerProvider.
func (mr *MockCliMockRecorder) TracerProvider() *MockCliTracerProviderCall {
mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TracerProvider", reflect.TypeOf((*MockCli)(nil).TracerProvider))
return &MockCliTracerProviderCall{Call: call}
}
// MockCliTracerProviderCall wrap *gomock.Call
type MockCliTracerProviderCall struct {
*gomock.Call
}
// Return rewrite *gomock.Call.Return
func (c *MockCliTracerProviderCall) Return(arg0 trace.TracerProvider) *MockCliTracerProviderCall {
c.Call = c.Call.Return(arg0)
return c
}
// Do rewrite *gomock.Call.Do
func (c *MockCliTracerProviderCall) Do(f func() trace.TracerProvider) *MockCliTracerProviderCall {
c.Call = c.Call.Do(f)
return c
}
// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCliTracerProviderCall) DoAndReturn(f func() trace.TracerProvider) *MockCliTracerProviderCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }

View File

@@ -5,6 +5,7 @@
// //
// mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal // mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
// //
// Package internal is a generated GoMock package. // Package internal is a generated GoMock package.
package internal package internal
@@ -23,6 +24,7 @@ import (
type MockClient struct { type MockClient struct {
ctrl *gomock.Controller ctrl *gomock.Controller
recorder *MockClientMockRecorder recorder *MockClientMockRecorder
isgomock struct{}
} }
// MockClientMockRecorder is the mock recorder for MockClient. // MockClientMockRecorder is the mock recorder for MockClient.
@@ -52,31 +54,31 @@ func (m *MockClient) Build(ctx context.Context, b Build) (*client.SolveResponse,
} }
// Build indicates an expected call of Build. // Build indicates an expected call of Build.
func (mr *MockClientMockRecorder) Build(ctx, b any) *ClientBuildCall { func (mr *MockClientMockRecorder) Build(ctx, b any) *MockClientBuildCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Build", reflect.TypeOf((*MockClient)(nil).Build), ctx, b) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Build", reflect.TypeOf((*MockClient)(nil).Build), ctx, b)
return &ClientBuildCall{Call: call} return &MockClientBuildCall{Call: call}
} }
// ClientBuildCall wrap *gomock.Call // MockClientBuildCall wrap *gomock.Call
type ClientBuildCall struct { type MockClientBuildCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientBuildCall) Return(arg0 *client.SolveResponse, arg1 error) *ClientBuildCall { func (c *MockClientBuildCall) Return(arg0 *client.SolveResponse, arg1 error) *MockClientBuildCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientBuildCall) Do(f func(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall { func (c *MockClientBuildCall) Do(f func(context.Context, Build) (*client.SolveResponse, error)) *MockClientBuildCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientBuildCall) DoAndReturn(f func(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall { func (c *MockClientBuildCall) DoAndReturn(f func(context.Context, Build) (*client.SolveResponse, error)) *MockClientBuildCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -91,31 +93,31 @@ func (m *MockClient) BuildKitEnabled() (bool, error) {
} }
// BuildKitEnabled indicates an expected call of BuildKitEnabled. // BuildKitEnabled indicates an expected call of BuildKitEnabled.
func (mr *MockClientMockRecorder) BuildKitEnabled() *ClientBuildKitEnabledCall { func (mr *MockClientMockRecorder) BuildKitEnabled() *MockClientBuildKitEnabledCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildKitEnabled", reflect.TypeOf((*MockClient)(nil).BuildKitEnabled)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildKitEnabled", reflect.TypeOf((*MockClient)(nil).BuildKitEnabled))
return &ClientBuildKitEnabledCall{Call: call} return &MockClientBuildKitEnabledCall{Call: call}
} }
// ClientBuildKitEnabledCall wrap *gomock.Call // MockClientBuildKitEnabledCall wrap *gomock.Call
type ClientBuildKitEnabledCall struct { type MockClientBuildKitEnabledCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientBuildKitEnabledCall) Return(arg0 bool, arg1 error) *ClientBuildKitEnabledCall { func (c *MockClientBuildKitEnabledCall) Return(arg0 bool, arg1 error) *MockClientBuildKitEnabledCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientBuildKitEnabledCall) Do(f func() (bool, error)) *ClientBuildKitEnabledCall { func (c *MockClientBuildKitEnabledCall) Do(f func() (bool, error)) *MockClientBuildKitEnabledCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientBuildKitEnabledCall) DoAndReturn(f func() (bool, error)) *ClientBuildKitEnabledCall { func (c *MockClientBuildKitEnabledCall) DoAndReturn(f func() (bool, error)) *MockClientBuildKitEnabledCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -129,31 +131,31 @@ func (m *MockClient) Delete(ctx context.Context, id string) error {
} }
// Delete indicates an expected call of Delete. // Delete indicates an expected call of Delete.
func (mr *MockClientMockRecorder) Delete(ctx, id any) *ClientDeleteCall { func (mr *MockClientMockRecorder) Delete(ctx, id any) *MockClientDeleteCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockClient)(nil).Delete), ctx, id) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockClient)(nil).Delete), ctx, id)
return &ClientDeleteCall{Call: call} return &MockClientDeleteCall{Call: call}
} }
// ClientDeleteCall wrap *gomock.Call // MockClientDeleteCall wrap *gomock.Call
type ClientDeleteCall struct { type MockClientDeleteCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientDeleteCall) Return(arg0 error) *ClientDeleteCall { func (c *MockClientDeleteCall) Return(arg0 error) *MockClientDeleteCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientDeleteCall) Do(f func(context.Context, string) error) *ClientDeleteCall { func (c *MockClientDeleteCall) Do(f func(context.Context, string) error) *MockClientDeleteCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientDeleteCall) DoAndReturn(f func(context.Context, string) error) *ClientDeleteCall { func (c *MockClientDeleteCall) DoAndReturn(f func(context.Context, string) error) *MockClientDeleteCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -168,31 +170,31 @@ func (m *MockClient) Inspect(ctx context.Context, id string) ([]descriptor.Descr
} }
// Inspect indicates an expected call of Inspect. // Inspect indicates an expected call of Inspect.
func (mr *MockClientMockRecorder) Inspect(ctx, id any) *ClientInspectCall { func (mr *MockClientMockRecorder) Inspect(ctx, id any) *MockClientInspectCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Inspect", reflect.TypeOf((*MockClient)(nil).Inspect), ctx, id) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Inspect", reflect.TypeOf((*MockClient)(nil).Inspect), ctx, id)
return &ClientInspectCall{Call: call} return &MockClientInspectCall{Call: call}
} }
// ClientInspectCall wrap *gomock.Call // MockClientInspectCall wrap *gomock.Call
type ClientInspectCall struct { type MockClientInspectCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientInspectCall) Return(arg0 []descriptor.Descriptor, arg1 error) *ClientInspectCall { func (c *MockClientInspectCall) Return(arg0 []descriptor.Descriptor, arg1 error) *MockClientInspectCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientInspectCall) Do(f func(context.Context, string) ([]descriptor.Descriptor, error)) *ClientInspectCall { func (c *MockClientInspectCall) Do(f func(context.Context, string) ([]descriptor.Descriptor, error)) *MockClientInspectCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientInspectCall) DoAndReturn(f func(context.Context, string) ([]descriptor.Descriptor, error)) *ClientInspectCall { func (c *MockClientInspectCall) DoAndReturn(f func(context.Context, string) ([]descriptor.Descriptor, error)) *MockClientInspectCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -210,32 +212,32 @@ func (m *MockClient) ManifestCreate(ctx context.Context, push bool, target strin
} }
// ManifestCreate indicates an expected call of ManifestCreate. // ManifestCreate indicates an expected call of ManifestCreate.
func (mr *MockClientMockRecorder) ManifestCreate(ctx, push, target any, refs ...any) *ClientManifestCreateCall { func (mr *MockClientMockRecorder) ManifestCreate(ctx, push, target any, refs ...any) *MockClientManifestCreateCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, push, target}, refs...) varargs := append([]any{ctx, push, target}, refs...)
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestCreate", reflect.TypeOf((*MockClient)(nil).ManifestCreate), varargs...) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestCreate", reflect.TypeOf((*MockClient)(nil).ManifestCreate), varargs...)
return &ClientManifestCreateCall{Call: call} return &MockClientManifestCreateCall{Call: call}
} }
// ClientManifestCreateCall wrap *gomock.Call // MockClientManifestCreateCall wrap *gomock.Call
type ClientManifestCreateCall struct { type MockClientManifestCreateCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientManifestCreateCall) Return(arg0 error) *ClientManifestCreateCall { func (c *MockClientManifestCreateCall) Return(arg0 error) *MockClientManifestCreateCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientManifestCreateCall) Do(f func(context.Context, bool, string, ...string) error) *ClientManifestCreateCall { func (c *MockClientManifestCreateCall) Do(f func(context.Context, bool, string, ...string) error) *MockClientManifestCreateCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientManifestCreateCall) DoAndReturn(f func(context.Context, bool, string, ...string) error) *ClientManifestCreateCall { func (c *MockClientManifestCreateCall) DoAndReturn(f func(context.Context, bool, string, ...string) error) *MockClientManifestCreateCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -249,31 +251,31 @@ func (m *MockClient) ManifestDelete(ctx context.Context, target string) error {
} }
// ManifestDelete indicates an expected call of ManifestDelete. // ManifestDelete indicates an expected call of ManifestDelete.
func (mr *MockClientMockRecorder) ManifestDelete(ctx, target any) *ClientManifestDeleteCall { func (mr *MockClientMockRecorder) ManifestDelete(ctx, target any) *MockClientManifestDeleteCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestDelete", reflect.TypeOf((*MockClient)(nil).ManifestDelete), ctx, target) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestDelete", reflect.TypeOf((*MockClient)(nil).ManifestDelete), ctx, target)
return &ClientManifestDeleteCall{Call: call} return &MockClientManifestDeleteCall{Call: call}
} }
// ClientManifestDeleteCall wrap *gomock.Call // MockClientManifestDeleteCall wrap *gomock.Call
type ClientManifestDeleteCall struct { type MockClientManifestDeleteCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientManifestDeleteCall) Return(arg0 error) *ClientManifestDeleteCall { func (c *MockClientManifestDeleteCall) Return(arg0 error) *MockClientManifestDeleteCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientManifestDeleteCall) Do(f func(context.Context, string) error) *ClientManifestDeleteCall { func (c *MockClientManifestDeleteCall) Do(f func(context.Context, string) error) *MockClientManifestDeleteCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientManifestDeleteCall) DoAndReturn(f func(context.Context, string) error) *ClientManifestDeleteCall { func (c *MockClientManifestDeleteCall) DoAndReturn(f func(context.Context, string) error) *MockClientManifestDeleteCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -288,31 +290,69 @@ func (m *MockClient) ManifestInspect(ctx context.Context, target string) (string
} }
// ManifestInspect indicates an expected call of ManifestInspect. // ManifestInspect indicates an expected call of ManifestInspect.
func (mr *MockClientMockRecorder) ManifestInspect(ctx, target any) *ClientManifestInspectCall { func (mr *MockClientMockRecorder) ManifestInspect(ctx, target any) *MockClientManifestInspectCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestInspect", reflect.TypeOf((*MockClient)(nil).ManifestInspect), ctx, target) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestInspect", reflect.TypeOf((*MockClient)(nil).ManifestInspect), ctx, target)
return &ClientManifestInspectCall{Call: call} return &MockClientManifestInspectCall{Call: call}
} }
// ClientManifestInspectCall wrap *gomock.Call // MockClientManifestInspectCall wrap *gomock.Call
type ClientManifestInspectCall struct { type MockClientManifestInspectCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *ClientManifestInspectCall) Return(arg0 string, arg1 error) *ClientManifestInspectCall { func (c *MockClientManifestInspectCall) Return(arg0 string, arg1 error) *MockClientManifestInspectCall {
c.Call = c.Call.Return(arg0, arg1) c.Call = c.Call.Return(arg0, arg1)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *ClientManifestInspectCall) Do(f func(context.Context, string) (string, error)) *ClientManifestInspectCall { func (c *MockClientManifestInspectCall) Do(f func(context.Context, string) (string, error)) *MockClientManifestInspectCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *ClientManifestInspectCall) DoAndReturn(f func(context.Context, string) (string, error)) *ClientManifestInspectCall { func (c *MockClientManifestInspectCall) DoAndReturn(f func(context.Context, string) (string, error)) *MockClientManifestInspectCall {
c.Call = c.Call.DoAndReturn(f)
return c
}
// SupportsMultipleExports mocks base method.
func (m *MockClient) SupportsMultipleExports() bool {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SupportsMultipleExports")
ret0, _ := ret[0].(bool)
return ret0
}
// SupportsMultipleExports indicates an expected call of SupportsMultipleExports.
func (mr *MockClientMockRecorder) SupportsMultipleExports() *MockClientSupportsMultipleExportsCall {
mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SupportsMultipleExports", reflect.TypeOf((*MockClient)(nil).SupportsMultipleExports))
return &MockClientSupportsMultipleExportsCall{Call: call}
}
// MockClientSupportsMultipleExportsCall wrap *gomock.Call
type MockClientSupportsMultipleExportsCall struct {
*gomock.Call
}
// Return rewrite *gomock.Call.Return
func (c *MockClientSupportsMultipleExportsCall) Return(arg0 bool) *MockClientSupportsMultipleExportsCall {
c.Call = c.Call.Return(arg0)
return c
}
// Do rewrite *gomock.Call.Do
func (c *MockClientSupportsMultipleExportsCall) Do(f func() bool) *MockClientSupportsMultipleExportsCall {
c.Call = c.Call.Do(f)
return c
}
// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockClientSupportsMultipleExportsCall) DoAndReturn(f func() bool) *MockClientSupportsMultipleExportsCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -321,6 +361,7 @@ func (c *ClientManifestInspectCall) DoAndReturn(f func(context.Context, string)
type MockBuild struct { type MockBuild struct {
ctrl *gomock.Controller ctrl *gomock.Controller
recorder *MockBuildMockRecorder recorder *MockBuildMockRecorder
isgomock struct{}
} }
// MockBuildMockRecorder is the mock recorder for MockBuild. // MockBuildMockRecorder is the mock recorder for MockBuild.
@@ -349,31 +390,31 @@ func (m *MockBuild) BuildOptions() pb.BuildOptions {
} }
// BuildOptions indicates an expected call of BuildOptions. // BuildOptions indicates an expected call of BuildOptions.
func (mr *MockBuildMockRecorder) BuildOptions() *BuildBuildOptionsCall { func (mr *MockBuildMockRecorder) BuildOptions() *MockBuildBuildOptionsCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildOptions", reflect.TypeOf((*MockBuild)(nil).BuildOptions)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildOptions", reflect.TypeOf((*MockBuild)(nil).BuildOptions))
return &BuildBuildOptionsCall{Call: call} return &MockBuildBuildOptionsCall{Call: call}
} }
// BuildBuildOptionsCall wrap *gomock.Call // MockBuildBuildOptionsCall wrap *gomock.Call
type BuildBuildOptionsCall struct { type MockBuildBuildOptionsCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *BuildBuildOptionsCall) Return(arg0 pb.BuildOptions) *BuildBuildOptionsCall { func (c *MockBuildBuildOptionsCall) Return(arg0 pb.BuildOptions) *MockBuildBuildOptionsCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *BuildBuildOptionsCall) Do(f func() pb.BuildOptions) *BuildBuildOptionsCall { func (c *MockBuildBuildOptionsCall) Do(f func() pb.BuildOptions) *MockBuildBuildOptionsCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *BuildBuildOptionsCall) DoAndReturn(f func() pb.BuildOptions) *BuildBuildOptionsCall { func (c *MockBuildBuildOptionsCall) DoAndReturn(f func() pb.BuildOptions) *MockBuildBuildOptionsCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -387,31 +428,31 @@ func (m *MockBuild) Inline() string {
} }
// Inline indicates an expected call of Inline. // Inline indicates an expected call of Inline.
func (mr *MockBuildMockRecorder) Inline() *BuildInlineCall { func (mr *MockBuildMockRecorder) Inline() *MockBuildInlineCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Inline", reflect.TypeOf((*MockBuild)(nil).Inline)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Inline", reflect.TypeOf((*MockBuild)(nil).Inline))
return &BuildInlineCall{Call: call} return &MockBuildInlineCall{Call: call}
} }
// BuildInlineCall wrap *gomock.Call // MockBuildInlineCall wrap *gomock.Call
type BuildInlineCall struct { type MockBuildInlineCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *BuildInlineCall) Return(arg0 string) *BuildInlineCall { func (c *MockBuildInlineCall) Return(arg0 string) *MockBuildInlineCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *BuildInlineCall) Do(f func() string) *BuildInlineCall { func (c *MockBuildInlineCall) Do(f func() string) *MockBuildInlineCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *BuildInlineCall) DoAndReturn(f func() string) *BuildInlineCall { func (c *MockBuildInlineCall) DoAndReturn(f func() string) *MockBuildInlineCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -425,31 +466,31 @@ func (m *MockBuild) Secrets() session.Attachable {
} }
// Secrets indicates an expected call of Secrets. // Secrets indicates an expected call of Secrets.
func (mr *MockBuildMockRecorder) Secrets() *BuildSecretsCall { func (mr *MockBuildMockRecorder) Secrets() *MockBuildSecretsCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Secrets", reflect.TypeOf((*MockBuild)(nil).Secrets)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Secrets", reflect.TypeOf((*MockBuild)(nil).Secrets))
return &BuildSecretsCall{Call: call} return &MockBuildSecretsCall{Call: call}
} }
// BuildSecretsCall wrap *gomock.Call // MockBuildSecretsCall wrap *gomock.Call
type BuildSecretsCall struct { type MockBuildSecretsCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *BuildSecretsCall) Return(arg0 session.Attachable) *BuildSecretsCall { func (c *MockBuildSecretsCall) Return(arg0 session.Attachable) *MockBuildSecretsCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *BuildSecretsCall) Do(f func() session.Attachable) *BuildSecretsCall { func (c *MockBuildSecretsCall) Do(f func() session.Attachable) *MockBuildSecretsCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *BuildSecretsCall) DoAndReturn(f func() session.Attachable) *BuildSecretsCall { func (c *MockBuildSecretsCall) DoAndReturn(f func() session.Attachable) *MockBuildSecretsCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }
@@ -463,31 +504,31 @@ func (m *MockBuild) ShouldExec() bool {
} }
// ShouldExec indicates an expected call of ShouldExec. // ShouldExec indicates an expected call of ShouldExec.
func (mr *MockBuildMockRecorder) ShouldExec() *BuildShouldExecCall { func (mr *MockBuildMockRecorder) ShouldExec() *MockBuildShouldExecCall {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShouldExec", reflect.TypeOf((*MockBuild)(nil).ShouldExec)) call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShouldExec", reflect.TypeOf((*MockBuild)(nil).ShouldExec))
return &BuildShouldExecCall{Call: call} return &MockBuildShouldExecCall{Call: call}
} }
// BuildShouldExecCall wrap *gomock.Call // MockBuildShouldExecCall wrap *gomock.Call
type BuildShouldExecCall struct { type MockBuildShouldExecCall struct {
*gomock.Call *gomock.Call
} }
// Return rewrite *gomock.Call.Return // Return rewrite *gomock.Call.Return
func (c *BuildShouldExecCall) Return(arg0 bool) *BuildShouldExecCall { func (c *MockBuildShouldExecCall) Return(arg0 bool) *MockBuildShouldExecCall {
c.Call = c.Call.Return(arg0) c.Call = c.Call.Return(arg0)
return c return c
} }
// Do rewrite *gomock.Call.Do // Do rewrite *gomock.Call.Do
func (c *BuildShouldExecCall) Do(f func() bool) *BuildShouldExecCall { func (c *MockBuildShouldExecCall) Do(f func() bool) *MockBuildShouldExecCall {
c.Call = c.Call.Do(f) c.Call = c.Call.Do(f)
return c return c
} }
// DoAndReturn rewrite *gomock.Call.DoAndReturn // DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *BuildShouldExecCall) DoAndReturn(f func() bool) *BuildShouldExecCall { func (c *MockBuildShouldExecCall) DoAndReturn(f func() bool) *MockBuildShouldExecCall {
c.Call = c.Call.DoAndReturn(f) c.Call = c.Call.DoAndReturn(f)
return c return c
} }

View File

@@ -22,9 +22,12 @@ var _ = (infer.Enum[NetworkMode])((*NetworkMode)(nil))
type NetworkMode string type NetworkMode string
const ( const (
Default NetworkMode = "default" // Default network mode. // Default network mode.
Host NetworkMode = "host" // Host network mode. Default NetworkMode = "default"
None NetworkMode = "none" // None or no network mode. // Host network mode.
Host NetworkMode = "host"
// None or no network mode.
None NetworkMode = "none"
) )
// Values returns all valid NetworkMode values for SDK generation. // Values returns all valid NetworkMode values for SDK generation.

View File

@@ -55,8 +55,8 @@ func (c *Config) Annotate(a infer.Annotator) {
} }
// Configure validates and processes user-provided configuration values. // Configure validates and processes user-provided configuration values.
func (c *Config) Configure(_ context.Context) error { func (c *Config) Configure(ctx context.Context) error {
h, err := newHost(c) h, err := newHost(ctx, c)
if err != nil { if err != nil {
return fmt.Errorf("getting host: %w", err) return fmt.Errorf("getting host: %w", err)
} }
@@ -103,18 +103,12 @@ func NewBuildxProvider() provider.Provider {
}, },
"nodejs": tsgen.NodePackageInfo{ "nodejs": tsgen.NodePackageInfo{
RespectSchemaVersion: true, RespectSchemaVersion: true,
Dependencies: map[string]string{
"@pulumi/pulumi": "^3.0.0",
},
}, },
"python": pygen.PackageInfo{ "python": pygen.PackageInfo{
RespectSchemaVersion: true, RespectSchemaVersion: true,
PyProject: struct { PyProject: struct {
Enabled bool `json:"enabled,omitempty"` Enabled bool `json:"enabled,omitempty"`
}{Enabled: true}, }{Enabled: true},
Requires: map[string]string{
"pulumi": ">=3.0.0,<4.0.0",
},
}, },
}, },
}, },

View File

@@ -1,6 +0,0 @@
{
"postUpgradeTasks": {
"executionMode": "branch",
"commands": ["mise trust", "mise install --yes", "mise run sdk"]
}
}

View File

@@ -1,14 +1,16 @@
module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild
go 1.21.7 go 1.22.0
toolchain go1.22.6
require ( require (
github.com/blang/semver v3.5.1+incompatible github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi/sdk/v3 v3.128.0 github.com/pulumi/pulumi/sdk/v3 v3.142.0
) )
require ( require (
dario.cat/mergo v1.0.0 // indirect dario.cat/mergo v1.0.1 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect
@@ -17,16 +19,14 @@ require (
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/bubbles v0.18.0 // indirect github.com/charmbracelet/bubbles v0.20.0 // indirect
github.com/charmbracelet/bubbletea v0.26.4 // indirect github.com/charmbracelet/bubbletea v1.1.0 // indirect
github.com/charmbracelet/lipgloss v0.11.0 // indirect github.com/charmbracelet/lipgloss v0.13.0 // indirect
github.com/charmbracelet/x/ansi v0.1.2 // indirect github.com/charmbracelet/x/ansi v0.2.3 // indirect
github.com/charmbracelet/x/input v0.1.0 // indirect github.com/charmbracelet/x/term v0.2.0 // indirect
github.com/charmbracelet/x/term v0.1.1 // indirect
github.com/charmbracelet/x/windows v0.1.0 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.8 // indirect github.com/cloudflare/circl v1.4.0 // indirect
github.com/cyphar/filepath-securejoin v0.2.5 // indirect github.com/cyphar/filepath-securejoin v0.3.1 // indirect
github.com/djherbis/times v1.6.0 // indirect github.com/djherbis/times v1.6.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
@@ -36,21 +36,20 @@ require (
github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.1 // indirect github.com/golang/glog v1.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.20.1 // indirect github.com/hashicorp/hcl/v2 v2.22.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
@@ -64,37 +63,35 @@ require (
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.9.1 // indirect github.com/pulumi/esc v0.10.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.2.2 // indirect github.com/skeema/knownhosts v1.3.0 // indirect
github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/objx v0.5.2 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/zclconf/go-cty v1.15.0 // indirect
github.com/zclconf/go-cty v1.14.4 // indirect
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.25.0 // indirect golang.org/x/crypto v0.27.0 // indirect
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/mod v0.18.0 // indirect golang.org/x/mod v0.21.0 // indirect
golang.org/x/net v0.26.0 // indirect golang.org/x/net v0.29.0 // indirect
golang.org/x/sync v0.7.0 // indirect golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.24.0 // indirect golang.org/x/sys v0.26.0 // indirect
golang.org/x/term v0.22.0 // indirect golang.org/x/term v0.24.0 // indirect
golang.org/x/text v0.16.0 // indirect golang.org/x/text v0.18.0 // indirect
golang.org/x/tools v0.22.0 // indirect golang.org/x/tools v0.25.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/grpc v1.64.1 // indirect google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.34.2 // indirect google.golang.org/protobuf v1.35.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.4.2 // indirect lukechampine.com/frand v1.4.2 // indirect

View File

@@ -1,5 +1,5 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
@@ -26,29 +26,25 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw= github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
github.com/charmbracelet/bubbletea v0.26.4 h1:2gDkkzLZaTjMl/dQBpNVtnvcCxsh/FCkimep7FC9c40= github.com/charmbracelet/bubbletea v1.1.0 h1:FjAl9eAL3HBCHenhz/ZPjkKdScmaS5SK69JAK2YJK9c=
github.com/charmbracelet/bubbletea v0.26.4/go.mod h1:P+r+RRA5qtI1DOHNFn0otoNwB4rn+zNAzSj/EXz6xU0= github.com/charmbracelet/bubbletea v1.1.0/go.mod h1:9Ogk0HrdbHolIKHdjfFpyXJmiCzGwy+FesYkZr7hYU4=
github.com/charmbracelet/lipgloss v0.11.0 h1:UoAcbQ6Qml8hDwSWs0Y1cB5TEQuZkDPH/ZqwWWYTG4g= github.com/charmbracelet/lipgloss v0.13.0 h1:4X3PPeoWEDCMvzDvGmTajSyYPcZM4+y8sCA/SsA3cjw=
github.com/charmbracelet/lipgloss v0.11.0/go.mod h1:1UdRTH9gYgpcdNN5oBtjbu/IzNKtzVtb7sqN1t9LNn8= github.com/charmbracelet/lipgloss v0.13.0/go.mod h1:nw4zy0SBX/F/eAO1cWdcvy6qnkDUxr8Lw7dvFrAIbbY=
github.com/charmbracelet/x/ansi v0.1.2 h1:6+LR39uG8DE6zAmbu023YlqjJHkYXDF1z36ZwzO4xZY= github.com/charmbracelet/x/ansi v0.2.3 h1:VfFN0NUpcjBRd4DnKfRaIRo53KRgey/nhOoEqosGDEY=
github.com/charmbracelet/x/ansi v0.1.2/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw= github.com/charmbracelet/x/ansi v0.2.3/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
github.com/charmbracelet/x/input v0.1.0 h1:TEsGSfZYQyOtp+STIjyBq6tpRaorH0qpwZUj8DavAhQ= github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0=
github.com/charmbracelet/x/input v0.1.0/go.mod h1:ZZwaBxPF7IG8gWWzPUVqHEtWhc1+HXJPNuerJGRGZ28= github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0=
github.com/charmbracelet/x/term v0.1.1 h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXDjF6yI=
github.com/charmbracelet/x/term v0.1.1/go.mod h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw=
github.com/charmbracelet/x/windows v0.1.0 h1:gTaxdvzDM5oMa/I2ZNF7wN78X/atWemG9Wph7Ika2k4=
github.com/charmbracelet/x/windows v0.1.0/go.mod h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.8 h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI= github.com/cloudflare/circl v1.4.0 h1:BV7h5MgrktNzytKmWjpOtdYrf0lkkbF8YMlBGPhJQrY=
github.com/cloudflare/circl v1.3.8/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/cloudflare/circl v1.4.0/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.2.5 h1:6iR5tXJ/e6tJZzzdMc1km3Sa7RRIVBKAK32O2s7AYfo= github.com/cyphar/filepath-securejoin v0.3.1 h1:1V7cHiaW+C+39wEfpH6XlLBQo3j/PciWFrgfCLS8XrE=
github.com/cyphar/filepath-securejoin v0.2.5/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.3.1/go.mod h1:F7i41x/9cBF7lzCrVsYs9fuzwRZm4NQsGTBdpp6mETc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -78,8 +74,8 @@ github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXY
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=
github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
@@ -94,8 +90,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M=
github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
@@ -119,14 +115,13 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
@@ -157,10 +152,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c=
github.com/pulumi/pulumi/sdk/v3 v3.128.0 h1:5VPFfygxt6rva0bEYVQZXxsGAo2/D1wsb9erGOtXxzk= github.com/pulumi/pulumi/sdk/v3 v3.142.0 h1:SmcVddGuvwAh3g3XUVQQ5gVRQUKH1yZ6iETpDNHIHlw=
github.com/pulumi/pulumi/sdk/v3 v3.128.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= github.com/pulumi/pulumi/sdk/v3 v3.142.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= 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 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -175,8 +170,8 @@ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPO
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY=
github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
@@ -195,21 +190,17 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ=
github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -219,18 +210,18 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -242,15 +233,15 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -268,20 +259,19 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -289,8 +279,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -299,18 +289,18 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

View File

@@ -458,22 +458,22 @@ import javax.annotation.Nullable;
* import java.nio.file.Files; * import java.nio.file.Files;
* import java.nio.file.Paths; * import java.nio.file.Paths;
* *
* public class App { * public class App }{{@code
* public static void main(String[] args) { * public static void main(String[] args) }{{@code
* Pulumi.run(App::stack); * Pulumi.run(App::stack);
* } * }}{@code
* *
* public static void stack(Context ctx) { * public static void stack(Context ctx) }{{@code
* var image = new Image("image", ImageArgs.builder() * var image = new Image("image", ImageArgs.builder()
* .context(BuildContextArgs.builder() * .context(BuildContextArgs.builder()
* .location("app") * .location("app")
* .named(Map.of("golang:latest", Map.of("location", "docker-image://golang{@literal @}sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"))) * .named(Map.of("golang:latest", Map.of("location", "docker-image://golang}{@literal @}{@code sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
* .build()) * .build())
* .push(false) * .push(false)
* .build()); * .build());
* *
* } * }}{@code
* } * }}{@code
* } * }
* </pre> * </pre>
* ### Remote context * ### Remote context
@@ -1235,7 +1235,7 @@ public class Image extends com.pulumi.resources.CustomResource {
* *
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
*/ */
public Image(String name) { public Image(java.lang.String name) {
this(name, ImageArgs.Empty); this(name, ImageArgs.Empty);
} }
/** /**
@@ -1243,7 +1243,7 @@ public class Image extends com.pulumi.resources.CustomResource {
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
*/ */
public Image(String name, ImageArgs args) { public Image(java.lang.String name, ImageArgs args) {
this(name, args, null); this(name, args, null);
} }
/** /**
@@ -1252,15 +1252,22 @@ public class Image extends com.pulumi.resources.CustomResource {
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior. * @param options A bag of options that control this resource's behavior.
*/ */
public Image(String name, ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { public Image(java.lang.String name, ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Image", name, args == null ? ImageArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); super("docker-build:index:Image", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
} }
private Image(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) { private Image(java.lang.String name, Output<java.lang.String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Image", name, null, makeResourceOptions(options, id)); super("docker-build:index:Image", name, null, makeResourceOptions(options, id), false);
} }
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) { private static ImageArgs makeArgs(ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
if (options != null && options.getUrn().isPresent()) {
return null;
}
return args == null ? ImageArgs.Empty : args;
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<java.lang.String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion()) .version(Utilities.getVersion())
.build(); .build();
@@ -1275,7 +1282,7 @@ public class Image extends com.pulumi.resources.CustomResource {
* @param id The _unique_ provider ID of the resource to lookup. * @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource. * @param options Optional settings to control the behavior of the CustomResource.
*/ */
public static Image get(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) { public static Image get(java.lang.String name, Output<java.lang.String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new Image(name, id, options); return new Image(name, id, options);
} }
} }

View File

@@ -209,7 +209,7 @@ public class Index extends com.pulumi.resources.CustomResource {
* *
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
*/ */
public Index(String name) { public Index(java.lang.String name) {
this(name, IndexArgs.Empty); this(name, IndexArgs.Empty);
} }
/** /**
@@ -217,7 +217,7 @@ public class Index extends com.pulumi.resources.CustomResource {
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
*/ */
public Index(String name, IndexArgs args) { public Index(java.lang.String name, IndexArgs args) {
this(name, args, null); this(name, args, null);
} }
/** /**
@@ -226,15 +226,22 @@ public class Index extends com.pulumi.resources.CustomResource {
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior. * @param options A bag of options that control this resource's behavior.
*/ */
public Index(String name, IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { public Index(java.lang.String name, IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Index", name, args == null ? IndexArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); super("docker-build:index:Index", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
} }
private Index(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) { private Index(java.lang.String name, Output<java.lang.String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Index", name, null, makeResourceOptions(options, id)); super("docker-build:index:Index", name, null, makeResourceOptions(options, id), false);
} }
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) { private static IndexArgs makeArgs(IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
if (options != null && options.getUrn().isPresent()) {
return null;
}
return args == null ? IndexArgs.Empty : args;
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<java.lang.String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion()) .version(Utilities.getVersion())
.build(); .build();
@@ -249,7 +256,7 @@ public class Index extends com.pulumi.resources.CustomResource {
* @param id The _unique_ provider ID of the resource to lookup. * @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource. * @param options Optional settings to control the behavior of the CustomResource.
*/ */
public static Index get(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) { public static Index get(java.lang.String name, Output<java.lang.String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new Index(name, id, options); return new Index(name, id, options);
} }
} }

View File

@@ -34,7 +34,7 @@ public class Provider extends com.pulumi.resources.ProviderResource {
* *
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
*/ */
public Provider(String name) { public Provider(java.lang.String name) {
this(name, ProviderArgs.Empty); this(name, ProviderArgs.Empty);
} }
/** /**
@@ -42,7 +42,7 @@ public class Provider extends com.pulumi.resources.ProviderResource {
* @param name The _unique_ name of the resulting resource. * @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
*/ */
public Provider(String name, @Nullable ProviderArgs args) { public Provider(java.lang.String name, @Nullable ProviderArgs args) {
this(name, args, null); this(name, args, null);
} }
/** /**
@@ -51,11 +51,18 @@ public class Provider extends com.pulumi.resources.ProviderResource {
* @param args The arguments to use to populate this resource's properties. * @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior. * @param options A bag of options that control this resource's behavior.
*/ */
public Provider(String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { public Provider(java.lang.String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); super("docker-build", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
} }
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) { private static ProviderArgs makeArgs(@Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
if (options != null && options.getUrn().isPresent()) {
return null;
}
return args == null ? ProviderArgs.Empty : args;
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<java.lang.String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion()) .version(Utilities.getVersion())
.build(); .build();

View File

@@ -17,7 +17,7 @@ import com.pulumi.deployment.InvokeOptions;
public class Utilities { public class Utilities {
public static Optional<String> getEnv(String... names) { public static Optional<java.lang.String> getEnv(java.lang.String... names) {
for (var n : names) { for (var n : names) {
var value = Environment.getEnvironmentVariable(n); var value = Environment.getEnvironmentVariable(n);
if (value.isValue()) { if (value.isValue()) {
@@ -27,7 +27,7 @@ public class Utilities {
return Optional.empty(); return Optional.empty();
} }
public static Optional<Boolean> getEnvBoolean(String... names) { public static Optional<java.lang.Boolean> getEnvBoolean(java.lang.String... names) {
for (var n : names) { for (var n : names) {
var value = Environment.getBooleanEnvironmentVariable(n); var value = Environment.getBooleanEnvironmentVariable(n);
if (value.isValue()) { if (value.isValue()) {
@@ -37,7 +37,7 @@ public class Utilities {
return Optional.empty(); return Optional.empty();
} }
public static Optional<Integer> getEnvInteger(String... names) { public static Optional<java.lang.Integer> getEnvInteger(java.lang.String... names) {
for (var n : names) { for (var n : names) {
var value = Environment.getIntegerEnvironmentVariable(n); var value = Environment.getIntegerEnvironmentVariable(n);
if (value.isValue()) { if (value.isValue()) {
@@ -47,7 +47,7 @@ public class Utilities {
return Optional.empty(); return Optional.empty();
} }
public static Optional<Double> getEnvDouble(String... names) { public static Optional<java.lang.Double> getEnvDouble(java.lang.String... names) {
for (var n : names) { for (var n : names) {
var value = Environment.getDoubleEnvironmentVariable(n); var value = Environment.getDoubleEnvironmentVariable(n);
if (value.isValue()) { if (value.isValue()) {
@@ -68,8 +68,8 @@ public class Utilities {
); );
} }
private static final String version; private static final java.lang.String version;
public static String getVersion() { public static java.lang.String getVersion() {
return version; return version;
} }
@@ -78,7 +78,7 @@ public class Utilities {
var versionFile = Utilities.class.getClassLoader().getResourceAsStream(resourceName); var versionFile = Utilities.class.getClassLoader().getResourceAsStream(resourceName);
if (versionFile == null) { if (versionFile == null) {
throw new IllegalStateException( throw new IllegalStateException(
String.format("expected resource '%s' on Classpath, not found", resourceName) java.lang.String.format("expected resource '%s' on Classpath, not found", resourceName)
); );
} }
version = new BufferedReader(new InputStreamReader(versionFile)) version = new BufferedReader(new InputStreamReader(versionFile))

View File

@@ -33,7 +33,7 @@ import java.util.StringJoiner;
} }
@Override @Override
public String toString() { public java.lang.String toString() {
return new StringJoiner(", ", "CacheMode[", "]") return new StringJoiner(", ", "CacheMode[", "]")
.add("value='" + this.value + "'") .add("value='" + this.value + "'")
.toString(); .toString();

View File

@@ -38,7 +38,7 @@ import java.util.StringJoiner;
} }
@Override @Override
public String toString() { public java.lang.String toString() {
return new StringJoiner(", ", "CompressionType[", "]") return new StringJoiner(", ", "CompressionType[", "]")
.add("value='" + this.value + "'") .add("value='" + this.value + "'")
.toString(); .toString();

View File

@@ -38,7 +38,7 @@ import java.util.StringJoiner;
} }
@Override @Override
public String toString() { public java.lang.String toString() {
return new StringJoiner(", ", "NetworkMode[", "]") return new StringJoiner(", ", "NetworkMode[", "]")
.add("value='" + this.value + "'") .add("value='" + this.value + "'")
.toString(); .toString();

View File

@@ -51,7 +51,7 @@ import java.util.StringJoiner;
} }
@Override @Override
public String toString() { public java.lang.String toString() {
return new StringJoiner(", ", "Platform[", "]") return new StringJoiner(", ", "Platform[", "]")
.add("value='" + this.value + "'") .add("value='" + this.value + "'")
.toString(); .toString();

View File

@@ -14,7 +14,7 @@
"build": "tsc" "build": "tsc"
}, },
"dependencies": { "dependencies": {
"@pulumi/pulumi": "^3.0.0" "@pulumi/pulumi": "^3.136.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^14", "@types/node": "^14",

File diff suppressed because it is too large Load Diff

View File

@@ -264,7 +264,7 @@ def call_plain(
output = pulumi.runtime.call(tok, props, res, typ) output = pulumi.runtime.call(tok, props, res, typ)
# Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency. # Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
result, known, secret, _ = _sync_await(asyncio.ensure_future(_await_output(output))) result, known, secret, _ = _sync_await(asyncio.create_task(_await_output(output)))
problem = None problem = None
if not known: if not known:

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities from .. import _utilities
from .. import outputs as _root_outputs from .. import outputs as _root_outputs

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities from .. import _utilities
from .. import outputs as _root_outputs from .. import outputs as _root_outputs

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities from . import _utilities
from . import outputs from . import outputs
from ._enums import * from ._enums import *
@@ -847,7 +852,7 @@ class Image(pulumi.CustomResource):
context={ context={
"location": "app", "location": "app",
"named": { "named": {
"golang_latest": { "golang:latest": {
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984", "location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
}, },
}, },
@@ -1285,7 +1290,7 @@ class Image(pulumi.CustomResource):
context={ context={
"location": "app", "location": "app",
"named": { "named": {
"golang_latest": { "golang:latest": {
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984", "location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
}, },
}, },

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities from . import _utilities
from . import outputs from . import outputs
from ._inputs import * from ._inputs import *

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities from . import _utilities
from . import outputs from . import outputs
from ._enums import * from ._enums import *

View File

@@ -4,9 +4,14 @@
import copy import copy
import warnings import warnings
import sys
import pulumi import pulumi
import pulumi.runtime import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities from . import _utilities
from ._inputs import * from ._inputs import *

View File

@@ -1,7 +1,7 @@
[project] [project]
name = "pulumi_docker_build" name = "pulumi_docker_build"
description = "A Pulumi provider for building modern Docker images with buildx and BuildKit." description = "A Pulumi provider for building modern Docker images with buildx and BuildKit."
dependencies = ["parver>=0.2.1", "pulumi>=3.0.0,<4.0.0", "semver>=2.8.1"] dependencies = ["parver>=0.2.1", "pulumi>=3.136.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11; python_version < \"3.11\""]
keywords = ["docker", "buildkit", "buildx", "kind/native"] keywords = ["docker", "buildkit", "buildx", "kind/native"]
readme = "README.md" readme = "README.md"
requires-python = ">=3.8" requires-python = ">=3.8"

17
tools/tools.go Normal file
View File

@@ -0,0 +1,17 @@
//go:build tools
// +build tools
// See https://play-with-go.dev/tools-as-dependencies_go119_en/ for an explanation of this file.
package tools
import (
_ "github.com/golangci/golangci-lint/cmd/golangci-lint"
_ "github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet"
_ "github.com/pulumi/pulumi-java/pkg/cmd/pulumi-language-java"
_ "github.com/pulumi/pulumi-yaml/cmd/pulumi-converter-yaml"
_ "github.com/pulumi/pulumi-yaml/cmd/pulumi-language-yaml"
_ "github.com/pulumi/pulumi/pkg/v3/cmd/pulumi"
_ "github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3"
_ "github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3"
_ "github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3"
)