Compare commits
109 Commits
v0.0.5
...
blampe/go-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a20bb69371 | ||
|
|
7f94ee5d6d | ||
|
|
17e91e031f | ||
|
|
6b17b3fec8 | ||
|
|
1c575b0966 | ||
|
|
53d91af128 | ||
|
|
f37fe4d2d7 | ||
|
|
5d8aeba54d | ||
|
|
a998be8014 | ||
|
|
7eb1e3fe50 | ||
|
|
7ca0d3a6a4 | ||
|
|
d0b0f01ea3 | ||
|
|
52d8cfcd96 | ||
|
|
58cbf7bc13 | ||
|
|
f8ce3731c0 | ||
|
|
9f06bf2d93 | ||
|
|
7009361c0f | ||
|
|
bfc77e1fe2 | ||
|
|
a38b227131 | ||
|
|
c9efdfecc8 | ||
|
|
038d10bc74 | ||
|
|
144aad3a66 | ||
|
|
b0c55e8a8e | ||
|
|
b70b1b107b | ||
|
|
f58b786284 | ||
|
|
d98d613dd6 | ||
|
|
8987df0a8e | ||
|
|
1a178f020f | ||
|
|
8c5a9ac033 | ||
|
|
4d858c52b9 | ||
|
|
f83b7a0a44 | ||
|
|
0b5c155cad | ||
|
|
c6b9fc8f02 | ||
|
|
780fe97f99 | ||
|
|
706136a454 | ||
|
|
c9d2bc3255 | ||
|
|
20f5f536dc | ||
|
|
f41c8c927d | ||
|
|
2c4b4260dc | ||
|
|
1251ad4f94 | ||
|
|
8ff1017270 | ||
|
|
e93eb024db | ||
|
|
c095c4c7ef | ||
|
|
90ee40ceb4 | ||
|
|
2fdcae409d | ||
|
|
dad72f7d65 | ||
|
|
48e337859c | ||
|
|
d46882f9eb | ||
|
|
8025c5f938 | ||
|
|
60164fefcb | ||
|
|
783a73b91e | ||
|
|
4f4417bd95 | ||
|
|
8425d58820 | ||
|
|
ae24ee020d | ||
|
|
019331c4ed | ||
|
|
fd570c3cb9 | ||
|
|
15a31abdb5 | ||
|
|
131a26f052 | ||
|
|
a04ed06f14 | ||
|
|
5965661cc2 | ||
|
|
a1ab7c8a0f | ||
|
|
a30efd3f9d | ||
|
|
044df99755 | ||
|
|
a6b970cee3 | ||
|
|
c600cc34c0 | ||
|
|
bc4eeff975 | ||
|
|
5995dea695 | ||
|
|
f2df9ccbf0 | ||
|
|
d65bf93eb8 | ||
|
|
3f9effba53 | ||
|
|
d4fb7fab81 | ||
|
|
bd750dc115 | ||
|
|
ba0b30e361 | ||
|
|
8dcb0d6815 | ||
|
|
d4a1d35fcd | ||
|
|
9d00d64258 | ||
|
|
fe283da7bb | ||
|
|
38333c57b0 | ||
|
|
80d25003de | ||
|
|
195fbfc784 | ||
|
|
2907567484 | ||
|
|
0a045d12bf | ||
|
|
9f3d3db1dd | ||
|
|
a18d56b485 | ||
|
|
2f620af3be | ||
|
|
9aa209c0fe | ||
|
|
2c2f8a68a3 | ||
|
|
7479f9f2a5 | ||
|
|
e15f743f8c | ||
|
|
ec4594a854 | ||
|
|
0ce316d7de | ||
|
|
0b7a26a9b6 | ||
|
|
b66e4a56fd | ||
|
|
0d17198e54 | ||
|
|
fb7912a889 | ||
|
|
4c03012268 | ||
|
|
bf6080cdc4 | ||
|
|
3d57abba75 | ||
|
|
9d3d0712f2 | ||
|
|
30a26f61e4 | ||
|
|
242d99d4d6 | ||
|
|
8151f0369f | ||
|
|
3e25f4a26a | ||
|
|
1affb91b69 | ||
|
|
06cf6ec5f8 | ||
|
|
5d7ff1eeca | ||
|
|
b1d2d5b5b3 | ||
|
|
d9c3284f40 | ||
|
|
81a7aa4ec4 |
26
.ci-mgmt.yaml
Normal file
26
.ci-mgmt.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
template: native
|
||||
provider: docker-build
|
||||
major-version: 0
|
||||
providerDefaultBranch: main
|
||||
providerVersion: github.com/pulumi/pulumi-docker-build/provider.Version
|
||||
aws: true
|
||||
gcp: true
|
||||
sdkModuleDir: sdk/go/dockerbuild
|
||||
parallel: 3
|
||||
envOverride:
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: "https://api.pulumi-staging.io"
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
25
.github/dependabot.yml
vendored
25
.github/dependabot.yml
vendored
@@ -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
|
||||
337
.github/workflows/build.yml
vendored
337
.github/workflows/build.yml
vendored
@@ -15,6 +15,13 @@ on:
|
||||
- "**"
|
||||
workflow_dispatch: {}
|
||||
env:
|
||||
AZURE_SIGNING_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
|
||||
AZURE_SIGNING_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
|
||||
AZURE_SIGNING_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
|
||||
AZURE_SIGNING_KEY_VAULT_URI: ${{ secrets.AZURE_SIGNING_KEY_VAULT_URI }}
|
||||
SKIP_SIGNING: ${{ secrets.AZURE_SIGNING_CLIENT_ID == '' &&
|
||||
secrets.AZURE_SIGNING_CLIENT_SECRET == '' && secrets.AZURE_SIGNING_TENANT_ID
|
||||
== '' && secrets.AZURE_SIGNING_KEY_VAULT_URI == '' }}
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
PROVIDER: docker-build
|
||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||
@@ -32,57 +39,55 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
jobs:
|
||||
prerequisites:
|
||||
runs-on: ubuntu-latest
|
||||
name: prerequisites
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- if: github.event_name == 'pull_request'
|
||||
name: Install Schema Tools
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/schema-tools
|
||||
- name: Build codegen binaries
|
||||
@@ -99,18 +104,18 @@ jobs:
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
- if: github.event_name == 'pull_request'
|
||||
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
|
||||
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:
|
||||
message: |
|
||||
${{ env.SCHEMA_CHANGES }}
|
||||
comment_tag: schemaCheck
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
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
|
||||
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
|
||||
with:
|
||||
labels: impact/no-changelog-required
|
||||
number: ${{ github.event.issue.number }}
|
||||
@@ -118,7 +123,8 @@ jobs:
|
||||
- name: Build Provider
|
||||
run: make provider
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -126,25 +132,66 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- 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
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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
|
||||
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in building provider prerequisites
|
||||
fields: repo,commit,author,action
|
||||
@@ -153,7 +200,7 @@ jobs:
|
||||
needs: prerequisites
|
||||
runs-on: pulumi-ubuntu-8core
|
||||
strategy:
|
||||
fail-fast: true
|
||||
fail-fast: ${{ ! contains(github.actor, 'renovate') }}
|
||||
matrix:
|
||||
language:
|
||||
- nodejs
|
||||
@@ -164,50 +211,50 @@ jobs:
|
||||
name: build_sdks
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -222,7 +269,8 @@ jobs:
|
||||
- name: Build SDK
|
||||
run: make build_${{ matrix.language }}
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -230,18 +278,59 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- run: git status --porcelain
|
||||
- name: Tar SDK folder
|
||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure while building SDKs
|
||||
fields: repo,commit,author,action
|
||||
@@ -259,56 +348,57 @@ jobs:
|
||||
- dotnet
|
||||
- go
|
||||
- java
|
||||
- yaml
|
||||
name: test
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -319,11 +409,13 @@ jobs:
|
||||
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
|
||||
-exec chmod +x {} \;
|
||||
- name: Download SDK
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
- name: UnTar SDK folder
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
|
||||
github.workspace}}/sdk/${{ matrix.language}}
|
||||
- name: Update path
|
||||
@@ -336,18 +428,23 @@ jobs:
|
||||
pip3 install virtualenv==20.0.23
|
||||
pip3 install pipenv
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: make install_${{ matrix.language}}_sdk
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
- name: Generate Pulumi Access Token
|
||||
id: generate_pulumi_token
|
||||
uses: pulumi/auth-actions@1c89817aab0c66407723cdef72b05266e7376640 # v1.0.1
|
||||
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 }}
|
||||
organization: pulumi
|
||||
requested-token-type: urn:pulumi:token-type:access_token:organization
|
||||
export-environment-variables: false
|
||||
- name: Export AWS Credentials
|
||||
uses: pulumi/esc-action@41fd832f44f4820124b5350b5f84a00f741f234e # v1.3.0
|
||||
env:
|
||||
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
|
||||
with:
|
||||
environment: logins/pulumi-ci
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v0
|
||||
uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9
|
||||
with:
|
||||
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
|
||||
}}/locations/global/workloadIdentityPools/${{
|
||||
@@ -355,7 +452,7 @@ jobs:
|
||||
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
|
||||
- name: Setup gcloud auth
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
|
||||
with:
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
- name: Install gotestfmt
|
||||
@@ -367,10 +464,10 @@ jobs:
|
||||
run: >-
|
||||
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'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in SDK tests
|
||||
fields: repo,commit,author,action
|
||||
@@ -381,21 +478,21 @@ jobs:
|
||||
name: publish
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- 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:
|
||||
tool-cache: false
|
||||
dotnet: false
|
||||
@@ -404,13 +501,13 @@ jobs:
|
||||
swap-storage: true
|
||||
large-packages: false
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-region: us-east-2
|
||||
@@ -420,7 +517,7 @@ jobs:
|
||||
role-external-id: upload-pulumi-release
|
||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v5
|
||||
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
|
||||
env:
|
||||
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||
with:
|
||||
@@ -428,7 +525,7 @@ jobs:
|
||||
version: latest
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing binaries
|
||||
fields: repo,commit,author,action
|
||||
@@ -439,46 +536,46 @@ jobs:
|
||||
name: publish_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Checkout Scripts Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
path: ci-scripts
|
||||
repository: pulumi/scripts
|
||||
- run: echo "ci-scripts" >> .git/info/exclude
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Download python SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: python-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -486,7 +583,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
|
||||
${{github.workspace}}/sdk/python
|
||||
- name: Download dotnet SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: dotnet-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -494,7 +591,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
|
||||
${{github.workspace}}/sdk/dotnet
|
||||
- name: Download nodejs SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: nodejs-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -510,78 +607,30 @@ jobs:
|
||||
PYPI_PUBLISH_ARTIFACTS: all
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing SDK
|
||||
fields: repo,commit,author,action
|
||||
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:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
persist-credentials: false
|
||||
ref: ${{ env.PR_COMMIT_SHA }}
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.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@v4
|
||||
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
|
||||
with:
|
||||
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
||||
args: -c ../.golangci.yml
|
||||
|
||||
24
.github/workflows/command-dispatch.yml
vendored
24
.github/workflows/command-dispatch.yml
vendored
@@ -24,39 +24,37 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
jobs:
|
||||
command-dispatch-for-testing:
|
||||
runs-on: ubuntu-latest
|
||||
name: command-dispatch-for-testing
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- uses: peter-evans/slash-command-dispatch@v2
|
||||
- uses: peter-evans/slash-command-dispatch@13bc09769d122a64f75aa5037256f6f2d78be8c4 # v4.0.0
|
||||
with:
|
||||
token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
reaction-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
299
.github/workflows/prerelease.yml
vendored
299
.github/workflows/prerelease.yml
vendored
@@ -6,6 +6,13 @@ on:
|
||||
tags:
|
||||
- v*.*.*-**
|
||||
env:
|
||||
AZURE_SIGNING_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
|
||||
AZURE_SIGNING_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
|
||||
AZURE_SIGNING_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
|
||||
AZURE_SIGNING_KEY_VAULT_URI: ${{ secrets.AZURE_SIGNING_KEY_VAULT_URI }}
|
||||
SKIP_SIGNING: ${{ secrets.AZURE_SIGNING_CLIENT_ID == '' &&
|
||||
secrets.AZURE_SIGNING_CLIENT_SECRET == '' && secrets.AZURE_SIGNING_TENANT_ID
|
||||
== '' && secrets.AZURE_SIGNING_KEY_VAULT_URI == '' }}
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
PROVIDER: docker-build
|
||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||
@@ -23,29 +30,27 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
IS_PRERELEASE: true
|
||||
jobs:
|
||||
prerequisites:
|
||||
@@ -53,28 +58,28 @@ jobs:
|
||||
name: prerequisites
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- if: github.event_name == 'pull_request'
|
||||
name: Install Schema Tools
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/schema-tools
|
||||
- name: Build codegen binaries
|
||||
@@ -91,18 +96,18 @@ jobs:
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
- if: github.event_name == 'pull_request'
|
||||
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
|
||||
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:
|
||||
message: |
|
||||
${{ env.SCHEMA_CHANGES }}
|
||||
comment_tag: schemaCheck
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
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
|
||||
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
|
||||
with:
|
||||
labels: impact/no-changelog-required
|
||||
number: ${{ github.event.issue.number }}
|
||||
@@ -110,7 +115,8 @@ jobs:
|
||||
- name: Build Provider
|
||||
run: make provider
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -118,25 +124,66 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- 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
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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
|
||||
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in building provider prerequisites
|
||||
fields: repo,commit,author,action
|
||||
@@ -145,7 +192,7 @@ jobs:
|
||||
needs: prerequisites
|
||||
runs-on: pulumi-ubuntu-8core
|
||||
strategy:
|
||||
fail-fast: true
|
||||
fail-fast: ${{ ! contains(github.actor, 'renovate') }}
|
||||
matrix:
|
||||
language:
|
||||
- nodejs
|
||||
@@ -156,50 +203,50 @@ jobs:
|
||||
name: build_sdks
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -214,7 +261,8 @@ jobs:
|
||||
- name: Build SDK
|
||||
run: make build_${{ matrix.language }}
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -222,17 +270,58 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- run: git status --porcelain
|
||||
- name: Tar SDK folder
|
||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure while building SDKs
|
||||
fields: repo,commit,author,action
|
||||
@@ -250,56 +339,57 @@ jobs:
|
||||
- dotnet
|
||||
- go
|
||||
- java
|
||||
- yaml
|
||||
name: test
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -310,11 +400,13 @@ jobs:
|
||||
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
|
||||
-exec chmod +x {} \;
|
||||
- name: Download SDK
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
- name: UnTar SDK folder
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
|
||||
github.workspace}}/sdk/${{ matrix.language}}
|
||||
- name: Update path
|
||||
@@ -327,18 +419,23 @@ jobs:
|
||||
pip3 install virtualenv==20.0.23
|
||||
pip3 install pipenv
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: make install_${{ matrix.language}}_sdk
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
- name: Generate Pulumi Access Token
|
||||
id: generate_pulumi_token
|
||||
uses: pulumi/auth-actions@1c89817aab0c66407723cdef72b05266e7376640 # v1.0.1
|
||||
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 }}
|
||||
organization: pulumi
|
||||
requested-token-type: urn:pulumi:token-type:access_token:organization
|
||||
export-environment-variables: false
|
||||
- name: Export AWS Credentials
|
||||
uses: pulumi/esc-action@41fd832f44f4820124b5350b5f84a00f741f234e # v1.3.0
|
||||
env:
|
||||
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
|
||||
with:
|
||||
environment: logins/pulumi-ci
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v0
|
||||
uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9
|
||||
with:
|
||||
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
|
||||
}}/locations/global/workloadIdentityPools/${{
|
||||
@@ -346,7 +443,7 @@ jobs:
|
||||
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
|
||||
- name: Setup gcloud auth
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
|
||||
with:
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
- name: Install gotestfmt
|
||||
@@ -358,10 +455,10 @@ jobs:
|
||||
run: >-
|
||||
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'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in SDK tests
|
||||
fields: repo,commit,author,action
|
||||
@@ -372,21 +469,21 @@ jobs:
|
||||
name: publish
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- 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:
|
||||
tool-cache: false
|
||||
dotnet: false
|
||||
@@ -395,13 +492,13 @@ jobs:
|
||||
swap-storage: true
|
||||
large-packages: false
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-region: us-east-2
|
||||
@@ -411,7 +508,7 @@ jobs:
|
||||
role-external-id: upload-pulumi-release
|
||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v5
|
||||
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
|
||||
env:
|
||||
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||
with:
|
||||
@@ -419,7 +516,7 @@ jobs:
|
||||
version: latest
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing binaries
|
||||
fields: repo,commit,author,action
|
||||
@@ -430,46 +527,46 @@ jobs:
|
||||
name: publish_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Checkout Scripts Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
path: ci-scripts
|
||||
repository: pulumi/scripts
|
||||
- run: echo "ci-scripts" >> .git/info/exclude
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Download python SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: python-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -477,7 +574,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
|
||||
${{github.workspace}}/sdk/python
|
||||
- name: Download dotnet SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: dotnet-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -485,7 +582,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
|
||||
${{github.workspace}}/sdk/dotnet
|
||||
- name: Download nodejs SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: nodejs-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -501,7 +598,7 @@ jobs:
|
||||
PYPI_PUBLISH_ARTIFACTS: all
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing SDK
|
||||
fields: repo,commit,author,action
|
||||
@@ -513,37 +610,37 @@ jobs:
|
||||
name: publish_java_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download java SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: java-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -551,7 +648,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
||||
${{github.workspace}}/sdk/java
|
||||
- name: Publish Java SDK
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
env:
|
||||
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
|
||||
with:
|
||||
@@ -564,16 +661,16 @@ jobs:
|
||||
needs: publish_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Download go SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: go-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
|
||||
26
.github/workflows/pull-request.yml
vendored
26
.github/workflows/pull-request.yml
vendored
@@ -21,44 +21,42 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
jobs:
|
||||
comment-on-pr:
|
||||
runs-on: ubuntu-latest
|
||||
name: comment-on-pr
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- name: Comment PR
|
||||
uses: thollander/actions-comment-pull-request@v2
|
||||
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
|
||||
with:
|
||||
message: >
|
||||
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
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
if: github.event.pull_request.head.repo.full_name != github.repository
|
||||
|
||||
301
.github/workflows/release.yml
vendored
301
.github/workflows/release.yml
vendored
@@ -7,6 +7,13 @@ on:
|
||||
- v*.*.*
|
||||
- "!v*.*.*-**"
|
||||
env:
|
||||
AZURE_SIGNING_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
|
||||
AZURE_SIGNING_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
|
||||
AZURE_SIGNING_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
|
||||
AZURE_SIGNING_KEY_VAULT_URI: ${{ secrets.AZURE_SIGNING_KEY_VAULT_URI }}
|
||||
SKIP_SIGNING: ${{ secrets.AZURE_SIGNING_CLIENT_ID == '' &&
|
||||
secrets.AZURE_SIGNING_CLIENT_SECRET == '' && secrets.AZURE_SIGNING_TENANT_ID
|
||||
== '' && secrets.AZURE_SIGNING_KEY_VAULT_URI == '' }}
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
PROVIDER: docker-build
|
||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||
@@ -24,57 +31,55 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
jobs:
|
||||
prerequisites:
|
||||
runs-on: ubuntu-latest
|
||||
name: prerequisites
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- if: github.event_name == 'pull_request'
|
||||
name: Install Schema Tools
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/schema-tools
|
||||
- name: Build codegen binaries
|
||||
@@ -91,18 +96,18 @@ jobs:
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
- if: github.event_name == 'pull_request'
|
||||
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
|
||||
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:
|
||||
message: |
|
||||
${{ env.SCHEMA_CHANGES }}
|
||||
comment_tag: schemaCheck
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
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
|
||||
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
|
||||
with:
|
||||
labels: impact/no-changelog-required
|
||||
number: ${{ github.event.issue.number }}
|
||||
@@ -110,7 +115,8 @@ jobs:
|
||||
- name: Build Provider
|
||||
run: make provider
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -118,25 +124,66 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- 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
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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
|
||||
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in building provider prerequisites
|
||||
fields: repo,commit,author,action
|
||||
@@ -145,7 +192,7 @@ jobs:
|
||||
needs: prerequisites
|
||||
runs-on: pulumi-ubuntu-8core
|
||||
strategy:
|
||||
fail-fast: true
|
||||
fail-fast: ${{ ! contains(github.actor, 'renovate') }}
|
||||
matrix:
|
||||
language:
|
||||
- nodejs
|
||||
@@ -156,50 +203,50 @@ jobs:
|
||||
name: build_sdks
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -214,7 +261,8 @@ jobs:
|
||||
- name: Build SDK
|
||||
run: make build_${{ matrix.language }}
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -222,17 +270,58 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- run: git status --porcelain
|
||||
- name: Tar SDK folder
|
||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure while building SDKs
|
||||
fields: repo,commit,author,action
|
||||
@@ -250,56 +339,57 @@ jobs:
|
||||
- dotnet
|
||||
- go
|
||||
- java
|
||||
- yaml
|
||||
name: test
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -310,11 +400,13 @@ jobs:
|
||||
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
|
||||
-exec chmod +x {} \;
|
||||
- name: Download SDK
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
- name: UnTar SDK folder
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
|
||||
github.workspace}}/sdk/${{ matrix.language}}
|
||||
- name: Update path
|
||||
@@ -327,18 +419,23 @@ jobs:
|
||||
pip3 install virtualenv==20.0.23
|
||||
pip3 install pipenv
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: make install_${{ matrix.language}}_sdk
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
- name: Generate Pulumi Access Token
|
||||
id: generate_pulumi_token
|
||||
uses: pulumi/auth-actions@1c89817aab0c66407723cdef72b05266e7376640 # v1.0.1
|
||||
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 }}
|
||||
organization: pulumi
|
||||
requested-token-type: urn:pulumi:token-type:access_token:organization
|
||||
export-environment-variables: false
|
||||
- name: Export AWS Credentials
|
||||
uses: pulumi/esc-action@41fd832f44f4820124b5350b5f84a00f741f234e # v1.3.0
|
||||
env:
|
||||
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
|
||||
with:
|
||||
environment: logins/pulumi-ci
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v0
|
||||
uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9
|
||||
with:
|
||||
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
|
||||
}}/locations/global/workloadIdentityPools/${{
|
||||
@@ -346,7 +443,7 @@ jobs:
|
||||
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
|
||||
- name: Setup gcloud auth
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
|
||||
with:
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
- name: Install gotestfmt
|
||||
@@ -358,10 +455,10 @@ jobs:
|
||||
run: >-
|
||||
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'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in SDK tests
|
||||
fields: repo,commit,author,action
|
||||
@@ -372,21 +469,21 @@ jobs:
|
||||
name: publish
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- 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:
|
||||
tool-cache: false
|
||||
dotnet: false
|
||||
@@ -395,13 +492,13 @@ jobs:
|
||||
swap-storage: true
|
||||
large-packages: false
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-region: us-east-2
|
||||
@@ -411,7 +508,7 @@ jobs:
|
||||
role-external-id: upload-pulumi-release
|
||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v5
|
||||
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
|
||||
env:
|
||||
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||
with:
|
||||
@@ -419,7 +516,7 @@ jobs:
|
||||
version: latest
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing binaries
|
||||
fields: repo,commit,author,action
|
||||
@@ -430,46 +527,46 @@ jobs:
|
||||
name: publish_sdks
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Checkout Scripts Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
path: ci-scripts
|
||||
repository: pulumi/scripts
|
||||
- run: echo "ci-scripts" >> .git/info/exclude
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Download python SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: python-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -477,7 +574,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
|
||||
${{github.workspace}}/sdk/python
|
||||
- name: Download dotnet SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: dotnet-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -485,7 +582,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
|
||||
${{github.workspace}}/sdk/dotnet
|
||||
- name: Download nodejs SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: nodejs-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -501,7 +598,7 @@ jobs:
|
||||
PYPI_PUBLISH_ARTIFACTS: all
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in publishing SDK
|
||||
fields: repo,commit,author,action
|
||||
@@ -513,37 +610,37 @@ jobs:
|
||||
name: publish_java_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download java SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: java-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -551,7 +648,7 @@ jobs:
|
||||
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
||||
${{github.workspace}}/sdk/java
|
||||
- name: Publish Java SDK
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
env:
|
||||
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
|
||||
with:
|
||||
@@ -564,16 +661,16 @@ jobs:
|
||||
needs: publish_sdk
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Download go SDK
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: go-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
@@ -595,7 +692,7 @@ jobs:
|
||||
needs: publish_go_sdk
|
||||
steps:
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Dispatch Event
|
||||
|
||||
244
.github/workflows/run-acceptance-tests.yml
vendored
244
.github/workflows/run-acceptance-tests.yml
vendored
@@ -27,29 +27,27 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }}
|
||||
jobs:
|
||||
comment-notification:
|
||||
@@ -62,7 +60,7 @@ jobs:
|
||||
run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
|
||||
>> "$GITHUB_OUTPUT"
|
||||
- name: Update with Result
|
||||
uses: peter-evans/create-or-update-comment@v1
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
with:
|
||||
token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
||||
@@ -74,29 +72,30 @@ jobs:
|
||||
name: prerequisites
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
persist-credentials: false
|
||||
ref: ${{ env.PR_COMMIT_SHA }}
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- if: github.event_name == 'pull_request'
|
||||
name: Install Schema Tools
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/schema-tools
|
||||
- name: Build codegen binaries
|
||||
@@ -113,18 +112,18 @@ jobs:
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
- if: github.event_name == 'pull_request'
|
||||
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
|
||||
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:
|
||||
message: |
|
||||
${{ env.SCHEMA_CHANGES }}
|
||||
comment_tag: schemaCheck
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
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
|
||||
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
|
||||
with:
|
||||
labels: impact/no-changelog-required
|
||||
number: ${{ github.event.issue.number }}
|
||||
@@ -132,7 +131,8 @@ jobs:
|
||||
- name: Build Provider
|
||||
run: make provider
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -140,25 +140,66 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- 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
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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
|
||||
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
- if: failure() && github.event_name == 'push'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in building provider prerequisites
|
||||
fields: repo,commit,author,action
|
||||
@@ -169,7 +210,7 @@ jobs:
|
||||
needs: prerequisites
|
||||
runs-on: pulumi-ubuntu-8core
|
||||
strategy:
|
||||
fail-fast: true
|
||||
fail-fast: ${{ ! contains(github.actor, 'renovate') }}
|
||||
matrix:
|
||||
language:
|
||||
- nodejs
|
||||
@@ -180,51 +221,52 @@ jobs:
|
||||
name: build_sdks
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
persist-credentials: false
|
||||
ref: ${{ env.PR_COMMIT_SHA }}
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -239,7 +281,8 @@ jobs:
|
||||
- name: Build SDK
|
||||
run: make build_${{ matrix.language }}
|
||||
- name: Check worktree clean
|
||||
uses: pulumi/git-status-check-action@v1
|
||||
id: worktreeClean
|
||||
uses: pulumi/git-status-check-action@54000b91124a8dd9fd6a872cb41f5dd246a46e7c # v1.1.1
|
||||
with:
|
||||
allowed-changes: |-
|
||||
sdk/**/pulumi-plugin.json
|
||||
@@ -247,18 +290,59 @@ jobs:
|
||||
sdk/go/**/pulumiUtilities.go
|
||||
sdk/nodejs/package.json
|
||||
sdk/python/pyproject.toml
|
||||
- name: Commit ${{ matrix.language }} SDK changes for Renovate
|
||||
if: failure() && steps.worktreeClean.outcome == 'failure' &&
|
||||
contains(github.actor, 'renovate') && github.event_name ==
|
||||
'pull_request'
|
||||
shell: bash
|
||||
run: >
|
||||
git diff --quiet -- sdk && echo "no changes to sdk" && exit
|
||||
|
||||
git config --global user.email "bot@pulumi.com"
|
||||
|
||||
git config --global user.name "pulumi-bot"
|
||||
|
||||
# Stash local changes and check out the PR's branch directly.
|
||||
|
||||
git stash
|
||||
|
||||
git fetch
|
||||
|
||||
git checkout "origin/$HEAD_REF"
|
||||
|
||||
|
||||
# Apply and add our changes, but don't commit any files we expect to
|
||||
|
||||
# always change due to versioning.
|
||||
|
||||
git stash pop
|
||||
|
||||
git add sdk
|
||||
|
||||
git reset sdk/python/*/pulumi-plugin.json sdk/python/pyproject.toml sdk/dotnet/pulumi-plugin.json sdk/dotnet/Pulumi.*.csproj sdk/go/*/pulumi-plugin.json sdk/go/*/internal/pulumiUtilities.go sdk/nodejs/package.json
|
||||
|
||||
git commit -m 'Commit ${{ matrix.language }} SDK for Renovate'
|
||||
|
||||
|
||||
# Push with pulumi-bot credentials to trigger a re-run of the
|
||||
|
||||
# workflow. https://github.com/orgs/community/discussions/25702
|
||||
|
||||
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
|
||||
env:
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
- run: git status --porcelain
|
||||
- name: Tar SDK folder
|
||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
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@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure while building SDKs
|
||||
fields: repo,commit,author,action
|
||||
@@ -278,57 +362,59 @@ jobs:
|
||||
- dotnet
|
||||
- go
|
||||
- java
|
||||
- yaml
|
||||
name: test
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
persist-credentials: false
|
||||
ref: ${{ env.PR_COMMIT_SHA }}
|
||||
- id: version
|
||||
name: Set Provider Version
|
||||
uses: pulumi/provider-version-action@v1
|
||||
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0
|
||||
with:
|
||||
set-env: PROVIDER_VERSION
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
with:
|
||||
java-version: ${{ env.JAVAVERSION }}
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v3
|
||||
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
|
||||
with:
|
||||
gradle-version: "7.6"
|
||||
- name: Download provider + tfgen binaries
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download provider
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
|
||||
path: ${{ github.workspace }}/bin
|
||||
@@ -339,11 +425,13 @@ jobs:
|
||||
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
|
||||
-exec chmod +x {} \;
|
||||
- name: Download SDK
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: ${{ matrix.language }}-sdk.tar.gz
|
||||
path: ${{ github.workspace}}/sdk/
|
||||
- name: UnTar SDK folder
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
|
||||
github.workspace}}/sdk/${{ matrix.language}}
|
||||
- name: Update path
|
||||
@@ -356,18 +444,23 @@ jobs:
|
||||
pip3 install virtualenv==20.0.23
|
||||
pip3 install pipenv
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.language != 'yaml' }}
|
||||
run: make install_${{ matrix.language}}_sdk
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
- name: Generate Pulumi Access Token
|
||||
id: generate_pulumi_token
|
||||
uses: pulumi/auth-actions@1c89817aab0c66407723cdef72b05266e7376640 # v1.0.1
|
||||
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 }}
|
||||
organization: pulumi
|
||||
requested-token-type: urn:pulumi:token-type:access_token:organization
|
||||
export-environment-variables: false
|
||||
- name: Export AWS Credentials
|
||||
uses: pulumi/esc-action@41fd832f44f4820124b5350b5f84a00f741f234e # v1.3.0
|
||||
env:
|
||||
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
|
||||
with:
|
||||
environment: logins/pulumi-ci
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v0
|
||||
uses: google-github-actions/auth@7b53cdc2a387814ed14eec026287aac689ae8c9b # v2.1.9
|
||||
with:
|
||||
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
|
||||
}}/locations/global/workloadIdentityPools/${{
|
||||
@@ -375,7 +468,7 @@ jobs:
|
||||
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
|
||||
- name: Setup gcloud auth
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
|
||||
with:
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
- name: Install gotestfmt
|
||||
@@ -387,10 +480,10 @@ jobs:
|
||||
run: >-
|
||||
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'
|
||||
name: Notify Slack
|
||||
uses: 8398a7/action-slack@v3
|
||||
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
|
||||
with:
|
||||
author_name: Failure in SDK tests
|
||||
fields: repo,commit,author,action
|
||||
@@ -402,33 +495,40 @@ jobs:
|
||||
name: sentinel
|
||||
steps:
|
||||
- name: Mark workflow as successful
|
||||
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76
|
||||
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76 # v1.1.13
|
||||
with:
|
||||
authToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
context: Sentinel
|
||||
state: success
|
||||
description: Sentinel checks passed
|
||||
sha: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
permissions:
|
||||
statuses: write
|
||||
if: github.event_name == 'repository_dispatch' ||
|
||||
github.event.pull_request.head.repo.full_name == github.repository
|
||||
needs:
|
||||
- test
|
||||
- prerequisites
|
||||
- lint
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
persist-credentials: false
|
||||
ref: ${{ env.PR_COMMIT_SHA }}
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.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@v4
|
||||
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
|
||||
with:
|
||||
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
||||
args: -c ../.golangci.yml
|
||||
|
||||
48
.github/workflows/weekly-pulumi-update.yml
vendored
48
.github/workflows/weekly-pulumi-update.yml
vendored
@@ -23,59 +23,57 @@ env:
|
||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
||||
GOVERSION: 1.21.x
|
||||
NODEVERSION: 20.x
|
||||
PYTHONVERSION: "3.11"
|
||||
DOTNETVERSION: |
|
||||
6.0.x
|
||||
3.1.301
|
||||
GOVERSION: "1.21.x"
|
||||
NODEVERSION: "20.x"
|
||||
PYTHONVERSION: "3.11.8"
|
||||
DOTNETVERSION: "8.0.x"
|
||||
JAVAVERSION: "11"
|
||||
AWS_REGION: us-west-2
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
|
||||
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
|
||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||
AWS_REGION: us-west-2
|
||||
AZURE_LOCATION: westus
|
||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||
GOOGLE_PROJECT: pulumi-ci-gcp-provider
|
||||
GOOGLE_PROJECT_NUMBER: 895284651812
|
||||
GOOGLE_PROJECT_NUMBER: "895284651812"
|
||||
GOOGLE_REGION: us-central1
|
||||
GOOGLE_ZONE: us-central1-a
|
||||
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
PULUMI_API: https://api.pulumi-staging.io
|
||||
jobs:
|
||||
weekly-pulumi-update:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
lfs: true
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOVERSION }}
|
||||
cache-dependency-path: "**/*.sum"
|
||||
- name: Install pulumictl
|
||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||
uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0
|
||||
with:
|
||||
repo: pulumi/pulumictl
|
||||
- name: Install Pulumi CLI
|
||||
uses: pulumi/actions@v5
|
||||
uses: pulumi/actions@9519177da243fd32cab35cdbf19cce1ab7472fcc # v6.2.0
|
||||
- name: Setup DotNet
|
||||
uses: actions/setup-dotnet@v4
|
||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNETVERSION }}
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODEVERSION }}
|
||||
registry-url: https://registry.npmjs.org
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHONVERSION }}
|
||||
- name: Update Pulumi/Pulumi
|
||||
@@ -127,12 +125,14 @@ jobs:
|
||||
- name: Create PR
|
||||
id: create-pr
|
||||
if: steps.gomod.outputs.changes != 0
|
||||
uses: repo-sync/pull-request@v2.6.2
|
||||
with:
|
||||
source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }}
|
||||
destination_branch: main
|
||||
pr_title: Automated Pulumi/Pulumi upgrade
|
||||
github_token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
run: >
|
||||
ver=$(cat .pulumi.version)
|
||||
|
||||
msg="Automated upgrade: bump pulumi/pulumi to ${ver}"
|
||||
|
||||
# See https://github.com/cli/cli/issues/6485#issuecomment-2560935183 for --head workaround
|
||||
|
||||
gh pr create -t "$msg" -b "$msg" --head $(git branch --show-current)
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||
name: weekly-pulumi-update
|
||||
|
||||
@@ -7,7 +7,7 @@ linters:
|
||||
- depguard
|
||||
- errcheck
|
||||
- exhaustive
|
||||
- exportloopref
|
||||
- copyloopvar
|
||||
- gci
|
||||
- gocritic
|
||||
- gofumpt
|
||||
|
||||
@@ -2,24 +2,43 @@
|
||||
|
||||
project_name: pulumi-docker-build
|
||||
builds:
|
||||
- dir: provider
|
||||
- id: build-provider
|
||||
dir: provider
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
- GO111MODULE=on
|
||||
goos:
|
||||
- darwin
|
||||
- windows
|
||||
- linux
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
ignore: []
|
||||
ignore: &a1 []
|
||||
main: ./cmd/pulumi-resource-docker-build/
|
||||
ldflags:
|
||||
- -X
|
||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
||||
ldflags: &a2
|
||||
- -s
|
||||
- -w
|
||||
- -X
|
||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
||||
binary: pulumi-resource-docker-build
|
||||
- id: build-provider-sign-windows
|
||||
dir: provider
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
- GO111MODULE=on
|
||||
goos:
|
||||
- windows
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
ignore: *a1
|
||||
main: ./cmd/pulumi-resource-docker-build/
|
||||
ldflags: *a2
|
||||
binary: pulumi-resource-docker-build
|
||||
hooks:
|
||||
post:
|
||||
- make sign-goreleaser-exe-{{ .Arch }}
|
||||
archives:
|
||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||
id: archive
|
||||
|
||||
@@ -2,24 +2,43 @@
|
||||
|
||||
project_name: pulumi-docker-build
|
||||
builds:
|
||||
- dir: provider
|
||||
- id: build-provider
|
||||
dir: provider
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
- GO111MODULE=on
|
||||
goos:
|
||||
- darwin
|
||||
- windows
|
||||
- linux
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
ignore: []
|
||||
ignore: &a1 []
|
||||
main: ./cmd/pulumi-resource-docker-build/
|
||||
ldflags:
|
||||
- -X
|
||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
||||
ldflags: &a2
|
||||
- -s
|
||||
- -w
|
||||
- -X
|
||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
||||
binary: pulumi-resource-docker-build
|
||||
- id: build-provider-sign-windows
|
||||
dir: provider
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
- GO111MODULE=on
|
||||
goos:
|
||||
- windows
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
ignore: *a1
|
||||
main: ./cmd/pulumi-resource-docker-build/
|
||||
ldflags: *a2
|
||||
binary: pulumi-resource-docker-build
|
||||
hooks:
|
||||
post:
|
||||
- make sign-goreleaser-exe-{{ .Arch }}
|
||||
archives:
|
||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||
id: archive
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.128.0
|
||||
3.165.0
|
||||
|
||||
75
CHANGELOG.md
75
CHANGELOG.md
@@ -1,5 +1,74 @@
|
||||
## Unreleased
|
||||
|
||||
### Changed
|
||||
|
||||
- Respond to cancel for exec builds. (<https://github.com/pulumi/pulumi-docker-build/pull/522>)
|
||||
|
||||
## 0.0.11 (2025-04-11)
|
||||
|
||||
### Changed
|
||||
|
||||
- Upgraded buildx from 0.18.0 to 0.20.1 to remain compatible with upcoming
|
||||
changes to GitHub Actions. (https://github.com/pulumi/pulumi-docker-build/pull/519)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Upgrading docker-build no longer causes resource replacements. (<https://github.com/pulumi/pulumi-docker-build/issues/404>)
|
||||
- Fixed a panic that could occur in `exec` mode. (https://github.com/pulumi/pulumi-docker-build/issues/482)
|
||||
- The default GitHub Actions cache scope is now correctly set as `buildkit`. (https://github.com/pulumi/pulumi-docker-build/issues/496)
|
||||
|
||||
## 0.0.10 (2025-01-27)
|
||||
|
||||
### Changed
|
||||
|
||||
- Windows binaries are now signed. (https://github.com/pulumi/pulumi-docker-build/pull/429)
|
||||
|
||||
## 0.0.9 (2025-01-16)
|
||||
|
||||
### Changed
|
||||
|
||||
- Upgraded pulumi-go-provider to v0.24.1. (https://github.com/pulumi/pulumi-docker-build/pull/413)
|
||||
|
||||
### Fixed
|
||||
|
||||
- `ACTIONS_RUNTIME_TOKEN` is now correctly marked as a secret. (https://github.com/pulumi/pulumi-docker-build/issues/403)
|
||||
|
||||
## 0.0.8 (2024-12-10)
|
||||
|
||||
### 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
|
||||
|
||||
- Refreshing an `Index` resource will no longer fail if its stored credentials
|
||||
have expired. (<https://github.com/pulumi/pulumi-docker-build/pull/194>)
|
||||
|
||||
### Changed
|
||||
|
||||
- Local and tar exporters will now trigger an update if an export doesn't exist
|
||||
at the expected path. (<https://github.com/pulumi/pulumi-docker-build/pull/195>)
|
||||
|
||||
## 0.0.5 (2024-08-08)
|
||||
|
||||
### Fixed
|
||||
@@ -23,9 +92,9 @@
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the default value for `ACTIONS_CACHE_URL` when using GitHub action caching. (https://github.com/pulumi/pulumi-docker-build/pull/80)
|
||||
- Fixed Java SDK publishing. (https://github.com/pulumi/pulumi-docker-build/pull/89)
|
||||
- Fixed a panic that could occur when `context` was omitted. (https://github.com/pulumi/pulumi-docker-build/pull/83)
|
||||
- Fixed the default value for `ACTIONS_CACHE_URL` when using GitHub action caching. (<https://github.com/pulumi/pulumi-docker-build/pull/80>)
|
||||
- Fixed Java SDK publishing. (<https://github.com/pulumi/pulumi-docker-build/pull/89>)
|
||||
- Fixed a panic that could occur when `context` was omitted. (<https://github.com/pulumi/pulumi-docker-build/pull/83>)
|
||||
|
||||
### Changed
|
||||
|
||||
|
||||
59
Makefile
59
Makefile
@@ -89,11 +89,11 @@ ${PULUMI}: go.sum
|
||||
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-dotnet/pulumi-language-dotnet/v3
|
||||
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
|
||||
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint@8b37f14
|
||||
|
||||
define pulumi_login
|
||||
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
|
||||
@@ -259,3 +259,58 @@ sdk/java: $(PULUMI) bin/${PROVIDER}
|
||||
docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -name '*.md') ${SCHEMA_PATH}
|
||||
go generate docs/generate.go
|
||||
@touch docs
|
||||
|
||||
# Set these variables to enable signing of the windows binary
|
||||
AZURE_SIGNING_CLIENT_ID ?=
|
||||
AZURE_SIGNING_CLIENT_SECRET ?=
|
||||
AZURE_SIGNING_TENANT_ID ?=
|
||||
AZURE_SIGNING_KEY_VAULT_URI ?=
|
||||
SKIP_SIGNING ?=
|
||||
|
||||
bin/jsign-6.0.jar:
|
||||
wget https://github.com/ebourg/jsign/releases/download/6.0/jsign-6.0.jar --output-document=bin/jsign-6.0.jar
|
||||
|
||||
sign-goreleaser-exe-amd64: GORELEASER_ARCH := amd64_v1
|
||||
sign-goreleaser-exe-arm64: GORELEASER_ARCH := arm64
|
||||
|
||||
# Set the shell to bash to allow for the use of bash syntax.
|
||||
sign-goreleaser-exe-%: SHELL:=/bin/bash
|
||||
sign-goreleaser-exe-%: bin/jsign-6.0.jar
|
||||
@# Only sign windows binary if fully configured.
|
||||
@# Test variables set by joining with | between and looking for || showing at least one variable is empty.
|
||||
@# Move the binary to a temporary location and sign it there to avoid the target being up-to-date if signing fails.
|
||||
@set -e; \
|
||||
if [[ "${SKIP_SIGNING}" != "true" ]]; then \
|
||||
if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_KEY_VAULT_URI}|" == *"||"* ]]; then \
|
||||
echo "Can't sign windows binaries as required configuration not set: AZURE_SIGNING_CLIENT_ID, AZURE_SIGNING_CLIENT_SECRET, AZURE_SIGNING_TENANT_ID, AZURE_SIGNING_KEY_VAULT_URI"; \
|
||||
echo "To rebuild with signing delete the unsigned windows exe file and rebuild with the fixed configuration"; \
|
||||
if [[ "${CI}" == "true" ]]; then exit 1; fi; \
|
||||
else \
|
||||
file=dist/build-provider-sign-windows_windows_${GORELEASER_ARCH}/pulumi-resource-docker-build.exe; \
|
||||
mv $${file} $${file}.unsigned; \
|
||||
az login --service-principal \
|
||||
--username "${AZURE_SIGNING_CLIENT_ID}" \
|
||||
--password "${AZURE_SIGNING_CLIENT_SECRET}" \
|
||||
--tenant "${AZURE_SIGNING_TENANT_ID}" \
|
||||
--output none; \
|
||||
ACCESS_TOKEN=$$(az account get-access-token --resource "https://vault.azure.net" | jq -r .accessToken); \
|
||||
java -jar bin/jsign-6.0.jar \
|
||||
--storetype AZUREKEYVAULT \
|
||||
--keystore "PulumiCodeSigning" \
|
||||
--url "${AZURE_SIGNING_KEY_VAULT_URI}" \
|
||||
--storepass "$${ACCESS_TOKEN}" \
|
||||
$${file}.unsigned; \
|
||||
mv $${file}.unsigned $${file}; \
|
||||
az logout; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# To make an immediately observable change to .ci-mgmt.yaml:
|
||||
#
|
||||
# - Edit .ci-mgmt.yaml
|
||||
# - Run make ci-mgmt to apply the change locally.
|
||||
#
|
||||
ci-mgmt: .ci-mgmt.yaml
|
||||
go run github.com/pulumi/ci-mgmt/provider-ci@master generate
|
||||
.PHONY: ci-mgmt
|
||||
fi
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,95 +1,97 @@
|
||||
module provider-docker-build
|
||||
|
||||
go 1.21.7
|
||||
go 1.23.1
|
||||
|
||||
toolchain go1.21.9
|
||||
toolchain go1.24.2
|
||||
|
||||
require (
|
||||
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-docker-build/sdk/go/dockerbuild v0.0.11
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.165.0
|
||||
)
|
||||
|
||||
require (
|
||||
dario.cat/mergo v1.0.0 // indirect
|
||||
github.com/BurntSushi/toml v1.2.1 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||
dario.cat/mergo v1.0.1 // indirect
|
||||
github.com/BurntSushi/toml v1.4.0 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||
github.com/ProtonMail/go-crypto v1.1.6 // indirect
|
||||
github.com/agext/levenshtein v1.2.3 // indirect
|
||||
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||
github.com/atotto/clipboard v0.1.4 // indirect
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||
github.com/blang/semver v3.5.1+incompatible // indirect
|
||||
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
||||
github.com/charmbracelet/bubbletea v0.25.0 // indirect
|
||||
github.com/charmbracelet/lipgloss v0.7.1 // indirect
|
||||
github.com/charmbracelet/bubbles v0.20.0 // indirect
|
||||
github.com/charmbracelet/bubbletea v1.3.4 // indirect
|
||||
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
|
||||
github.com/charmbracelet/lipgloss v1.1.0 // indirect
|
||||
github.com/charmbracelet/x/ansi v0.8.0 // indirect
|
||||
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
|
||||
github.com/charmbracelet/x/term v0.2.1 // indirect
|
||||
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||
github.com/cloudflare/circl v1.3.7 // indirect
|
||||
github.com/containerd/console v1.0.4 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
||||
github.com/djherbis/times v1.5.0 // indirect
|
||||
github.com/cloudflare/circl v1.6.0 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
|
||||
github.com/djherbis/times v1.6.0 // indirect
|
||||
github.com/emirpasic/gods v1.18.1 // indirect
|
||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // 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-git/v5 v5.12.0 // indirect
|
||||
github.com/go-git/go-billy/v5 v5.6.2 // indirect
|
||||
github.com/go-git/go-git/v5 v5.14.0 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/glog v1.2.0 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/glog v1.2.4 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/hashicorp/hcl/v2 v2.19.1 // indirect
|
||||
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
||||
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // 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-wordwrap v1.0.1 // indirect
|
||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||
github.com/muesli/reflow v0.3.0 // indirect
|
||||
github.com/muesli/termenv v0.15.2 // indirect
|
||||
github.com/muesli/termenv v0.16.0 // indirect
|
||||
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||
github.com/pgavlin/fx v0.1.6 // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.2 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pkg/term v1.1.0 // indirect
|
||||
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||
github.com/pulumi/esc v0.9.1 // indirect
|
||||
github.com/rivo/uniseg v0.4.4 // indirect
|
||||
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
||||
github.com/pulumi/esc v0.13.0 // indirect
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/rogpeppe/go-internal v1.14.1 // indirect
|
||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // 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/skeema/knownhosts v1.2.2 // indirect
|
||||
github.com/skeema/knownhosts v1.3.1 // indirect
|
||||
github.com/spf13/cast v1.5.0 // indirect
|
||||
github.com/spf13/cobra v1.8.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/cobra v1.9.1 // indirect
|
||||
github.com/spf13/pflag v1.0.6 // 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-lib v2.4.1+incompatible // indirect
|
||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||
github.com/zclconf/go-cty v1.14.1 // indirect
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
golang.org/x/crypto v0.24.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
|
||||
golang.org/x/mod v0.18.0 // indirect
|
||||
golang.org/x/net v0.26.0 // indirect
|
||||
golang.org/x/sync v0.7.0 // indirect
|
||||
golang.org/x/sys v0.21.0 // indirect
|
||||
golang.org/x/term v0.21.0 // indirect
|
||||
golang.org/x/text v0.16.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/grpc v1.63.2 // indirect
|
||||
google.golang.org/protobuf v1.33.0 // indirect
|
||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||
github.com/zclconf/go-cty v1.16.2 // indirect
|
||||
go.uber.org/atomic v1.11.0 // indirect
|
||||
golang.org/x/crypto v0.36.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
|
||||
golang.org/x/mod v0.24.0 // indirect
|
||||
golang.org/x/net v0.37.0 // indirect
|
||||
golang.org/x/sync v0.12.0 // indirect
|
||||
golang.org/x/sys v0.31.0 // indirect
|
||||
golang.org/x/term v0.30.0 // indirect
|
||||
golang.org/x/text v0.23.0 // indirect
|
||||
golang.org/x/tools v0.31.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
|
||||
google.golang.org/grpc v1.71.0 // indirect
|
||||
google.golang.org/protobuf v1.36.5 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
lukechampine.com/frand v1.4.2 // indirect
|
||||
lukechampine.com/frand v1.5.1 // indirect
|
||||
)
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
|
||||
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
|
||||
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
|
||||
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/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
|
||||
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
|
||||
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
|
||||
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
|
||||
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
|
||||
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
|
||||
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw=
|
||||
github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
|
||||
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
||||
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||
@@ -25,58 +23,69 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||
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/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
|
||||
github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY=
|
||||
github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc=
|
||||
github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
|
||||
github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
|
||||
github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E=
|
||||
github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c=
|
||||
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
|
||||
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
|
||||
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
|
||||
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
|
||||
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs=
|
||||
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk=
|
||||
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
|
||||
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
|
||||
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
|
||||
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
|
||||
github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
|
||||
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
|
||||
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
|
||||
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
|
||||
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
|
||||
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.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
|
||||
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
|
||||
github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
|
||||
github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
|
||||
github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
|
||||
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
|
||||
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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU=
|
||||
github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0=
|
||||
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
|
||||
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
|
||||
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
|
||||
github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
|
||||
github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
|
||||
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
|
||||
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
|
||||
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
|
||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
|
||||
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
|
||||
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
|
||||
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
|
||||
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
|
||||
github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM=
|
||||
github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
|
||||
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
|
||||
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
|
||||
github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys=
|
||||
github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY=
|
||||
github.com/go-git/go-git/v5 v5.14.0 h1:/MD3lCrGjCen5WfEAzKg00MJJffKhC8gzS80ycmCi60=
|
||||
github.com/go-git/go-git/v5 v5.14.0/go.mod h1:Z5Xhoia5PcWA3NF8vRLURn9E5FRhSl7dGj9ItW3Wk5k=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
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/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68=
|
||||
github.com/golang/glog v1.2.0/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/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=
|
||||
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
|
||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
||||
@@ -86,8 +95,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/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/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
|
||||
github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
|
||||
github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos=
|
||||
github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
|
||||
@@ -116,9 +125,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
|
||||
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-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
|
||||
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
|
||||
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/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
|
||||
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
|
||||
@@ -127,12 +135,10 @@ github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D
|
||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
||||
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
|
||||
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
|
||||
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
|
||||
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
|
||||
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
|
||||
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
|
||||
github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo=
|
||||
github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0=
|
||||
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
|
||||
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
|
||||
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
|
||||
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
|
||||
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
|
||||
github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc=
|
||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||
@@ -140,28 +146,28 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+
|
||||
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
|
||||
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
|
||||
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
|
||||
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
|
||||
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
|
||||
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
|
||||
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/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/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
|
||||
github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs=
|
||||
github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c=
|
||||
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/sdk/v3 v3.128.0 h1:5VPFfygxt6rva0bEYVQZXxsGAo2/D1wsb9erGOtXxzk=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.128.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/pulumi/esc v0.13.0 h1:O2MPR2koScaQ2fXwyer8Q3Dd7z+DCnaDfsgNl5mVNMk=
|
||||
github.com/pulumi/esc v0.13.0/go.mod h1:IIQo6W6Uzajt6f1RW4QvNxIRDlbK3TNQysnrwBHNo3U=
|
||||
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.11 h1:16T7aYBGcMs7oMGcRHzRO9ETHit0xVYgPRBkaFu6T3M=
|
||||
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.11/go.mod h1:Uxxd/MM83Wys2lfpbfqvY8KUmnbU9mePbxbwEda/+SM=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.165.0 h1:cglplKZOJDpqH8wa/2J250G9az/sE9eKp9fS2bC+vi8=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.165.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
||||
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
|
||||
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
|
||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
|
||||
@@ -170,83 +176,82 @@ 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/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||
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.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
|
||||
github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
|
||||
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
|
||||
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
|
||||
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
|
||||
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
|
||||
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
|
||||
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
|
||||
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.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/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/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/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/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.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA=
|
||||
github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
|
||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
github.com/zclconf/go-cty v1.16.2 h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70=
|
||||
github.com/zclconf/go-cty v1.16.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
|
||||
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
|
||||
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
|
||||
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
|
||||
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
|
||||
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
|
||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||
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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
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.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
||||
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
|
||||
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
|
||||
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/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
|
||||
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
|
||||
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.2.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.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
|
||||
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
|
||||
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
||||
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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
|
||||
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
|
||||
golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
|
||||
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
|
||||
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-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.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
|
||||
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -255,52 +260,38 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.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.5.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.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
|
||||
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||
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.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
|
||||
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
|
||||
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
|
||||
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
|
||||
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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
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.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.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
||||
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
|
||||
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
|
||||
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-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
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.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
|
||||
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
|
||||
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
|
||||
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
|
||||
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-20191204190536-9bdfabe68543/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-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
|
||||
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
|
||||
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
|
||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 h1:iK2jbkWL86DXjEx0qiHcRE9dE4/Ahua5k6V8OWFb//c=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I=
|
||||
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
|
||||
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
|
||||
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
|
||||
google.golang.org/protobuf v1.36.5/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 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
@@ -313,7 +304,7 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw=
|
||||
lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s=
|
||||
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
|
||||
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q=
|
||||
pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
|
||||
pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": "^4.0.0",
|
||||
"@pulumi/pulumi": "^3.128.0"
|
||||
"@pulumi/pulumi": "3.165.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,18 @@ import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/ecr"
|
||||
"github.com/pulumi/providertest"
|
||||
"github.com/pulumi/providertest/optproviderupgrade"
|
||||
"github.com/pulumi/providertest/pulumitest"
|
||||
"github.com/pulumi/providertest/pulumitest/assertpreview"
|
||||
"github.com/pulumi/providertest/pulumitest/opttest"
|
||||
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -35,6 +41,30 @@ func TestNodeExample(t *testing.T) {
|
||||
integration.ProgramTest(t, &test)
|
||||
}
|
||||
|
||||
func TestNodeExampleUpgrade(t *testing.T) {
|
||||
t.Parallel()
|
||||
var (
|
||||
providerName string = "docker-build"
|
||||
baselineVersion string = "0.0.7"
|
||||
)
|
||||
|
||||
cwd, err := os.Getwd()
|
||||
require.NoError(t, err)
|
||||
|
||||
options := []opttest.Option{
|
||||
opttest.DownloadProviderVersion(providerName, baselineVersion),
|
||||
opttest.LocalProviderPath(providerName, filepath.Join(cwd, "..", "bin")),
|
||||
opttest.YarnLink("@pulumi/docker-build"),
|
||||
opttest.TestInPlace(),
|
||||
}
|
||||
|
||||
test := pulumitest.NewPulumiTest(t, filepath.Join(cwd, "upgrade-node"), options...)
|
||||
result := providertest.PreviewProviderUpgrade(t, test, providerName, baselineVersion,
|
||||
optproviderupgrade.DisableAttach())
|
||||
|
||||
assertpreview.HasNoReplacements(t, result)
|
||||
}
|
||||
|
||||
// TestCaching simulates a slow build with --cache-to enabled. We aren't able
|
||||
// to directly detect cache hits, so we re-run the update and confirm it took
|
||||
// less time than the image originally took to build.
|
||||
@@ -98,7 +128,6 @@ func TestCaching(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if tt.skip {
|
||||
t.Skip("Missing environment variables")
|
||||
@@ -147,6 +176,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 {
|
||||
address string
|
||||
username string
|
||||
|
||||
20
examples/testdata/recorded/TestProviderUpgrade/upgrade-node/0.0.7/grpc.json
vendored
Normal file
20
examples/testdata/recorded/TestProviderUpgrade/upgrade-node/0.0.7/grpc.json
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{"version":"3.145.0-dev.0"}}
|
||||
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPackages","request":{"info":{"entryPoint":".","options":{},"programDirectory":"/private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node","rootDirectory":"/private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node"}},"response":{"packages":[{"kind":"resource","name":"docker-build","version":"v0.1.0-alpha.0+dev"}]}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"invokeTransforms"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"secrets"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"parameterization"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"acceptResources":true,"acceptSecrets":true,"aliasSpecs":true,"customTimeouts":{},"name":"provider-docker-build-test","object":{},"sourcePosition":{"column":23,"line":38,"uri":"file:///private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node/node_modules/@pulumi/runtime/stack.ts"},"supportsPartialValues":true,"supportsResultReporting":true,"type":"pulumi:pulumi:Stack"},"response":{"object":{},"urn":"urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test"}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"outputs":{},"urn":"urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test"},"response":{}}
|
||||
{"method":"/pulumirpc.ResourceProvider/Handshake","request":{"engineAddress":"127.0.0.1:56051","programDirectory":"/Users/rquitales/.pulumi/plugins/resource-docker-build-v0.0.7","rootDirectory":"/Users/rquitales/.pulumi/plugins/resource-docker-build-v0.0.7"}}
|
||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"v0.0.7"}}
|
||||
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"name":"default_0_1_0_alpha_0_dev","news":{"version":"0.1.0-alpha.0+dev"},"olds":{},"type":"pulumi:providers:docker-build","urn":"urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default_0_1_0_alpha_0_dev"},"response":{"inputs":{"host":""}}}
|
||||
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"acceptResources":true,"acceptSecrets":true,"args":{"host":""},"sendsOldInputs":true,"sendsOldInputsToDelete":true,"variables":{"docker-build:config:host":""}},"response":{"acceptOutputs":true,"acceptResources":true,"acceptSecrets":true,"supportsPreview":true}}
|
||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"name":"inline","news":{"buildOnPreview":true,"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"network":"default","push":false},"olds":{},"randomSeed":"gfcHtIMoX4qpk2cxRceOJcYDaSsHyPNBhhd8lYTFcqw=","type":"docker-build:index:Image","urn":"urn:pulumi:test::provider-docker-build::docker-build:index:Image::inline"},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"."},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}}}
|
||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"name":"inline","properties":{"buildOnPreview":true,"context":{"location":"."},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"type":"docker-build:index:Image","urn":"urn:pulumi:test::provider-docker-build::docker-build:index:Image::inline"},"response":{"id":"inline","properties":{"buildOnPreview":true,"context":{"location":"."},"contextHash":"a9db789a55c8ad91fe04e176aefcf0b74f86636ae12e7cd475421416672da8c1","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}}}
|
||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"acceptResources":true,"acceptSecrets":true,"aliasSpecs":true,"custom":true,"customTimeouts":{},"name":"inline","object":{"buildOnPreview":true,"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"network":"default","push":false},"parent":"urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test","propertyDependencies":{"buildOnPreview":{},"dockerfile":{},"network":{},"push":{}},"sourcePosition":{"column":16,"line":4,"uri":"file:///private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node/index.ts"},"supportsPartialValues":true,"supportsResultReporting":true,"type":"docker-build:index:Image","version":"0.1.0-alpha.0+dev"},"response":{"id":"inline","object":{"buildOnPreview":true,"context":{"location":"."},"contextHash":"a9db789a55c8ad91fe04e176aefcf0b74f86636ae12e7cd475421416672da8c1","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"urn":"urn:pulumi:test::provider-docker-build::docker-build:index:Image::inline"}}
|
||||
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"configPropertyMap":{},"info":{"entryPoint":".","options":{},"programDirectory":"/private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node","rootDirectory":"/private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node"},"loaderTarget":"127.0.0.1:56055","monitorAddress":"127.0.0.1:56054","organization":"organization","parallel":40,"program":".","project":"provider-docker-build","pwd":"/private/var/folders/xl/bqjwsf01315fs4yp20dj3x640000gn/T/TestNodeExampleUpgrade4279645683/006/upgrade-node","stack":"test"},"response":{}}
|
||||
96
examples/testdata/recorded/TestProviderUpgrade/upgrade-node/0.0.7/stack.json
vendored
Normal file
96
examples/testdata/recorded/TestProviderUpgrade/upgrade-node/0.0.7/stack.json
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"version": 3,
|
||||
"deployment": {
|
||||
"manifest": {
|
||||
"time": "2025-01-14T12:40:32.429451-08:00",
|
||||
"magic": "7c53c69df7094e39d5562ed2abf1e12099c2c54a7b9b411faca1dcb7ec1fef8a",
|
||||
"version": "v3.145.0"
|
||||
},
|
||||
"secrets_providers": {
|
||||
"type": "passphrase",
|
||||
"state": {
|
||||
"salt": "v1:EuqbHY9lEXg=:v1:xNv8Pt7D2Pf/iDkg:tOvHbUIXPITf+BgbbjqPZaWIqKD8jQ=="
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"custom": false,
|
||||
"type": "pulumi:pulumi:Stack",
|
||||
"created": "2025-01-14T20:40:27.082534Z",
|
||||
"modified": "2025-01-14T20:40:27.082534Z",
|
||||
"sourcePosition": "project:///node_modules/@pulumi/runtime/stack.ts#38,23"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default_0_1_0_alpha_0_dev",
|
||||
"custom": true,
|
||||
"id": "04f4e431-4d74-43f1-86d5-52d410f3f6e8",
|
||||
"type": "pulumi:providers:docker-build",
|
||||
"inputs": {
|
||||
"__internal": {},
|
||||
"host": ""
|
||||
},
|
||||
"outputs": {
|
||||
"host": ""
|
||||
},
|
||||
"created": "2025-01-14T20:40:28.862159Z",
|
||||
"modified": "2025-01-14T20:40:28.862159Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::inline",
|
||||
"custom": true,
|
||||
"id": "inline",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "."
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "."
|
||||
},
|
||||
"contextHash": "a9db789a55c8ad91fe04e176aefcf0b74f86636ae12e7cd475421416672da8c1",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default_0_1_0_alpha_0_dev::04f4e431-4d74-43f1-86d5-52d410f3f6e8",
|
||||
"propertyDependencies": {
|
||||
"buildOnPreview": [],
|
||||
"dockerfile": [],
|
||||
"network": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2025-01-14T20:40:32.357012Z",
|
||||
"modified": "2025-01-14T20:40:32.357012Z",
|
||||
"sourcePosition": "project:///index.ts#4,16"
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
}
|
||||
}
|
||||
944
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/stack.json
vendored
Executable file
944
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/stack.json
vendored
Executable file
@@ -0,0 +1,944 @@
|
||||
{
|
||||
"version": 3,
|
||||
"deployment": {
|
||||
"manifest": {
|
||||
"time": "2024-06-18T15:10:50.439881-07:00",
|
||||
"magic": "",
|
||||
"version": ""
|
||||
},
|
||||
"secrets_providers": {
|
||||
"type": "passphrase",
|
||||
"state": {
|
||||
"salt": "v1:uRYnzeN15MA=:v1:rpAZ+oxUTuiNyCpF:KQmWj5xMhsTrE2XhW35Gd1XoMW7RDg=="
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"custom": false,
|
||||
"type": "pulumi:pulumi:Stack",
|
||||
"outputs": {
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
]
|
||||
},
|
||||
"created": "2024-06-18T22:10:48.091797Z",
|
||||
"modified": "2024-06-18T22:10:48.091797Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default",
|
||||
"custom": true,
|
||||
"id": "b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"type": "pulumi:providers:docker-build",
|
||||
"inputs": {
|
||||
"host": ""
|
||||
},
|
||||
"outputs": {
|
||||
"host": ""
|
||||
},
|
||||
"created": "2024-06-18T22:10:48.187658Z",
|
||||
"modified": "2024-06-18T22:10:48.187658Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::secrets",
|
||||
"custom": true,
|
||||
"id": "secrets",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.secrets"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"secrets": {
|
||||
"password": "hunter2"
|
||||
},
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.secrets"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"secrets": {
|
||||
"password": "hunter2"
|
||||
},
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"secrets": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.181453Z",
|
||||
"modified": "2024-06-18T22:10:50.181453Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::buildArgs",
|
||||
"custom": true,
|
||||
"id": "buildArgs",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildArgs": {
|
||||
"SET_ME_TO_TRUE": "true"
|
||||
},
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.buildArgs"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildArgs": {
|
||||
"SET_ME_TO_TRUE": "true"
|
||||
},
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.buildArgs"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"buildArgs": [],
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.182348Z",
|
||||
"modified": "2024-06-18T22:10:50.182348Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::sshMount",
|
||||
"custom": true,
|
||||
"id": "sshMount",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.sshMount"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ssh": [
|
||||
{
|
||||
"id": "default"
|
||||
}
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.sshMount"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"ssh": [
|
||||
{
|
||||
"id": "default"
|
||||
}
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"ssh": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.182807Z",
|
||||
"modified": "2024-06-18T22:10:50.182807Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::remoteContext",
|
||||
"custom": true,
|
||||
"id": "remoteContext",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||
},
|
||||
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.18341Z",
|
||||
"modified": "2024-06-18T22:10:50.18341Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::registryPush",
|
||||
"custom": true,
|
||||
"id": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"raw": "",
|
||||
"registry": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"danglingNamePrefix": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": true,
|
||||
"push": false,
|
||||
"store": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"tags": [
|
||||
"docker.io/pulumibot/buildkit-e2e:example"
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"raw": "",
|
||||
"registry": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"danglingNamePrefix": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": true,
|
||||
"push": false,
|
||||
"store": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"tags": [
|
||||
"docker.io/pulumibot/buildkit-e2e:example"
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"exports": [],
|
||||
"push": [],
|
||||
"tags": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183668Z",
|
||||
"modified": "2024-06-18T22:10:50.183668Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::dockerLoad",
|
||||
"custom": true,
|
||||
"id": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"docker": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": false,
|
||||
"tar": true
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"docker": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": false,
|
||||
"tar": true
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"exports": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183874Z",
|
||||
"modified": "2024-06-18T22:10:50.183874Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::labels",
|
||||
"custom": true,
|
||||
"id": "labels",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"labels": {
|
||||
"description": "This image will get a descriptive label 👍"
|
||||
},
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"labels": {
|
||||
"description": "This image will get a descriptive label 👍"
|
||||
},
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"labels": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183996Z",
|
||||
"modified": "2024-06-18T22:10:50.183996Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::inline",
|
||||
"custom": true,
|
||||
"id": "inline",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.184088Z",
|
||||
"modified": "2024-06-18T22:10:50.184088Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::target",
|
||||
"custom": true,
|
||||
"id": "target",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.target"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": "build-me"
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.target"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": "build-me"
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"target": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.18426Z",
|
||||
"modified": "2024-06-18T22:10:50.18426Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::cached",
|
||||
"custom": true,
|
||||
"id": "cached",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"cacheFrom": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"digest": "",
|
||||
"src": "tmp/cache"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"cacheTo": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "tmp/cache",
|
||||
"forceCompression": false,
|
||||
"ignoreError": false,
|
||||
"mode": "max"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"cacheFrom": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"digest": "",
|
||||
"src": "tmp/cache"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"cacheTo": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "tmp/cache",
|
||||
"forceCompression": false,
|
||||
"ignoreError": false,
|
||||
"mode": "max"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"cacheFrom": [],
|
||||
"cacheTo": [],
|
||||
"context": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.206842Z",
|
||||
"modified": "2024-06-18T22:10:50.206842Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::multiPlatform",
|
||||
"custom": true,
|
||||
"id": "multiPlatform",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.multiPlatform"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
],
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.multiPlatform"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
],
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"platforms": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.257528Z",
|
||||
"modified": "2024-06-18T22:10:50.257528Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::extraHosts",
|
||||
"custom": true,
|
||||
"id": "extraHosts",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"addHosts": [
|
||||
"metadata.google.internal:169.254.169.254"
|
||||
],
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.extraHosts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"addHosts": [
|
||||
"metadata.google.internal:169.254.169.254"
|
||||
],
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.extraHosts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"addHosts": [],
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.274264Z",
|
||||
"modified": "2024-06-18T22:10:50.274264Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::remoteContextWithInline",
|
||||
"custom": true,
|
||||
"id": "remoteContextWithInline",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://github.com/docker-library/hello-world.git"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://github.com/docker-library/hello-world.git"
|
||||
},
|
||||
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.332506Z",
|
||||
"modified": "2024-06-18T22:10:50.332506Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:test::provider-docker-build::docker-build:index:Image::namedContexts",
|
||||
"custom": true,
|
||||
"id": "namedContexts",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app",
|
||||
"named": {
|
||||
"golang:latest": {
|
||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.namedContexts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app",
|
||||
"named": {
|
||||
"golang:latest": {
|
||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||
}
|
||||
}
|
||||
},
|
||||
"contextHash": "3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.namedContexts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:test::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-test",
|
||||
"provider": "urn:pulumi:test::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.422524Z",
|
||||
"modified": "2024-06-18T22:10:50.422524Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,944 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"deployment": {
|
||||
"manifest": {
|
||||
"time": "2024-06-18T15:10:50.439881-07:00",
|
||||
"magic": "",
|
||||
"version": ""
|
||||
},
|
||||
"secrets_providers": {
|
||||
"type": "passphrase",
|
||||
"state": {
|
||||
"salt": "v1:uRYnzeN15MA=:v1:rpAZ+oxUTuiNyCpF:KQmWj5xMhsTrE2XhW35Gd1XoMW7RDg=="
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"custom": false,
|
||||
"type": "pulumi:pulumi:Stack",
|
||||
"outputs": {
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
]
|
||||
},
|
||||
"created": "2024-06-18T22:10:48.091797Z",
|
||||
"modified": "2024-06-18T22:10:48.091797Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default",
|
||||
"custom": true,
|
||||
"id": "b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"type": "pulumi:providers:docker-build",
|
||||
"inputs": {
|
||||
"host": ""
|
||||
},
|
||||
"outputs": {
|
||||
"host": ""
|
||||
},
|
||||
"created": "2024-06-18T22:10:48.187658Z",
|
||||
"modified": "2024-06-18T22:10:48.187658Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets",
|
||||
"custom": true,
|
||||
"id": "secrets",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.secrets"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"secrets": {
|
||||
"password": "hunter2"
|
||||
},
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.secrets"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"secrets": {
|
||||
"password": "hunter2"
|
||||
},
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"secrets": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.181453Z",
|
||||
"modified": "2024-06-18T22:10:50.181453Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs",
|
||||
"custom": true,
|
||||
"id": "buildArgs",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildArgs": {
|
||||
"SET_ME_TO_TRUE": "true"
|
||||
},
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.buildArgs"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildArgs": {
|
||||
"SET_ME_TO_TRUE": "true"
|
||||
},
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.buildArgs"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"buildArgs": [],
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.182348Z",
|
||||
"modified": "2024-06-18T22:10:50.182348Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount",
|
||||
"custom": true,
|
||||
"id": "sshMount",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.sshMount"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ssh": [
|
||||
{
|
||||
"id": "default"
|
||||
}
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.sshMount"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"ssh": [
|
||||
{
|
||||
"id": "default"
|
||||
}
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"ssh": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.182807Z",
|
||||
"modified": "2024-06-18T22:10:50.182807Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext",
|
||||
"custom": true,
|
||||
"id": "remoteContext",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||
},
|
||||
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.18341Z",
|
||||
"modified": "2024-06-18T22:10:50.18341Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush",
|
||||
"custom": true,
|
||||
"id": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"raw": "",
|
||||
"registry": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"danglingNamePrefix": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": true,
|
||||
"push": false,
|
||||
"store": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"tags": [
|
||||
"docker.io/pulumibot/buildkit-e2e:example"
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"raw": "",
|
||||
"registry": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"danglingNamePrefix": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": true,
|
||||
"push": false,
|
||||
"store": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||
"tags": [
|
||||
"docker.io/pulumibot/buildkit-e2e:example"
|
||||
],
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"exports": [],
|
||||
"push": [],
|
||||
"tags": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183668Z",
|
||||
"modified": "2024-06-18T22:10:50.183668Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad",
|
||||
"custom": true,
|
||||
"id": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"docker": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": false,
|
||||
"tar": true
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"exports": [
|
||||
{
|
||||
"disabled": false,
|
||||
"docker": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "",
|
||||
"forceCompression": false,
|
||||
"ociMediaTypes": false,
|
||||
"tar": true
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"exports": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183874Z",
|
||||
"modified": "2024-06-18T22:10:50.183874Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels",
|
||||
"custom": true,
|
||||
"id": "labels",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"labels": {
|
||||
"description": "This image will get a descriptive label 👍"
|
||||
},
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"labels": {
|
||||
"description": "This image will get a descriptive label 👍"
|
||||
},
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"labels": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.183996Z",
|
||||
"modified": "2024-06-18T22:10:50.183996Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline",
|
||||
"custom": true,
|
||||
"id": "inline",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.184088Z",
|
||||
"modified": "2024-06-18T22:10:50.184088Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target",
|
||||
"custom": true,
|
||||
"id": "target",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.target"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": "build-me"
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.target"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": "build-me"
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": [],
|
||||
"target": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.18426Z",
|
||||
"modified": "2024-06-18T22:10:50.18426Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached",
|
||||
"custom": true,
|
||||
"id": "cached",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"cacheFrom": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"digest": "",
|
||||
"src": "tmp/cache"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"cacheTo": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "tmp/cache",
|
||||
"forceCompression": false,
|
||||
"ignoreError": false,
|
||||
"mode": "max"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"cacheFrom": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"digest": "",
|
||||
"src": "tmp/cache"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"cacheTo": [
|
||||
{
|
||||
"disabled": false,
|
||||
"local": {
|
||||
"compression": "gzip",
|
||||
"compressionLevel": 0,
|
||||
"dest": "tmp/cache",
|
||||
"forceCompression": false,
|
||||
"ignoreError": false,
|
||||
"mode": "max"
|
||||
},
|
||||
"raw": ""
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "app/Dockerfile"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"cacheFrom": [],
|
||||
"cacheTo": [],
|
||||
"context": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.206842Z",
|
||||
"modified": "2024-06-18T22:10:50.206842Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform",
|
||||
"custom": true,
|
||||
"id": "multiPlatform",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.multiPlatform"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
],
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.multiPlatform"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"platforms": [
|
||||
"plan9/amd64",
|
||||
"plan9/386"
|
||||
],
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"platforms": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.257528Z",
|
||||
"modified": "2024-06-18T22:10:50.257528Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts",
|
||||
"custom": true,
|
||||
"id": "extraHosts",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"addHosts": [
|
||||
"metadata.google.internal:169.254.169.254"
|
||||
],
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.extraHosts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"addHosts": [
|
||||
"metadata.google.internal:169.254.169.254"
|
||||
],
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app"
|
||||
},
|
||||
"contextHash": "e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.extraHosts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"addHosts": [],
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.274264Z",
|
||||
"modified": "2024-06-18T22:10:50.274264Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline",
|
||||
"custom": true,
|
||||
"id": "remoteContextWithInline",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://github.com/docker-library/hello-world.git"
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "https://github.com/docker-library/hello-world.git"
|
||||
},
|
||||
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||
"location": ""
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.332506Z",
|
||||
"modified": "2024-06-18T22:10:50.332506Z"
|
||||
},
|
||||
{
|
||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts",
|
||||
"custom": true,
|
||||
"id": "namedContexts",
|
||||
"type": "docker-build:index:Image",
|
||||
"inputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app",
|
||||
"named": {
|
||||
"golang:latest": {
|
||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.namedContexts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"target": ""
|
||||
},
|
||||
"outputs": {
|
||||
"buildOnPreview": true,
|
||||
"context": {
|
||||
"location": "./app",
|
||||
"named": {
|
||||
"golang:latest": {
|
||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||
}
|
||||
}
|
||||
},
|
||||
"contextHash": "3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d",
|
||||
"digest": "",
|
||||
"dockerfile": {
|
||||
"inline": "",
|
||||
"location": "./app/Dockerfile.namedContexts"
|
||||
},
|
||||
"exec": false,
|
||||
"load": false,
|
||||
"network": "default",
|
||||
"noCache": false,
|
||||
"pull": false,
|
||||
"push": false,
|
||||
"ref": "",
|
||||
"target": ""
|
||||
},
|
||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||
"propertyDependencies": {
|
||||
"context": [],
|
||||
"dockerfile": [],
|
||||
"push": []
|
||||
},
|
||||
"created": "2024-06-18T22:10:50.422524Z",
|
||||
"modified": "2024-06-18T22:10:50.422524Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,6 @@
|
||||
"@types/node": "^20.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pulumi/pulumi": "^3.128.0"
|
||||
"@pulumi/pulumi": "3.165.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,107 +204,112 @@
|
||||
proc-log "^4.0.0"
|
||||
which "^4.0.0"
|
||||
|
||||
"@opentelemetry/api-logs@0.52.1":
|
||||
version "0.52.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz#52906375da4d64c206b0c4cb8ffa209214654ecc"
|
||||
integrity sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==
|
||||
"@opentelemetry/api-logs@0.55.0":
|
||||
version "0.55.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz#5cd7461820d864600250deb3803c32367a6bb2d2"
|
||||
integrity sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==
|
||||
dependencies:
|
||||
"@opentelemetry/api" "^1.0.0"
|
||||
"@opentelemetry/api" "^1.3.0"
|
||||
|
||||
"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.9":
|
||||
"@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9":
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe"
|
||||
integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==
|
||||
|
||||
"@opentelemetry/context-async-hooks@1.25.1":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz#810bff2fcab84ec51f4684aff2d21f6c057d9e73"
|
||||
integrity sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==
|
||||
"@opentelemetry/context-async-hooks@1.30.1":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz#4f76280691a742597fd0bf682982126857622948"
|
||||
integrity sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==
|
||||
|
||||
"@opentelemetry/core@1.25.1":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.25.1.tgz#ff667d939d128adfc7c793edae2f6bca177f829d"
|
||||
integrity sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==
|
||||
"@opentelemetry/core@1.30.1":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.30.1.tgz#a0b468bb396358df801881709ea38299fc30ab27"
|
||||
integrity sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==
|
||||
dependencies:
|
||||
"@opentelemetry/semantic-conventions" "1.25.1"
|
||||
"@opentelemetry/semantic-conventions" "1.28.0"
|
||||
|
||||
"@opentelemetry/exporter-zipkin@^1.25":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz#81bb3b3aa16500676277c2fd6d50159eaf6c081a"
|
||||
integrity sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==
|
||||
"@opentelemetry/exporter-zipkin@^1.28":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.30.1.tgz#d96213a38d201ef2d50c3ba29faeb6e579f70e77"
|
||||
integrity sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/resources" "1.25.1"
|
||||
"@opentelemetry/sdk-trace-base" "1.25.1"
|
||||
"@opentelemetry/semantic-conventions" "1.25.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
"@opentelemetry/resources" "1.30.1"
|
||||
"@opentelemetry/sdk-trace-base" "1.30.1"
|
||||
"@opentelemetry/semantic-conventions" "1.28.0"
|
||||
|
||||
"@opentelemetry/instrumentation-grpc@^0.52":
|
||||
version "0.52.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.52.1.tgz#906ce4756a0eb1b050cd89b6b97dc09efe3ae3e3"
|
||||
integrity sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==
|
||||
"@opentelemetry/instrumentation-grpc@^0.55":
|
||||
version "0.55.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.55.0.tgz#b5161359060999f7ccbef26d6550beef021572fa"
|
||||
integrity sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==
|
||||
dependencies:
|
||||
"@opentelemetry/instrumentation" "0.52.1"
|
||||
"@opentelemetry/semantic-conventions" "1.25.1"
|
||||
"@opentelemetry/instrumentation" "0.55.0"
|
||||
"@opentelemetry/semantic-conventions" "1.27.0"
|
||||
|
||||
"@opentelemetry/instrumentation@0.52.1", "@opentelemetry/instrumentation@^0.52":
|
||||
version "0.52.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz#2e7e46a38bd7afbf03cf688c862b0b43418b7f48"
|
||||
integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==
|
||||
"@opentelemetry/instrumentation@0.55.0", "@opentelemetry/instrumentation@^0.55":
|
||||
version "0.55.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz#ecac8afd8706f6e99b3bb6951b9e07c4c81533f0"
|
||||
integrity sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==
|
||||
dependencies:
|
||||
"@opentelemetry/api-logs" "0.52.1"
|
||||
"@types/shimmer" "^1.0.2"
|
||||
"@opentelemetry/api-logs" "0.55.0"
|
||||
"@types/shimmer" "^1.2.0"
|
||||
import-in-the-middle "^1.8.1"
|
||||
require-in-the-middle "^7.1.1"
|
||||
semver "^7.5.2"
|
||||
shimmer "^1.2.1"
|
||||
|
||||
"@opentelemetry/propagator-b3@1.25.1":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz#653ee5f3f0f223c000907c1559c89c0a208819f7"
|
||||
integrity sha512-p6HFscpjrv7//kE+7L+3Vn00VEDUJB0n6ZrjkTYHrJ58QZ8B3ajSJhRbCcY6guQ3PDjTbxWklyvIN2ojVbIb1A==
|
||||
"@opentelemetry/propagator-b3@1.30.1":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz#b73321e5f30f062a9229887a4aa80c771107fdd2"
|
||||
integrity sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
|
||||
"@opentelemetry/propagator-jaeger@1.25.1":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz#7eae165921e65dce6f8d87339379880125dab765"
|
||||
integrity sha512-nBprRf0+jlgxks78G/xq72PipVK+4or9Ypntw0gVZYNTCSK8rg5SeaGV19tV920CMqBD/9UIOiFr23Li/Q8tiA==
|
||||
"@opentelemetry/propagator-jaeger@1.30.1":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.1.tgz#c06c9dacbe818b80cfb13c4dbf0b57df1ad26b71"
|
||||
integrity sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
|
||||
"@opentelemetry/resources@1.25.1", "@opentelemetry/resources@^1.25":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.25.1.tgz#bb9a674af25a1a6c30840b755bc69da2796fefbb"
|
||||
integrity sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==
|
||||
"@opentelemetry/resources@1.30.1", "@opentelemetry/resources@^1.28":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964"
|
||||
integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/semantic-conventions" "1.25.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
"@opentelemetry/semantic-conventions" "1.28.0"
|
||||
|
||||
"@opentelemetry/sdk-trace-base@1.25.1", "@opentelemetry/sdk-trace-base@^1.25":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz#cbc1e60af255655d2020aa14cde17b37bd13df37"
|
||||
integrity sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==
|
||||
"@opentelemetry/sdk-trace-base@1.30.1", "@opentelemetry/sdk-trace-base@^1.28":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz#41a42234096dc98e8f454d24551fc80b816feb34"
|
||||
integrity sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/resources" "1.25.1"
|
||||
"@opentelemetry/semantic-conventions" "1.25.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
"@opentelemetry/resources" "1.30.1"
|
||||
"@opentelemetry/semantic-conventions" "1.28.0"
|
||||
|
||||
"@opentelemetry/sdk-trace-node@^1.25":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz#856063bef1167ae74139199338c24fb958838ff3"
|
||||
integrity sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ==
|
||||
"@opentelemetry/sdk-trace-node@^1.28":
|
||||
version "1.30.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz#bd7d68fcfb4d4ae76ea09810df9668b7dd09a2e5"
|
||||
integrity sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==
|
||||
dependencies:
|
||||
"@opentelemetry/context-async-hooks" "1.25.1"
|
||||
"@opentelemetry/core" "1.25.1"
|
||||
"@opentelemetry/propagator-b3" "1.25.1"
|
||||
"@opentelemetry/propagator-jaeger" "1.25.1"
|
||||
"@opentelemetry/sdk-trace-base" "1.25.1"
|
||||
"@opentelemetry/context-async-hooks" "1.30.1"
|
||||
"@opentelemetry/core" "1.30.1"
|
||||
"@opentelemetry/propagator-b3" "1.30.1"
|
||||
"@opentelemetry/propagator-jaeger" "1.30.1"
|
||||
"@opentelemetry/sdk-trace-base" "1.30.1"
|
||||
semver "^7.5.2"
|
||||
|
||||
"@opentelemetry/semantic-conventions@1.25.1", "@opentelemetry/semantic-conventions@^1.25":
|
||||
version "1.25.1"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz#0deecb386197c5e9c2c28f2f89f51fb8ae9f145e"
|
||||
integrity sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==
|
||||
"@opentelemetry/semantic-conventions@1.27.0":
|
||||
version "1.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c"
|
||||
integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==
|
||||
|
||||
"@opentelemetry/semantic-conventions@1.28.0":
|
||||
version "1.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6"
|
||||
integrity sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==
|
||||
|
||||
"@pkgjs/parseargs@^0.11.0":
|
||||
version "0.11.0"
|
||||
@@ -364,23 +369,21 @@
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
|
||||
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
|
||||
|
||||
"@pulumi/pulumi@^3.128.0":
|
||||
version "3.128.0"
|
||||
resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.128.0.tgz#cb44cb904e9be1e36c7697215c2f91d4e58c0031"
|
||||
integrity sha512-Xqe5uYp1RpDihK3VbdBFR4q1h+ICg/2Xgg1d7aYWmPqBCIUG4jWddLS0REQO60EsgKBNarXhLeQSmaWXLgiq9w==
|
||||
"@pulumi/pulumi@3.165.0":
|
||||
version "3.165.0"
|
||||
resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.165.0.tgz#6063567f0e8d999d76930b7d06db3e701942bd95"
|
||||
integrity sha512-9W7/vqOxzcUf00j3wblolkeLjC6+rbvb/hTqyVmrd86ByzLsZ0e6WZ2Bo/IPElqzw+r0SEDi+Sk451QEaO1ESg==
|
||||
dependencies:
|
||||
"@grpc/grpc-js" "^1.10.1"
|
||||
"@logdna/tail-file" "^2.0.6"
|
||||
"@npmcli/arborist" "^7.3.1"
|
||||
"@opentelemetry/api" "^1.9"
|
||||
"@opentelemetry/exporter-zipkin" "^1.25"
|
||||
"@opentelemetry/instrumentation" "^0.52"
|
||||
"@opentelemetry/instrumentation-grpc" "^0.52"
|
||||
"@opentelemetry/resources" "^1.25"
|
||||
"@opentelemetry/sdk-trace-base" "^1.25"
|
||||
"@opentelemetry/sdk-trace-node" "^1.25"
|
||||
"@opentelemetry/semantic-conventions" "^1.25"
|
||||
"@pulumi/query" "^0.3.0"
|
||||
"@opentelemetry/exporter-zipkin" "^1.28"
|
||||
"@opentelemetry/instrumentation" "^0.55"
|
||||
"@opentelemetry/instrumentation-grpc" "^0.55"
|
||||
"@opentelemetry/resources" "^1.28"
|
||||
"@opentelemetry/sdk-trace-base" "^1.28"
|
||||
"@opentelemetry/sdk-trace-node" "^1.28"
|
||||
"@types/google-protobuf" "^3.15.5"
|
||||
"@types/semver" "^7.5.6"
|
||||
"@types/tmp" "^0.2.6"
|
||||
@@ -400,11 +403,6 @@
|
||||
tmp "^0.2.1"
|
||||
upath "^1.1.0"
|
||||
|
||||
"@pulumi/query@^0.3.0":
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@pulumi/query/-/query-0.3.0.tgz#f496608e86a18c3dd31b6c533408e2441c29071d"
|
||||
integrity sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w==
|
||||
|
||||
"@sigstore/bundle@^2.3.2":
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e"
|
||||
@@ -529,7 +527,7 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
|
||||
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
|
||||
|
||||
"@types/shimmer@^1.0.2":
|
||||
"@types/shimmer@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.2.0.tgz#9b706af96fa06416828842397a70dfbbf1c14ded"
|
||||
integrity sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==
|
||||
@@ -1737,7 +1735,16 @@ ssri@^10.0.0, ssri@^10.0.6:
|
||||
dependencies:
|
||||
minipass "^7.0.3"
|
||||
|
||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
"string-width-cjs@npm:string-width@^4.2.0":
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
@@ -1755,7 +1762,14 @@ string-width@^5.0.1, string-width@^5.1.2:
|
||||
emoji-regex "^9.2.2"
|
||||
strip-ansi "^7.0.1"
|
||||
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
dependencies:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
@@ -1876,7 +1890,16 @@ which@^4.0.0:
|
||||
dependencies:
|
||||
isexe "^3.1.1"
|
||||
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
string-width "^4.1.0"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
wrap-ansi@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||
|
||||
3
examples/tests/config/Pulumi.yaml
Normal file
3
examples/tests/config/Pulumi.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
name: test-buildx-config
|
||||
runtime: nodejs
|
||||
description: A minimal TypeScript Pulumi program
|
||||
5
examples/tests/config/index.ts
Normal file
5
examples/tests/config/index.ts
Normal 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" }],
|
||||
});
|
||||
9
examples/tests/config/package.json
Normal file
9
examples/tests/config/package.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "test-buildx-caching",
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pulumi/pulumi": "3.165.0"
|
||||
}
|
||||
}
|
||||
6
examples/upgrade-node/Pulumi.yaml
Normal file
6
examples/upgrade-node/Pulumi.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
name: provider-docker-build
|
||||
runtime: nodejs
|
||||
plugins:
|
||||
providers:
|
||||
- name: docker-build
|
||||
path: ../../bin
|
||||
11
examples/upgrade-node/index.ts
Normal file
11
examples/upgrade-node/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import * as pulumi from "@pulumi/pulumi";
|
||||
import * as docker_build from "@pulumi/docker-build";
|
||||
|
||||
const inline = new docker_build.Image("inline", {
|
||||
push: false,
|
||||
dockerfile: {
|
||||
inline: `FROM alpine
|
||||
RUN echo "This uses an inline Dockerfile! 👍"
|
||||
`,
|
||||
},
|
||||
});
|
||||
10
examples/upgrade-node/package.json
Normal file
10
examples/upgrade-node/package.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "provider-docker-build",
|
||||
"devDependencies": {
|
||||
"@types/node": "^18"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": "^4.0.0",
|
||||
"@pulumi/pulumi": "3.165.0"
|
||||
}
|
||||
}
|
||||
18
examples/upgrade-node/tsconfig.json
Normal file
18
examples/upgrade-node/tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"strict": true,
|
||||
"outDir": "bin",
|
||||
"target": "es2016",
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"experimentalDecorators": true,
|
||||
"pretty": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noImplicitReturns": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.ts",
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
name: provider-docker-build
|
||||
runtime: yaml
|
||||
plugins:
|
||||
providers:
|
||||
- name: docker-build
|
||||
path: ../../bin
|
||||
|
||||
resources:
|
||||
# docker buildx build -f app/Dockerfile.multiPlatform --platform plan9/amd64,plan9/386 app
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
//go:build java || all
|
||||
// +build java all
|
||||
//go:build yaml || all
|
||||
// +build yaml all
|
||||
|
||||
package examples
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/pulumi/providertest"
|
||||
"github.com/pulumi/providertest/providers"
|
||||
"github.com/pulumi/providertest/pulumitest"
|
||||
"github.com/pulumi/providertest/pulumitest/assertpreview"
|
||||
"github.com/pulumi/providertest/pulumitest/opttest"
|
||||
"github.com/pulumi/pulumi-docker-build/provider"
|
||||
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
||||
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -30,25 +34,15 @@ func TestYAMLExample(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestYAMLExampleUpgrade(t *testing.T) {
|
||||
// t.Setenv("PULUMI_PROVIDER_TEST_MODE", "snapshot")
|
||||
pt := pulumitest.NewPulumiTest(t, "upgrade",
|
||||
opttest.AttachProviderServer("docker-build", providerServerFactory))
|
||||
previewResult := providertest.PreviewProviderUpgrade(t, pt, "docker-build", "0.0.1")
|
||||
|
||||
cwd, err := os.Getwd()
|
||||
require.NoError(t, err)
|
||||
assertpreview.HasNoChanges(t, previewResult)
|
||||
}
|
||||
|
||||
bin, err := filepath.Abs("../bin")
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Setenv("PATH", bin+":"+os.Getenv("PATH"))
|
||||
p, err := provider.New(nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
test := providertest.NewProviderTest(path.Join(cwd, "upgrade"),
|
||||
providertest.WithProviderName("docker-build"),
|
||||
providertest.WithBaselineVersion("0.0.1"),
|
||||
providertest.WithResourceProviderServer(p),
|
||||
// providertest.WithConfig("dockerHubPassword", os.Getenv("DOCKER_HUB_PASSWORD")), // Doesn't support secrets yet.
|
||||
)
|
||||
test.Run(t)
|
||||
func providerServerFactory(pt providers.PulumiTest) (pulumirpc.ResourceProviderServer, error) {
|
||||
return provider.New(nil)
|
||||
}
|
||||
|
||||
func TestECR(t *testing.T) {
|
||||
|
||||
332
go.mod
332
go.mod
@@ -1,39 +1,43 @@
|
||||
module github.com/pulumi/pulumi-docker-build
|
||||
|
||||
go 1.21.7
|
||||
go 1.24.1
|
||||
|
||||
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/distribution/reference v0.6.0
|
||||
github.com/docker/buildx v0.16.0
|
||||
github.com/docker/cli v27.0.3+incompatible
|
||||
github.com/docker/docker v27.1.0+incompatible
|
||||
github.com/docker/buildx v0.22.0
|
||||
github.com/docker/cli v28.0.4+incompatible
|
||||
github.com/docker/docker v28.0.1+incompatible
|
||||
github.com/golangci/golangci-lint v1.59.1
|
||||
github.com/moby/buildkit v0.15.0
|
||||
github.com/moby/buildkit v0.20.1
|
||||
github.com/moby/patternmatcher v0.6.0
|
||||
github.com/muesli/reflow v0.3.0
|
||||
github.com/otiai10/copy v1.14.0
|
||||
github.com/pulumi/providertest v0.0.13
|
||||
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20240624150732-fa777213effd
|
||||
github.com/pulumi/pulumi-go-provider v0.21.0
|
||||
github.com/pulumi/pulumi-java/pkg v0.13.0
|
||||
github.com/pulumi/pulumi-yaml v1.9.1
|
||||
github.com/pulumi/pulumi/pkg/v3 v3.128.0
|
||||
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20240805173038-c428a91a4c3c
|
||||
github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20240805173038-c428a91a4c3c
|
||||
github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20240805173038-c428a91a4c3c
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.128.0
|
||||
github.com/regclient/regclient v0.6.1
|
||||
github.com/pulumi/providertest v0.3.1
|
||||
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.0.0-20250507122953-af68281fea7f
|
||||
github.com/pulumi/pulumi-go-provider v1.0.0-rc1.0.20250508214503-b09e1ae91a79
|
||||
github.com/pulumi/pulumi-java/pkg v1.11.0
|
||||
github.com/pulumi/pulumi-yaml v1.17.0
|
||||
github.com/pulumi/pulumi/pkg/v3 v3.169.0
|
||||
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20250508095305-a4bdc94d01aa
|
||||
github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20250508095305-a4bdc94d01aa
|
||||
github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20250508095305-a4bdc94d01aa
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.169.0
|
||||
github.com/regclient/regclient v0.7.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/spf13/afero v1.11.0
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/spf13/afero v1.14.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/theupdateframework/notary v0.7.0
|
||||
github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c
|
||||
go.uber.org/mock v0.4.0
|
||||
golang.org/x/crypto v0.25.0
|
||||
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8
|
||||
google.golang.org/protobuf v1.34.2
|
||||
github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a
|
||||
github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4
|
||||
go.opentelemetry.io/otel/metric v1.35.0
|
||||
go.opentelemetry.io/otel/sdk v1.35.0
|
||||
go.opentelemetry.io/otel/trace v1.35.0
|
||||
go.uber.org/mock v0.5.0
|
||||
golang.org/x/crypto v0.38.0
|
||||
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
|
||||
google.golang.org/protobuf v1.36.6
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
@@ -41,40 +45,38 @@ require (
|
||||
4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
|
||||
4d63.com/gochecknoglobals v0.2.1 // indirect
|
||||
cloud.google.com/go v0.112.1 // indirect
|
||||
cloud.google.com/go/compute v1.25.1 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.6.0 // indirect
|
||||
cloud.google.com/go/iam v1.1.6 // indirect
|
||||
cloud.google.com/go/kms v1.15.7 // indirect
|
||||
cloud.google.com/go/logging v1.9.0 // indirect
|
||||
cloud.google.com/go/longrunning v0.5.5 // indirect
|
||||
cloud.google.com/go/storage v1.39.1 // indirect
|
||||
dario.cat/mergo v1.0.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-20240806141605-e8a1dd7889d6 // 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.11.1 // 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/azcore v1.16.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity 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/internal v0.7.1 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // 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/BurntSushi/toml v1.4.0 // indirect
|
||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 // indirect
|
||||
github.com/BurntSushi/toml v1.5.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/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
|
||||
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||
github.com/ProtonMail/go-crypto v1.2.0 // 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
|
||||
@@ -82,31 +84,31 @@ require (
|
||||
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.0.1 // 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/aws/aws-sdk-go-v2 v1.26.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2 v1.30.3 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/config v1.27.27 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // 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.30.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
|
||||
github.com/aws/smithy-go v1.20.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
|
||||
github.com/aws/smithy-go v1.20.3 // 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
|
||||
@@ -120,41 +122,42 @@ require (
|
||||
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/v4 v4.2.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/charithe/durationcheck v0.0.10 // indirect
|
||||
github.com/charmbracelet/bubbles v0.18.0 // indirect
|
||||
github.com/charmbracelet/bubbletea v0.26.4 // indirect
|
||||
github.com/charmbracelet/bubbles v0.21.0 // indirect
|
||||
github.com/charmbracelet/bubbletea v1.3.4 // indirect
|
||||
github.com/charmbracelet/colorprofile v0.3.0 // indirect
|
||||
github.com/charmbracelet/glamour v0.6.0 // indirect
|
||||
github.com/charmbracelet/lipgloss v0.11.0 // indirect
|
||||
github.com/charmbracelet/x/ansi v0.1.2 // indirect
|
||||
github.com/charmbracelet/x/input v0.1.0 // indirect
|
||||
github.com/charmbracelet/x/term v0.1.1 // indirect
|
||||
github.com/charmbracelet/x/windows v0.1.0 // indirect
|
||||
github.com/charmbracelet/lipgloss v1.1.0 // indirect
|
||||
github.com/charmbracelet/x/ansi v0.8.0 // indirect
|
||||
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
|
||||
github.com/charmbracelet/x/term v0.2.1 // indirect
|
||||
github.com/chavacava/garif v0.1.0 // indirect
|
||||
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||
github.com/ckaznocha/intrange v0.1.2 // indirect
|
||||
github.com/cloudflare/circl v1.3.8 // indirect
|
||||
github.com/compose-spec/compose-go/v2 v2.1.3 // indirect
|
||||
github.com/cloudflare/circl v1.6.1 // indirect
|
||||
github.com/compose-spec/compose-go/v2 v2.4.8 // indirect
|
||||
github.com/containerd/console v1.0.4 // indirect
|
||||
github.com/containerd/containerd v1.7.19 // indirect
|
||||
github.com/containerd/containerd/api v1.7.19 // indirect
|
||||
github.com/containerd/continuity v0.4.3 // indirect
|
||||
github.com/containerd/errdefs v0.1.0 // indirect
|
||||
github.com/containerd/containerd/api v1.8.0 // indirect
|
||||
github.com/containerd/containerd/v2 v2.0.3 // indirect
|
||||
github.com/containerd/continuity v0.4.5 // indirect
|
||||
github.com/containerd/errdefs v1.0.0 // indirect
|
||||
github.com/containerd/errdefs/pkg v0.3.0 // indirect
|
||||
github.com/containerd/log v0.1.0 // indirect
|
||||
github.com/containerd/platforms v0.2.1 // indirect
|
||||
github.com/containerd/ttrpc v1.2.5 // indirect
|
||||
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
||||
github.com/containerd/platforms v1.0.0-rc.1 // indirect
|
||||
github.com/containerd/ttrpc v1.2.7 // indirect
|
||||
github.com/containerd/typeurl/v2 v2.2.3 // indirect
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
|
||||
github.com/curioswitch/go-reassign v0.2.0 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.5 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.4.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.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
|
||||
github.com/denis-tingaikin/go-header v0.5.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.9.0 // indirect
|
||||
github.com/docker/distribution v2.8.3+incompatible // indirect
|
||||
github.com/docker/docker-credential-helpers v0.8.2 // indirect
|
||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
|
||||
@@ -163,7 +166,7 @@ require (
|
||||
github.com/docker/go-units v0.5.0 // 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.2.0 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
||||
github.com/emirpasic/gods v1.18.1 // indirect
|
||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||
@@ -173,21 +176,22 @@ require (
|
||||
github.com/fatih/structtag v1.2.0 // 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/fvbommel/sortorder v1.1.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
||||
github.com/fvbommel/sortorder v1.0.1 // indirect
|
||||
github.com/fxamacker/cbor/v2 v2.7.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/go-billy/v5 v5.5.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-logr/logr v1.4.1 // indirect
|
||||
github.com/go-git/go-billy/v5 v5.6.2 // indirect
|
||||
github.com/go-git/go-git/v5 v5.16.0 // indirect
|
||||
github.com/go-jose/go-jose/v3 v3.0.4 // indirect
|
||||
github.com/go-logr/logr v1.4.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/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/swag v0.22.3 // indirect
|
||||
github.com/go-openapi/swag v0.22.4 // 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
|
||||
@@ -198,13 +202,13 @@ require (
|
||||
github.com/go-viper/mapstructure/v2 v2.0.0 // indirect
|
||||
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
|
||||
github.com/gobwas/glob v0.2.3 // indirect
|
||||
github.com/gofrs/flock v0.12.0 // indirect
|
||||
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
||||
github.com/gofrs/flock v0.12.1 // indirect
|
||||
github.com/gofrs/uuid v4.2.0+incompatible // indirect
|
||||
github.com/gogo/googleapis v1.4.1 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||
github.com/golang/glog v1.2.1 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
|
||||
github.com/golang/glog v1.2.4 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // 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
|
||||
@@ -214,10 +218,10 @@ require (
|
||||
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/go-cmp v0.6.0 // indirect
|
||||
github.com/google/go-cmp v0.7.0 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
|
||||
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
|
||||
github.com/google/s2a-go v0.1.7 // indirect
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
@@ -226,17 +230,17 @@ require (
|
||||
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
||||
github.com/gordonklaus/ineffassign v0.1.0 // indirect
|
||||
github.com/gorilla/css v1.0.0 // indirect
|
||||
github.com/gorilla/mux v1.8.0 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/gorilla/websocket v1.5.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.16.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||
github.com/hashicorp/go-cty-funcs v0.0.0-20230405223818-a090f58aa992 // indirect
|
||||
github.com/hashicorp/go-cty-funcs v0.0.0-20241120183456-c51673e0b3dd // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
||||
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
|
||||
@@ -245,20 +249,22 @@ require (
|
||||
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/v2 v2.20.1 // indirect
|
||||
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
|
||||
github.com/hashicorp/vault/api v1.12.0 // indirect
|
||||
github.com/hexops/gotextdiff v1.0.3 // indirect
|
||||
github.com/iancoleman/strcase v0.2.0 // 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/in-toto/in-toto-golang v0.5.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/iwdgo/sigintwindows v0.2.2 // 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/jonboulle/clockwork v0.4.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/julz/importas v0.1.0 // indirect
|
||||
@@ -267,7 +273,7 @@ require (
|
||||
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||
github.com/kisielk/errcheck v1.7.0 // indirect
|
||||
github.com/kkHAIKE/contextcheck v1.1.5 // indirect
|
||||
github.com/klauspost/compress v1.17.9 // 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
|
||||
@@ -288,9 +294,8 @@ require (
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // 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/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
|
||||
@@ -304,20 +309,21 @@ require (
|
||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||
github.com/moby/docker-image-spec v1.3.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/sys/mountinfo v0.7.1 // indirect
|
||||
github.com/moby/sys/sequential v0.5.0 // indirect
|
||||
github.com/moby/sys/signal v0.7.0 // indirect
|
||||
github.com/moby/sys/user v0.1.0 // indirect
|
||||
github.com/moby/term v0.5.0 // indirect
|
||||
github.com/moby/moby v26.1.5+incompatible // indirect
|
||||
github.com/moby/spdystream v0.4.0 // indirect
|
||||
github.com/moby/sys/mountinfo v0.7.2 // indirect
|
||||
github.com/moby/sys/sequential v0.6.0 // indirect
|
||||
github.com/moby/sys/signal v0.7.1 // 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.2 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 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/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||
github.com/muesli/termenv v0.15.2 // indirect
|
||||
github.com/muesli/termenv v0.16.0 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
||||
github.com/nakabonne/nestif v0.3.1 // indirect
|
||||
@@ -333,33 +339,34 @@ require (
|
||||
github.com/opentracing/basictracer-go v1.1.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/v2 v2.2.2 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 // 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/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
|
||||
github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||
github.com/pgavlin/text v0.0.0-20240821195002-b51d0990e284 // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.2 // indirect
|
||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pkg/term v1.1.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/polyfloyd/go-errorlint v1.5.2 // indirect
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
||||
github.com/prometheus/client_golang v1.17.0 // indirect
|
||||
github.com/prometheus/client_model v0.5.0 // indirect
|
||||
github.com/prometheus/common v0.44.0 // indirect
|
||||
github.com/prometheus/client_golang v1.20.5 // 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/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||
github.com/pulumi/esc v0.9.1 // indirect
|
||||
github.com/pulumi/inflector v0.1.1 // indirect
|
||||
github.com/pulumi/esc v0.13.0 // 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/rogpeppe/go-internal v1.12.0 // indirect
|
||||
github.com/rogpeppe/go-internal v1.14.1 // 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
|
||||
@@ -371,8 +378,8 @@ require (
|
||||
github.com/sashamelentyev/usestdlibvars v1.26.0 // indirect
|
||||
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
|
||||
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect
|
||||
github.com/segmentio/asm v1.1.3 // indirect
|
||||
github.com/segmentio/encoding v0.3.5 // indirect
|
||||
github.com/segmentio/asm v1.2.0 // indirect
|
||||
github.com/segmentio/encoding v0.4.1 // 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/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
|
||||
@@ -383,14 +390,14 @@ require (
|
||||
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.2.2 // indirect
|
||||
github.com/skeema/knownhosts v1.3.1 // 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/cobra v1.8.1 // indirect
|
||||
github.com/spf13/cobra v1.9.1 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/pflag v1.0.6 // 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
|
||||
@@ -406,16 +413,17 @@ require (
|
||||
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/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // indirect
|
||||
github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect
|
||||
github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250211190051-7d4944a45bb6 // indirect
|
||||
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // 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-lib v2.4.1+incompatible // 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/x448/float16 v0.8.4 // indirect
|
||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||
@@ -428,66 +436,62 @@ require (
|
||||
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.14.4 // indirect
|
||||
github.com/zclconf/go-cty v1.16.2 // 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.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
|
||||
go.opentelemetry.io/otel v1.24.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
||||
go.opentelemetry.io/otel/sdk v1.22.0 // 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.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect
|
||||
go.opentelemetry.io/otel v1.35.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect
|
||||
go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
|
||||
go.pennock.tech/tabular v1.1.3 // indirect
|
||||
go.uber.org/atomic v1.11.0 // indirect
|
||||
go.uber.org/automaxprocs v1.5.3 // indirect
|
||||
go.uber.org/automaxprocs v1.6.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
go.uber.org/zap v1.27.0 // indirect
|
||||
gocloud.dev v0.37.0 // indirect
|
||||
gocloud.dev/secrets/hashivault v0.37.0 // indirect
|
||||
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
|
||||
golang.org/x/mod v0.18.0 // indirect
|
||||
golang.org/x/net v0.26.0 // indirect
|
||||
golang.org/x/oauth2 v0.18.0 // indirect
|
||||
golang.org/x/sync v0.7.0 // indirect
|
||||
golang.org/x/sys v0.22.0 // indirect
|
||||
golang.org/x/term v0.22.0 // indirect
|
||||
golang.org/x/text v0.16.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
golang.org/x/tools v0.22.0 // indirect
|
||||
golang.org/x/mod v0.24.0 // indirect
|
||||
golang.org/x/net v0.40.0 // indirect
|
||||
golang.org/x/oauth2 v0.25.0 // indirect
|
||||
golang.org/x/sync v0.14.0 // indirect
|
||||
golang.org/x/sys v0.33.0 // indirect
|
||||
golang.org/x/term v0.32.0 // indirect
|
||||
golang.org/x/text v0.25.0 // indirect
|
||||
golang.org/x/time v0.6.0 // indirect
|
||||
golang.org/x/tools v0.32.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
||||
google.golang.org/api v0.169.0 // indirect
|
||||
google.golang.org/appengine v1.6.8 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
|
||||
google.golang.org/grpc v1.64.1 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250414145226-207652e42e2e // indirect
|
||||
google.golang.org/grpc v1.71.1 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // 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/apimachinery v0.29.2 // indirect
|
||||
k8s.io/client-go v0.29.2 // indirect
|
||||
k8s.io/klog/v2 v2.110.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
|
||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
|
||||
lukechampine.com/frand v1.4.2 // indirect
|
||||
k8s.io/api v0.31.2 // indirect
|
||||
k8s.io/apimachinery v0.31.2 // indirect
|
||||
k8s.io/client-go v0.31.2 // indirect
|
||||
k8s.io/klog/v2 v2.130.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
|
||||
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
|
||||
lukechampine.com/frand v1.5.1 // 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/structured-merge-diff/v4 v4.4.1 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||
)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -157,7 +157,7 @@ type CacheFromGitHubActions struct {
|
||||
func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) {
|
||||
a.SetDefault(&c.URL, "", "ACTIONS_CACHE_URL")
|
||||
a.SetDefault(&c.Token, "", "ACTIONS_RUNTIME_TOKEN")
|
||||
a.SetDefault(&c.Scope, "", "buildkit")
|
||||
a.SetDefault(&c.Scope, "buildkit")
|
||||
|
||||
a.Describe(&c.URL, dedent(`
|
||||
The cache server URL to use for artifacts.
|
||||
@@ -468,12 +468,27 @@ func (c CacheFrom) validate(preview bool) (*controllerapi.CacheOptionsEntry, err
|
||||
return nil, err
|
||||
}
|
||||
if len(parsed) == 0 {
|
||||
// This can happen for example if we have a GHA cache but no GitHub
|
||||
// environment variables set.
|
||||
// Shouldn't happen...
|
||||
// This can happen for example if we have a GHA cache configuration but no GitHub
|
||||
// environment variables set. Ignore the cacheFrom entry in this case.
|
||||
return nil, nil
|
||||
}
|
||||
return parsed[0], nil
|
||||
|
||||
pb := parsed[0].ToPB()
|
||||
if !isActive(pb) {
|
||||
pb = nil
|
||||
}
|
||||
|
||||
return pb, nil
|
||||
}
|
||||
|
||||
// isActive checks if the GitHub token is set in the cache entry.
|
||||
// If it is not a GHA cache entry, it will return true.
|
||||
// This is to maintain backwards compatibility with the old buildx behaviour.
|
||||
func isActive(ci *controllerapi.CacheOptionsEntry) bool {
|
||||
if ci.Type != "gha" {
|
||||
return true
|
||||
}
|
||||
return ci.Attrs["token"] != "" && (ci.Attrs["url"] != "" || ci.Attrs["url_v2"] != "")
|
||||
}
|
||||
|
||||
// CacheToInline embeds cache information directly into an image.
|
||||
@@ -677,20 +692,27 @@ func (c CacheTo) validate(preview bool) (*controllerapi.CacheOptionsEntry, error
|
||||
return nil, err
|
||||
}
|
||||
if len(parsed) == 0 {
|
||||
// This can happen for example if we have a GHA cache but no GitHub
|
||||
// environment variables set.
|
||||
// Shouldn't happen...
|
||||
// This can happen for example if we have a GHA cache configuration but no GitHub
|
||||
// environment variables set. Ignore the cacheTo entry in this case.
|
||||
return nil, nil
|
||||
}
|
||||
return parsed[0], nil
|
||||
|
||||
pb := parsed[0].ToPB()
|
||||
if !isActive(pb) {
|
||||
pb = nil
|
||||
}
|
||||
|
||||
return pb, nil
|
||||
}
|
||||
|
||||
// CacheMode controls the complexity of exported cache manifests.
|
||||
type CacheMode string
|
||||
|
||||
const (
|
||||
Min CacheMode = "min" // Min cache mode.
|
||||
Max CacheMode = "max" // Max cache mode.
|
||||
// Min cache mode.
|
||||
Min CacheMode = "min"
|
||||
// Max cache mode.
|
||||
Max CacheMode = "max"
|
||||
)
|
||||
|
||||
// Values returns all valid CacheMode values for SDK generation.
|
||||
@@ -711,9 +733,12 @@ func (CacheMode) Values() []infer.EnumValue[CacheMode] {
|
||||
type CompressionType string
|
||||
|
||||
const (
|
||||
Gzip CompressionType = "gzip" // Gzip compression.
|
||||
Estargz CompressionType = "estargz" // Estargz compression.
|
||||
Zstd CompressionType = "zstd" // Zstd compression.
|
||||
// Gzip compression.
|
||||
Gzip CompressionType = "gzip"
|
||||
// Estargz compression.
|
||||
Estargz CompressionType = "estargz"
|
||||
// Zstd compression.
|
||||
Zstd CompressionType = "zstd"
|
||||
)
|
||||
|
||||
// Values returns all valid CompressionType values for SDK generation.
|
||||
|
||||
@@ -122,7 +122,6 @@ func TestCacheString(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
@@ -141,6 +142,10 @@ func (c *cli) Err() *streams.Out {
|
||||
return streams.NewOut(&c.err)
|
||||
}
|
||||
|
||||
func (c *cli) SupportsMultipleExports() bool {
|
||||
return c.host.supportsMultipleExports
|
||||
}
|
||||
|
||||
// rc returns a registry client with matching auth.
|
||||
func (c *cli) rc() *regclient.RegClient {
|
||||
hosts := []config.Host{}
|
||||
@@ -199,7 +204,7 @@ func (c *cli) Close() error {
|
||||
// execBuild performs a build by os.Exec'ing the docker-buildx binary.
|
||||
// Credentials are communicated to docker-buildx via a temporary directory.
|
||||
// Secrets are communicated via dynamic environment variables.
|
||||
func (c *cli) execBuild(b Build) (*client.SolveResponse, error) {
|
||||
func (c *cli) execBuild(ctx context.Context, b Build) (*client.SolveResponse, error) {
|
||||
// Setup a temporary directory for auth, and clean it up when we're done.
|
||||
tmp, err := os.MkdirTemp("", "pulumi-docker-")
|
||||
if err != nil {
|
||||
@@ -209,7 +214,7 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) {
|
||||
|
||||
opts := b.BuildOptions()
|
||||
|
||||
builder, err := c.host.builderFor(b)
|
||||
builder, err := c.host.builderFor(ctx, b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -329,13 +334,13 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) {
|
||||
return nil, err
|
||||
}
|
||||
// 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 = append(env, fmt.Sprintf("%s=%s", envvar, s.XXX_unrecognized))
|
||||
// Env. We never serialize this proto so this is tolerable.
|
||||
env = append(env, fmt.Sprintf("%s=%s", envvar, s.Env))
|
||||
args = append(args, "--secret", fmt.Sprintf("id=%s,env=%s", s.ID, envvar))
|
||||
}
|
||||
|
||||
// Invoke docker-buildx.
|
||||
err = c.exec(args, env)
|
||||
err = c.exec(ctx, args, env)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -374,7 +379,7 @@ func (c *cli) execBuild(b Build) (*client.SolveResponse, error) {
|
||||
|
||||
// exec invokes a Docker plugin binary. The first argument should be the name
|
||||
// of the plugin's subcommand, e.g. "buildx".
|
||||
func (c *cli) exec(args, extraEnv []string) error {
|
||||
func (c *cli) exec(ctx context.Context, args, extraEnv []string) error {
|
||||
if len(args) == 0 {
|
||||
return errors.New("args must be non-empty")
|
||||
}
|
||||
@@ -391,16 +396,18 @@ func (c *cli) exec(args, extraEnv []string) error {
|
||||
|
||||
defer contract.IgnoreClose(c.w)
|
||||
|
||||
cmd, err := manager.PluginRunCommand(c, name, root)
|
||||
runCmd, err := manager.PluginRunCommand(c, name, root)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cmd.Args = append([]string{cmd.Args[0]}, args...)
|
||||
// Create a new command that inherits from ctx.
|
||||
cmd := exec.CommandContext(ctx, //nolint:gosec // We take the first argument and binary from runCmd.
|
||||
runCmd.Path, append([]string{runCmd.Args[1]}, args...)...,
|
||||
)
|
||||
cmd.Stderr = c.Err()
|
||||
cmd.Stdout = c.Out()
|
||||
cmd.Stdin = c.In()
|
||||
|
||||
cmd.Env = append(cmd.Env, extraEnv...)
|
||||
cmd.Env = append(runCmd.Env, extraEnv...) //nolint:gocritic // We are intentionally assigning from runCmd to cmd
|
||||
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
@@ -27,12 +28,12 @@ import (
|
||||
func TestExec(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
h, err := newHost(nil)
|
||||
h, err := newHost(t.Context(), nil)
|
||||
require.NoError(t, err)
|
||||
cli, err := wrap(h)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = cli.exec([]string{"buildx", "version"}, nil)
|
||||
err = cli.exec(t.Context(), []string{"buildx", "version"}, nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
out, err := io.ReadAll(cli.r)
|
||||
@@ -44,7 +45,7 @@ func TestWrappedAuth(t *testing.T) {
|
||||
t.Parallel()
|
||||
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
|
||||
|
||||
realhost, err := newHost(nil)
|
||||
realhost, err := newHost(context.Background(), nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
h := &host{
|
||||
@@ -102,7 +103,7 @@ func TestWrappedAuth(t *testing.T) {
|
||||
assert.Len(t, h.auths, 2) // In-memory host auth is unchanged.
|
||||
|
||||
// Assert that our on-disk host's auth is untouched.
|
||||
realhostRefreshed, err := newHost(nil)
|
||||
realhostRefreshed, err := newHost(context.Background(), nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, realhost.auths, realhostRefreshed.auths)
|
||||
}
|
||||
|
||||
@@ -22,13 +22,13 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/distribution/reference"
|
||||
buildx "github.com/docker/buildx/build"
|
||||
"github.com/docker/buildx/commands"
|
||||
controllerapi "github.com/docker/buildx/controller/pb"
|
||||
"github.com/docker/buildx/util/confutil"
|
||||
"github.com/docker/buildx/util/dockerutil"
|
||||
"github.com/docker/buildx/util/platformutil"
|
||||
"github.com/docker/buildx/util/progress"
|
||||
@@ -58,6 +58,8 @@ type Client interface {
|
||||
ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error
|
||||
ManifestInspect(ctx context.Context, target string) (string, error)
|
||||
ManifestDelete(ctx context.Context, target string) error
|
||||
|
||||
SupportsMultipleExports() bool
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
// TODO: Log some version information for debugging.
|
||||
|
||||
return cli, nil
|
||||
}
|
||||
|
||||
@@ -106,10 +106,10 @@ func (c *cli) Build(
|
||||
defer contract.IgnoreClose(c)
|
||||
|
||||
if build.ShouldExec() {
|
||||
return c.execBuild(build)
|
||||
return c.execBuild(ctx, build)
|
||||
}
|
||||
|
||||
b, err := c.host.builderFor(build)
|
||||
b, err := c.host.builderFor(ctx, build)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -197,7 +197,7 @@ func (c *cli) Build(
|
||||
DockerfilePath: opts.DockerfileName,
|
||||
DockerfileInline: build.Inline(),
|
||||
NamedContexts: namedContexts,
|
||||
InStream: strings.NewReader(""),
|
||||
InStream: buildx.NewSyncMultiReader(strings.NewReader("")),
|
||||
},
|
||||
// Disable default provenance for now. Docker's `manifest create`
|
||||
// doesn't handle manifests with provenance included; more reason
|
||||
@@ -218,7 +218,7 @@ func (c *cli) Build(
|
||||
|
||||
Session: []session.Attachable{
|
||||
ssh,
|
||||
authprovider.NewDockerAuthProvider(c.ConfigFile(), nil),
|
||||
authprovider.NewDockerAuthProvider(authprovider.DockerAuthProviderConfig{ConfigFile: c.ConfigFile()}),
|
||||
build.Secrets(),
|
||||
},
|
||||
},
|
||||
@@ -230,7 +230,7 @@ func (c *cli) Build(
|
||||
b.nodes,
|
||||
payload,
|
||||
dockerutil.NewClient(c),
|
||||
filepath.Dir(c.ConfigFile().Filename),
|
||||
confutil.NewConfig(c),
|
||||
printer,
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
@@ -55,7 +55,7 @@ func TestCustomHost(t *testing.T) {
|
||||
t.Run("env", func(t *testing.T) {
|
||||
t.Setenv("DOCKER_HOST", socket)
|
||||
|
||||
h, err := newHost(nil)
|
||||
h, err := newHost(context.Background(), nil)
|
||||
require.NoError(t, err)
|
||||
cli, err := wrap(h)
|
||||
require.NoError(t, err)
|
||||
@@ -66,7 +66,7 @@ func TestCustomHost(t *testing.T) {
|
||||
|
||||
t.Run("config", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
h, err := newHost(&Config{Host: socket})
|
||||
h, err := newHost(context.Background(), &Config{Host: socket})
|
||||
require.NoError(t, err)
|
||||
cli, err := wrap(h)
|
||||
require.NoError(t, err)
|
||||
@@ -263,7 +263,6 @@ func TestBuild(t *testing.T) {
|
||||
|
||||
// Add an exec: true version for all of our test cases.
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
tt.name = "exec-" + tt.name
|
||||
tt.args.Exec = true
|
||||
tmpdir := filepath.Join(t.TempDir(), "exec")
|
||||
@@ -281,7 +280,6 @@ func TestBuild(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
if tt.skip {
|
||||
@@ -290,7 +288,7 @@ func TestBuild(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
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)
|
||||
|
||||
_, err = cli.Build(ctx, build)
|
||||
@@ -341,7 +339,6 @@ func TestNormalizeReference(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.ref, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
ref, err := normalizeReference(tt.ref)
|
||||
@@ -383,7 +380,7 @@ func TestBuildError(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
cli := testcli(t, true)
|
||||
|
||||
build, err := args.toBuild(ctx, false)
|
||||
build, err := args.toBuild(ctx, true, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = cli.Build(ctx, build)
|
||||
@@ -418,7 +415,7 @@ func TestBuildExecError(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
cli := testcli(t, true)
|
||||
|
||||
build, err := args.toBuild(ctx, false)
|
||||
build, err := args.toBuild(ctx, true, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = cli.Build(ctx, build)
|
||||
@@ -438,7 +435,7 @@ func TestBuildExecError(t *testing.T) {
|
||||
// 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.
|
||||
func testcli(t *testing.T, ping bool, auths ...Registry) *cli {
|
||||
h, err := newHost(nil)
|
||||
h, err := newHost(context.Background(), nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
cli, err := wrap(h, auths...)
|
||||
|
||||
@@ -99,7 +99,6 @@ func TestValidateContext(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
@@ -407,7 +406,6 @@ func TestDockerIgnore(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
fs := afero.NewMemMapFs()
|
||||
|
||||
@@ -41,7 +41,6 @@ can be accessed like environment variables inside the ` + "`RUN`\n" + `instructi
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := dedent(tt.given)
|
||||
|
||||
@@ -128,8 +128,6 @@ func TestConfigEncoding(t *testing.T) {
|
||||
|
||||
t.Run("turnaround", func(t *testing.T) {
|
||||
for i, tc := range turnaroundTestCases {
|
||||
tc := tc
|
||||
|
||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
checkUnmarshal(t, tc)
|
||||
@@ -172,8 +170,6 @@ func TestConfigEncoding(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
tc := tc
|
||||
|
||||
t.Run(fmt.Sprintf("%v", tc.ty), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
checkUnmarshal(t, tc)
|
||||
@@ -185,8 +181,6 @@ func TestConfigEncoding(t *testing.T) {
|
||||
unk := resource.MakeComputed(resource.NewStringProperty(""))
|
||||
|
||||
for i, tc := range turnaroundTestCases {
|
||||
tc := tc
|
||||
|
||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
// Unknown sentinel unmarshals to a Computed with a type-appropriate zero value.
|
||||
@@ -219,8 +213,6 @@ func TestConfigEncoding(t *testing.T) {
|
||||
}
|
||||
|
||||
for i, tc := range secretCases {
|
||||
tc := tc
|
||||
|
||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
checkUnmarshal(t, tc)
|
||||
@@ -264,7 +256,6 @@ func TestConfigEncoding(t *testing.T) {
|
||||
|
||||
t.Run("regress-unmarshal", func(t *testing.T) {
|
||||
for i, tc := range regressUnmarshalTestCases {
|
||||
tc := tc
|
||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
checkUnmarshal(t, tc)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"io"
|
||||
"os"
|
||||
@@ -96,13 +97,26 @@ func (d *Dockerfile) validate(preview bool, c *Context) 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 {
|
||||
return newCheckFailure(err, "dockerfile")
|
||||
}
|
||||
|
||||
_, _, err = instructions.Parse(parsed.AST, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
return newCheckFailure(err, "dockerfile")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -57,12 +57,31 @@ func TestValidateDockerfile(t *testing.T) {
|
||||
},
|
||||
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",
|
||||
d: Dockerfile{
|
||||
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",
|
||||
d: Dockerfile{},
|
||||
@@ -86,7 +105,6 @@ func TestValidateDockerfile(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
@@ -46,27 +46,27 @@ import pulumi_docker_build as docker_build
|
||||
ecr_repository = aws.ecr.Repository("ecr-repository")
|
||||
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
|
||||
my_image = docker_build.Image("my-image",
|
||||
cache_from=[docker_build.CacheFromArgs(
|
||||
registry=docker_build.CacheFromRegistryArgs(
|
||||
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
||||
),
|
||||
)],
|
||||
cache_to=[docker_build.CacheToArgs(
|
||||
registry=docker_build.CacheToRegistryArgs(
|
||||
image_manifest=True,
|
||||
oci_media_types=True,
|
||||
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
||||
),
|
||||
)],
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="./app",
|
||||
),
|
||||
cache_from=[{
|
||||
"registry": {
|
||||
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
||||
},
|
||||
}],
|
||||
cache_to=[{
|
||||
"registry": {
|
||||
"image_manifest": True,
|
||||
"oci_media_types": True,
|
||||
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
||||
},
|
||||
}],
|
||||
context={
|
||||
"location": "./app",
|
||||
},
|
||||
push=True,
|
||||
registries=[docker_build.RegistryArgs(
|
||||
address=ecr_repository.repository_url,
|
||||
password=auth_token.password,
|
||||
username=auth_token.user_name,
|
||||
)],
|
||||
registries=[{
|
||||
"address": ecr_repository.repository_url,
|
||||
"password": auth_token.password,
|
||||
"username": auth_token.user_name,
|
||||
}],
|
||||
tags=[ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:latest")])
|
||||
pulumi.export("ref", my_image.ref)
|
||||
```
|
||||
@@ -277,7 +277,7 @@ public class App {
|
||||
.registryId(ecrRepository.registryId())
|
||||
.build());
|
||||
|
||||
var myImage = new Image("myImage", ImageArgs.builder()
|
||||
var myImage = new Image("myImage", ImageArgs.builder()
|
||||
.cacheFrom(CacheFromArgs.builder()
|
||||
.registry(CacheFromRegistryArgs.builder()
|
||||
.ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
|
||||
@@ -330,9 +330,9 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
platforms=[
|
||||
docker_build.Platform.PLAN9_AMD64,
|
||||
docker_build.Platform.PLAN9_386,
|
||||
@@ -428,7 +428,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.build())
|
||||
@@ -468,15 +468,15 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
push=True,
|
||||
registries=[docker_build.RegistryArgs(
|
||||
address="docker.io",
|
||||
password=docker_hub_password,
|
||||
username="pulumibot",
|
||||
)],
|
||||
registries=[{
|
||||
"address": "docker.io",
|
||||
"password": docker_hub_password,
|
||||
"username": "pulumibot",
|
||||
}],
|
||||
tags=["docker.io/pulumi/pulumi:3.107.0"])
|
||||
pulumi.export("ref", my_image["ref"])
|
||||
```
|
||||
@@ -594,7 +594,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.build())
|
||||
@@ -642,20 +642,20 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
cache_from=[docker_build.CacheFromArgs(
|
||||
local=docker_build.CacheFromLocalArgs(
|
||||
src="tmp/cache",
|
||||
),
|
||||
)],
|
||||
cache_to=[docker_build.CacheToArgs(
|
||||
local=docker_build.CacheToLocalArgs(
|
||||
dest="tmp/cache",
|
||||
mode=docker_build.CacheMode.MAX,
|
||||
),
|
||||
)],
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
cache_from=[{
|
||||
"local": {
|
||||
"src": "tmp/cache",
|
||||
},
|
||||
}],
|
||||
cache_to=[{
|
||||
"local": {
|
||||
"dest": "tmp/cache",
|
||||
"mode": docker_build.CacheMode.MAX,
|
||||
},
|
||||
}],
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -782,7 +782,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.cacheFrom(CacheFromArgs.builder()
|
||||
.local(CacheFromLocalArgs.builder()
|
||||
.src("tmp/cache")
|
||||
@@ -827,12 +827,12 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
builder=docker_build.BuilderConfigArgs(
|
||||
name="cloud-builder-name",
|
||||
),
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
builder={
|
||||
"name": "cloud-builder-name",
|
||||
},
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
exec_=True,
|
||||
push=False)
|
||||
```
|
||||
@@ -926,7 +926,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.builder(BuilderConfigArgs.builder()
|
||||
.name("cloud-builder-name")
|
||||
.build())
|
||||
@@ -966,9 +966,9 @@ image = docker_build.Image("image",
|
||||
build_args={
|
||||
"SET_ME_TO_TRUE": "true",
|
||||
},
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1057,7 +1057,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.buildArgs(Map.of("SET_ME_TO_TRUE", "true"))
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
@@ -1089,9 +1089,9 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
push=False,
|
||||
target="build-me")
|
||||
```
|
||||
@@ -1175,7 +1175,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.build())
|
||||
@@ -1211,14 +1211,14 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
named={
|
||||
"golang:latest": docker_build.ContextArgs(
|
||||
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
||||
),
|
||||
context={
|
||||
"location": "app",
|
||||
"named": {
|
||||
"golang:latest": {
|
||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1313,7 +1313,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.named(Map.of("golang:latest", Map.of("location", "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
|
||||
@@ -1344,9 +1344,9 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||
),
|
||||
context={
|
||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1426,7 +1426,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile")
|
||||
.build())
|
||||
@@ -1461,14 +1461,14 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
dockerfile=docker_build.DockerfileArgs(
|
||||
inline="""FROM busybox
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
dockerfile={
|
||||
"inline": """FROM busybox
|
||||
COPY hello.c ./
|
||||
""",
|
||||
),
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1562,7 +1562,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.build())
|
||||
@@ -1601,12 +1601,12 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="https://github.com/docker-library/hello-world.git",
|
||||
),
|
||||
dockerfile=docker_build.DockerfileArgs(
|
||||
location="app/Dockerfile",
|
||||
),
|
||||
context={
|
||||
"location": "https://github.com/docker-library/hello-world.git",
|
||||
},
|
||||
dockerfile={
|
||||
"location": "app/Dockerfile",
|
||||
},
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1696,7 +1696,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("https://github.com/docker-library/hello-world.git")
|
||||
.build())
|
||||
@@ -1734,14 +1734,14 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
image = docker_build.Image("image",
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
exports=[docker_build.ExportArgs(
|
||||
docker=docker_build.ExportDockerArgs(
|
||||
tar=True,
|
||||
),
|
||||
)],
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
exports=[{
|
||||
"docker": {
|
||||
"tar": True,
|
||||
},
|
||||
}],
|
||||
push=False)
|
||||
```
|
||||
```csharp
|
||||
@@ -1843,7 +1843,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
var image = new Image("image", ImageArgs.builder()
|
||||
.context(BuildContextArgs.builder()
|
||||
.location("app")
|
||||
.build())
|
||||
|
||||
@@ -57,37 +57,37 @@ import pulumi
|
||||
import pulumi_docker_build as docker_build
|
||||
|
||||
amd64 = docker_build.Image("amd64",
|
||||
cache_from=[docker_build.CacheFromArgs(
|
||||
registry=docker_build.CacheFromRegistryArgs(
|
||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
||||
),
|
||||
)],
|
||||
cache_to=[docker_build.CacheToArgs(
|
||||
registry=docker_build.CacheToRegistryArgs(
|
||||
mode=docker_build.CacheMode.MAX,
|
||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
||||
),
|
||||
)],
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
cache_from=[{
|
||||
"registry": {
|
||||
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
||||
},
|
||||
}],
|
||||
cache_to=[{
|
||||
"registry": {
|
||||
"mode": docker_build.CacheMode.MAX,
|
||||
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
||||
},
|
||||
}],
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
platforms=[docker_build.Platform.LINUX_AMD64],
|
||||
tags=["docker.io/pulumi/pulumi:3.107.0-amd64"])
|
||||
arm64 = docker_build.Image("arm64",
|
||||
cache_from=[docker_build.CacheFromArgs(
|
||||
registry=docker_build.CacheFromRegistryArgs(
|
||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
||||
),
|
||||
)],
|
||||
cache_to=[docker_build.CacheToArgs(
|
||||
registry=docker_build.CacheToRegistryArgs(
|
||||
mode=docker_build.CacheMode.MAX,
|
||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
||||
),
|
||||
)],
|
||||
context=docker_build.BuildContextArgs(
|
||||
location="app",
|
||||
),
|
||||
cache_from=[{
|
||||
"registry": {
|
||||
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
||||
},
|
||||
}],
|
||||
cache_to=[{
|
||||
"registry": {
|
||||
"mode": docker_build.CacheMode.MAX,
|
||||
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
||||
},
|
||||
}],
|
||||
context={
|
||||
"location": "app",
|
||||
},
|
||||
platforms=[docker_build.Platform.LINUX_ARM64],
|
||||
tags=["docker.io/pulumi/pulumi:3.107.0-arm64"])
|
||||
index = docker_build.Index("index",
|
||||
@@ -355,7 +355,7 @@ public class App {
|
||||
}
|
||||
|
||||
public static void stack(Context ctx) {
|
||||
var amd64 = new Image("amd64", ImageArgs.builder()
|
||||
var amd64 = new Image("amd64", ImageArgs.builder()
|
||||
.cacheFrom(CacheFromArgs.builder()
|
||||
.registry(CacheFromRegistryArgs.builder()
|
||||
.ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||
@@ -374,7 +374,7 @@ public class App {
|
||||
.tags("docker.io/pulumi/pulumi:3.107.0-amd64")
|
||||
.build());
|
||||
|
||||
var arm64 = new Image("arm64", ImageArgs.builder()
|
||||
var arm64 = new Image("arm64", ImageArgs.builder()
|
||||
.cacheFrom(CacheFromArgs.builder()
|
||||
.registry(CacheFromRegistryArgs.builder()
|
||||
.ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||
@@ -393,7 +393,7 @@ public class App {
|
||||
.tags("docker.io/pulumi/pulumi:3.107.0-arm64")
|
||||
.build());
|
||||
|
||||
var index = new Index("index", IndexArgs.builder()
|
||||
var index = new Index("index", IndexArgs.builder()
|
||||
.sources(
|
||||
amd64.ref(),
|
||||
arm64.ref())
|
||||
|
||||
@@ -17,11 +17,13 @@ package internal
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
controllerapi "github.com/docker/buildx/controller/pb"
|
||||
"github.com/docker/buildx/util/buildflags"
|
||||
"github.com/moby/buildkit/client"
|
||||
"github.com/tonistiigi/go-csvvalue"
|
||||
|
||||
"github.com/pulumi/pulumi-go-provider/infer"
|
||||
)
|
||||
@@ -108,7 +110,7 @@ func (e Export) String() string {
|
||||
// pushed returns true if the export would result in a registry push.
|
||||
func (e Export) pushed() bool {
|
||||
if e.Raw != "" {
|
||||
exp, err := buildflags.ParseExports([]string{e.Raw.String()})
|
||||
exp, err := parseExports([]string{e.Raw.String()})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
@@ -123,14 +125,86 @@ func (e Export) pushed() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// parseExports is forked from docker/buildx@v0.18.0 from util/buildflags/export.go
|
||||
// to maintain the old logic. This is to get a working version of the provider with
|
||||
// the latest buildx while maintaining the old behaviour.
|
||||
//
|
||||
// TODO: Remove this fork and update existing logic/tests.
|
||||
func parseExports(inp []string) ([]*controllerapi.ExportEntry, error) {
|
||||
if len(inp) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
outs := make([]*controllerapi.ExportEntry, 0, len(inp))
|
||||
|
||||
for _, s := range inp {
|
||||
fields, err := csvvalue.Fields(s, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out := controllerapi.ExportEntry{
|
||||
Attrs: map[string]string{},
|
||||
}
|
||||
if len(fields) == 1 && fields[0] == s && !strings.HasPrefix(s, "type=") {
|
||||
if s != "-" {
|
||||
outs = append(outs, &controllerapi.ExportEntry{
|
||||
Type: client.ExporterLocal,
|
||||
Destination: s,
|
||||
})
|
||||
continue
|
||||
}
|
||||
out = controllerapi.ExportEntry{
|
||||
Type: client.ExporterTar,
|
||||
Destination: s,
|
||||
}
|
||||
}
|
||||
|
||||
if out.Type == "" {
|
||||
for _, field := range fields {
|
||||
parts := strings.SplitN(field, "=", 2)
|
||||
if len(parts) != 2 {
|
||||
return nil, fmt.Errorf("invalid value %s", field)
|
||||
}
|
||||
key := strings.TrimSpace(strings.ToLower(parts[0]))
|
||||
value := parts[1]
|
||||
switch key {
|
||||
case "type":
|
||||
out.Type = value
|
||||
default:
|
||||
out.Attrs[key] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
if out.Type == "" {
|
||||
return nil, errors.New("type is required for output")
|
||||
}
|
||||
|
||||
if out.Type == "registry" {
|
||||
out.Type = client.ExporterImage
|
||||
if _, ok := out.Attrs["push"]; !ok {
|
||||
out.Attrs["push"] = "true"
|
||||
}
|
||||
}
|
||||
|
||||
if dest, ok := out.Attrs["dest"]; ok {
|
||||
out.Destination = dest
|
||||
delete(out.Attrs, "dest")
|
||||
}
|
||||
|
||||
outs = append(outs, &out)
|
||||
}
|
||||
return outs, nil
|
||||
}
|
||||
|
||||
func (e Export) validate(preview bool, tags []string) (*controllerapi.ExportEntry, error) {
|
||||
if strings.Count(e.String(), "type=") > 1 {
|
||||
return nil, errors.New("exports should only specify one export type")
|
||||
}
|
||||
ee, err := buildflags.ParseExports([]string{e.String()})
|
||||
ee, err := parseExports([]string{e.String()})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
exp := ee[0]
|
||||
if len(tags) == 0 && isRegistryPush(exp) && exp.Attrs["name"] == "" {
|
||||
return nil, errors.New(
|
||||
@@ -353,6 +427,19 @@ func (e *ExportLocal) Annotate(a infer.Annotator) {
|
||||
a.Describe(&e.Dest, "Output path.")
|
||||
}
|
||||
|
||||
// Exists returns true if the exported directory exists and is populated with
|
||||
// some files.
|
||||
func (e *ExportLocal) Exists() bool {
|
||||
if e == nil {
|
||||
return true // Degenerate case.
|
||||
}
|
||||
files, err := os.ReadDir(e.Dest)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return len(files) > 0
|
||||
}
|
||||
|
||||
// ExportTar is an export that uses the tar format for exporting.
|
||||
type ExportTar struct {
|
||||
ExportLocal
|
||||
@@ -365,6 +452,15 @@ func (e *ExportTar) String() string {
|
||||
return "type=tar,dest=" + e.Dest
|
||||
}
|
||||
|
||||
// Exists returns true if a file exists at the expected path.
|
||||
func (e *ExportTar) Exists() bool {
|
||||
if e == nil {
|
||||
return true // Degenerate case.
|
||||
}
|
||||
_, err := os.Stat(e.Dest)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
// ExportWithOCI is an export that support OCI media types.
|
||||
type ExportWithOCI struct {
|
||||
OCI *bool `pulumi:"ociMediaTypes,optional"`
|
||||
|
||||
@@ -74,7 +74,6 @@ func TestValidateExport(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
e, err := tt.e.validate(tt.preview, tt.givenTags)
|
||||
@@ -181,7 +180,6 @@ func TestExportString(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := tt.given.String()
|
||||
@@ -236,7 +234,6 @@ func TestExportPushed(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := tt.e.pushed()
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/blang/semver"
|
||||
"github.com/docker/buildx/builder"
|
||||
"github.com/docker/buildx/store/storeutil"
|
||||
"github.com/docker/cli/cli/command"
|
||||
@@ -35,9 +36,12 @@ type host struct {
|
||||
config *Config
|
||||
builders map[string]*cachedBuilder
|
||||
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)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -47,11 +51,13 @@ func newHost(config *Config) (*host, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
h := &host{
|
||||
cli: docker,
|
||||
config: config,
|
||||
builders: map[string]*cachedBuilder{},
|
||||
auths: auths,
|
||||
cli: docker,
|
||||
config: config,
|
||||
builders: map[string]*cachedBuilder{},
|
||||
auths: auths,
|
||||
supportsMultipleExports: false, // Determined when we boot the builder.
|
||||
}
|
||||
return h, err
|
||||
}
|
||||
@@ -62,7 +68,7 @@ func newHost(config *Config) (*host, error) {
|
||||
//
|
||||
// If the build doesn't specify a builder by name, we will iterate through all
|
||||
// available builders until we find one that we can connect to.
|
||||
func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
||||
func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, error) {
|
||||
h.mu.Lock()
|
||||
defer h.mu.Unlock()
|
||||
|
||||
@@ -110,7 +116,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
||||
if bb.Err() != nil {
|
||||
continue
|
||||
}
|
||||
nodes, err := bb.LoadNodes(context.Background())
|
||||
nodes, err := bb.LoadNodes(ctx)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
@@ -119,7 +125,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
||||
if n.Driver == nil {
|
||||
continue nextbuilder
|
||||
}
|
||||
if _, err := n.Driver.Dial(context.Background()); err != nil {
|
||||
if _, err := n.Driver.Dial(ctx); err != nil {
|
||||
continue nextbuilder
|
||||
}
|
||||
// TODO: Confirm the builder supports the requested platforms.
|
||||
@@ -133,7 +139,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
||||
|
||||
// If we STILL don't have a builder, create a docker-container instance.
|
||||
b, err = builder.Create(
|
||||
context.Background(),
|
||||
ctx,
|
||||
txn,
|
||||
h.cli,
|
||||
builder.CreateOpts{Driver: "docker-container"},
|
||||
@@ -141,7 +147,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("creating builder: %w", err)
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
||||
ctx, cancel := context.WithTimeout(ctx, 30*time.Second)
|
||||
defer cancel()
|
||||
if _, err := b.Boot(ctx); err != nil {
|
||||
return nil, fmt.Errorf("booting builder: %w", err)
|
||||
@@ -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
|
||||
// errors for "exec" builds because it's possible to request builders with
|
||||
// drivers that are unknown to us.
|
||||
nodes, err := b.LoadNodes(context.Background())
|
||||
nodes, err := b.LoadNodes(ctx, builder.WithData())
|
||||
if err != nil && !build.ShouldExec() {
|
||||
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}
|
||||
h.builders[opts.Builder] = cached
|
||||
|
||||
@@ -38,7 +38,7 @@ import (
|
||||
|
||||
provider "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi-go-provider/infer"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/property"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||
)
|
||||
|
||||
@@ -61,7 +61,10 @@ var _imageExamples string
|
||||
var _migration string
|
||||
|
||||
// Image is a Docker image build using buildkit.
|
||||
type Image struct{}
|
||||
type Image struct {
|
||||
docker Client
|
||||
config *Config
|
||||
}
|
||||
|
||||
// Annotate provides a description of the Image resource.
|
||||
func (i *Image) Annotate(a infer.Annotator) {
|
||||
@@ -329,40 +332,44 @@ func (is *ImageState) Annotate(a infer.Annotator) {
|
||||
|
||||
// client produces a CLI client scoped to this resource and layered on top of
|
||||
// any host-level credentials.
|
||||
func (i *Image) client(ctx context.Context, state ImageState, args ImageArgs) (Client, error) {
|
||||
cfg := infer.GetConfig[Config](ctx)
|
||||
|
||||
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
||||
return cli, nil
|
||||
func (i *Image) client(_ context.Context, state ImageState, args ImageArgs) (Client, error) {
|
||||
// Use our mock client, if it's set.
|
||||
if i.docker != nil {
|
||||
return i.docker, nil
|
||||
}
|
||||
|
||||
// We prefer auth from args, the provider, and state in that order. We
|
||||
// build a slice in reverse order because wrap() will overwrite earlier
|
||||
// entries with later ones.
|
||||
auths := []Registry{}
|
||||
auths = append(auths, cfg.Registries...)
|
||||
auths = append(auths, i.config.Registries...)
|
||||
auths = append(auths, args.Registries...)
|
||||
|
||||
return wrap(cfg.host, auths...)
|
||||
return wrap(i.config.host, auths...)
|
||||
}
|
||||
|
||||
// Check validates ImageArgs, sets defaults, and ensures our client is
|
||||
// authenticated.
|
||||
func (i *Image) Check(
|
||||
ctx context.Context,
|
||||
_ string,
|
||||
_ resource.PropertyMap,
|
||||
news resource.PropertyMap,
|
||||
) (ImageArgs, []provider.CheckFailure, error) {
|
||||
args, failures, err := infer.DefaultCheck[ImageArgs](ctx, news)
|
||||
req infer.CheckRequest,
|
||||
) (infer.CheckResponse[ImageArgs], error) {
|
||||
args, failures, err := infer.DefaultCheck[ImageArgs](ctx, req.NewInputs)
|
||||
if err != nil || len(failures) != 0 {
|
||||
return args, failures, err
|
||||
return infer.CheckResponse[ImageArgs]{Failures: failures, Inputs: args}, err
|
||||
}
|
||||
|
||||
// :(
|
||||
preview := news.ContainsUnknowns()
|
||||
// If the inputs aren't fully resolved we perform a weaker validation, for
|
||||
// example we might not be able to check the Dockerfile for syntactic
|
||||
// correctness.
|
||||
preview := property.New(req.NewInputs).HasComputed()
|
||||
|
||||
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()
|
||||
for _, e := range errs {
|
||||
if cf, ok := e.(checkFailure); ok {
|
||||
@@ -371,7 +378,7 @@ func (i *Image) Check(
|
||||
}
|
||||
}
|
||||
|
||||
return args, failures, err
|
||||
return infer.CheckResponse[ImageArgs]{Failures: failures, Inputs: args}, err
|
||||
}
|
||||
|
||||
type checkFailure struct {
|
||||
@@ -466,15 +473,15 @@ type build struct {
|
||||
exec bool
|
||||
}
|
||||
|
||||
func (b build) BuildOptions() controllerapi.BuildOptions {
|
||||
return b.opts
|
||||
func (b *build) BuildOptions() controllerapi.BuildOptions {
|
||||
return b.opts //nolint:govet // copylocks - not serialized.
|
||||
}
|
||||
|
||||
func (b build) Inline() string {
|
||||
func (b *build) Inline() string {
|
||||
return b.inline
|
||||
}
|
||||
|
||||
func (b build) Secrets() session.Attachable {
|
||||
func (b *build) Secrets() session.Attachable {
|
||||
m := map[string][]byte{}
|
||||
for k, v := range b.secrets {
|
||||
m[k] = []byte(v)
|
||||
@@ -482,15 +489,16 @@ func (b build) Secrets() session.Attachable {
|
||||
return secretsprovider.FromMap(m)
|
||||
}
|
||||
|
||||
func (b build) ShouldExec() bool {
|
||||
func (b *build) ShouldExec() bool {
|
||||
return b.exec
|
||||
}
|
||||
|
||||
func (ia ImageArgs) toBuild(
|
||||
ctx context.Context,
|
||||
supportsMultipleExports bool,
|
||||
preview bool,
|
||||
) (Build, error) {
|
||||
opts, err := ia.validate(preview)
|
||||
opts, err := ia.validate(supportsMultipleExports, preview)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -507,8 +515,8 @@ func (ia ImageArgs) toBuild(
|
||||
"Instead, perform one cached build per platform and create an Index to join them all together.")
|
||||
}
|
||||
|
||||
return build{
|
||||
opts: opts,
|
||||
return &build{
|
||||
opts: opts, //nolint:govet // copylocks - not serialized.
|
||||
inline: ia.Dockerfile.Inline,
|
||||
secrets: ia.Secrets,
|
||||
exec: ia.Exec,
|
||||
@@ -517,27 +525,29 @@ func (ia ImageArgs) toBuild(
|
||||
|
||||
// validate confirms the ImageArgs are valid and returns BuildOptions
|
||||
// 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
|
||||
|
||||
if len(ia.Exports) > 1 {
|
||||
multierr = errors.Join(multierr,
|
||||
newCheckFailure(errors.New("multiple exports are currently unsupported"), "exports"),
|
||||
)
|
||||
}
|
||||
if ia.Push && ia.Load {
|
||||
multierr = errors.Join(
|
||||
multierr,
|
||||
newCheckFailure(
|
||||
errors.New("push and load may not be set together at the moment"),
|
||||
"push",
|
||||
),
|
||||
)
|
||||
}
|
||||
if len(ia.Exports) > 0 && (ia.Push || ia.Load) {
|
||||
multierr = errors.Join(multierr,
|
||||
newCheckFailure(errors.New("exports can't be provided with push or load"), "exports"),
|
||||
)
|
||||
if !supportsMultipleExports {
|
||||
if len(ia.Exports) > 1 {
|
||||
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(
|
||||
multierr,
|
||||
newCheckFailure(
|
||||
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,
|
||||
newCheckFailure(errors.New("multiple exports require a v0.13 buildkit daemon or newer"), "exports"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
dockerfile, context, err := ia.Context.validate(preview, ia.Dockerfile)
|
||||
@@ -568,7 +578,9 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
multierr = errors.Join(multierr, newCheckFailure(err, "exports[%d]", idx))
|
||||
continue
|
||||
}
|
||||
exports = append(exports, exp)
|
||||
if exp != nil {
|
||||
exports = append(exports, exp)
|
||||
}
|
||||
}
|
||||
|
||||
platforms := []string{}
|
||||
@@ -578,7 +590,9 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
multierr = errors.Join(multierr, newCheckFailure(err, "platforms[%d]", idx))
|
||||
continue
|
||||
}
|
||||
platforms = append(platforms, platform)
|
||||
if platform != "" {
|
||||
platforms = append(platforms, platform)
|
||||
}
|
||||
}
|
||||
|
||||
cacheFrom := []*controllerapi.CacheOptionsEntry{}
|
||||
@@ -591,7 +605,9 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
multierr = errors.Join(multierr, newCheckFailure(err, "cacheFrom[%d]", idx))
|
||||
continue
|
||||
}
|
||||
cacheFrom = append(cacheFrom, cache)
|
||||
if cache != nil {
|
||||
cacheFrom = append(cacheFrom, cache)
|
||||
}
|
||||
}
|
||||
|
||||
cacheTo := []*controllerapi.CacheOptionsEntry{}
|
||||
@@ -604,7 +620,9 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
multierr = errors.Join(multierr, newCheckFailure(err, "cacheTo[%d]", idx))
|
||||
continue
|
||||
}
|
||||
cacheTo = append(cacheTo, cache)
|
||||
if cache != nil {
|
||||
cacheTo = append(cacheTo, cache)
|
||||
}
|
||||
}
|
||||
|
||||
ssh := []*controllerapi.SSH{}
|
||||
@@ -614,7 +632,9 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
multierr = errors.Join(multierr, newCheckFailure(err, "ssh[%d]", idx))
|
||||
continue
|
||||
}
|
||||
ssh = append(ssh, ss)
|
||||
if ss != nil {
|
||||
ssh = append(ssh, ss)
|
||||
}
|
||||
}
|
||||
|
||||
for idx, t := range normalized.Tags {
|
||||
@@ -626,10 +646,10 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
secrets := []*controllerapi.Secret{}
|
||||
for k, v := range normalized.Secrets {
|
||||
// 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{
|
||||
ID: k,
|
||||
XXX_unrecognized: []byte(v),
|
||||
ID: k,
|
||||
Env: v,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -659,18 +679,17 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
||||
Target: normalized.Target,
|
||||
}
|
||||
|
||||
return opts, multierr
|
||||
return opts, multierr //nolint:govet // copylocks - not serialized.
|
||||
}
|
||||
|
||||
// Create builds an image using buildkit.
|
||||
func (i *Image) Create(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
input ImageArgs,
|
||||
preview bool,
|
||||
) (string, ImageState, error) {
|
||||
req infer.CreateRequest[ImageArgs],
|
||||
) (infer.CreateResponse[ImageState], error) {
|
||||
input := req.Inputs
|
||||
state := ImageState{ImageArgs: input}
|
||||
id := name
|
||||
id := req.Name
|
||||
|
||||
// Default our ref to one of our tags.
|
||||
for _, tag := range state.Tags {
|
||||
@@ -683,20 +702,29 @@ func (i *Image) Create(
|
||||
|
||||
cli, err := i.client(ctx, state, input)
|
||||
if err != nil {
|
||||
return id, state, err
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, err
|
||||
}
|
||||
|
||||
ok, err := cli.BuildKitEnabled()
|
||||
if err != nil {
|
||||
return id, state, fmt.Errorf("checking buildkit compatibility: %w", err)
|
||||
return infer.CreateResponse[ImageState]{
|
||||
ID: id,
|
||||
Output: state,
|
||||
}, fmt.Errorf("checking buildkit compatibility: %w", err)
|
||||
}
|
||||
if !ok {
|
||||
return id, state, errors.New("buildkit is not supported on this host")
|
||||
return infer.CreateResponse[ImageState]{
|
||||
ID: id,
|
||||
Output: state,
|
||||
}, errors.New("buildkit is not supported on this host")
|
||||
}
|
||||
|
||||
build, err := input.toBuild(ctx, preview)
|
||||
build, err := input.toBuild(ctx, cli.SupportsMultipleExports(), req.DryRun)
|
||||
if err != nil {
|
||||
return id, state, fmt.Errorf("preparing: %w", err)
|
||||
return infer.CreateResponse[ImageState]{
|
||||
ID: id,
|
||||
Output: state,
|
||||
}, fmt.Errorf("preparing: %w", err)
|
||||
}
|
||||
|
||||
hash, err := hashBuildContext(
|
||||
@@ -705,21 +733,24 @@ func (i *Image) Create(
|
||||
input.Context.Named.Map(),
|
||||
)
|
||||
if err != nil {
|
||||
return id, state, fmt.Errorf("hashing build context: %w", err)
|
||||
return infer.CreateResponse[ImageState]{
|
||||
ID: id,
|
||||
Output: state,
|
||||
}, fmt.Errorf("hashing build context: %w", err)
|
||||
}
|
||||
state.ContextHash = hash
|
||||
|
||||
if preview && !input.shouldBuildOnPreview() {
|
||||
return id, state, nil
|
||||
if req.DryRun && !input.shouldBuildOnPreview() {
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, nil
|
||||
}
|
||||
if preview && !input.buildable() {
|
||||
if req.DryRun && !input.buildable() {
|
||||
provider.GetLogger(ctx).Warning("Skipping preview build because some inputs are unknown.")
|
||||
return id, state, nil
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, nil
|
||||
}
|
||||
|
||||
result, err := cli.Build(ctx, build)
|
||||
if err != nil {
|
||||
return id, state, err
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, err
|
||||
}
|
||||
|
||||
if d, ok := result.ExporterResponse[exptypes.ExporterImageDigestKey]; ok {
|
||||
@@ -729,7 +760,7 @@ func (i *Image) Create(
|
||||
|
||||
if state.Digest == "" {
|
||||
// Can't construct a ref, nothing else to do.
|
||||
return id, state, nil
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, nil
|
||||
}
|
||||
|
||||
// Take the first registry tag we find and add a digest to it. That becomes
|
||||
@@ -744,7 +775,7 @@ func (i *Image) Create(
|
||||
break
|
||||
}
|
||||
|
||||
return id, state, nil
|
||||
return infer.CreateResponse[ImageState]{ID: id, Output: state}, nil
|
||||
}
|
||||
|
||||
// Update builds a new image. Normally we create-replace resources, but for
|
||||
@@ -752,36 +783,41 @@ func (i *Image) Create(
|
||||
// updates and simply re-build the image without deleting anything.
|
||||
func (i *Image) Update(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
_ ImageState,
|
||||
input ImageArgs,
|
||||
preview bool,
|
||||
) (ImageState, error) {
|
||||
_, state, err := i.Create(ctx, name, input, preview)
|
||||
return state, err
|
||||
req infer.UpdateRequest[ImageArgs, ImageState],
|
||||
) (infer.UpdateResponse[ImageState], error) {
|
||||
resp, err := i.Create(ctx,
|
||||
infer.CreateRequest[ImageArgs]{Name: req.ID, Inputs: req.Inputs, DryRun: req.DryRun},
|
||||
)
|
||||
return infer.UpdateResponse[ImageState]{Output: resp.Output}, err
|
||||
}
|
||||
|
||||
// Read attempts to read manifests from an image's exports. An image without
|
||||
// exports will have no manifests.
|
||||
func (i *Image) Read(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
input ImageArgs,
|
||||
state ImageState,
|
||||
req infer.ReadRequest[ImageArgs, ImageState],
|
||||
) (
|
||||
string, // id
|
||||
ImageArgs, // normalized inputs
|
||||
ImageState, // normalized state
|
||||
infer.ReadResponse[ImageArgs, ImageState],
|
||||
error,
|
||||
) {
|
||||
state, input := req.State, req.Inputs
|
||||
|
||||
cli, err := i.client(ctx, state, input)
|
||||
if err != nil {
|
||||
return name, input, state, err
|
||||
return infer.ReadResponse[ImageArgs, ImageState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, err
|
||||
}
|
||||
|
||||
if !state.isExported() {
|
||||
// Nothing was pushed -- all done.
|
||||
return name, input, state, nil
|
||||
return infer.ReadResponse[ImageArgs, ImageState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, nil
|
||||
}
|
||||
|
||||
tagsToKeep := []string{}
|
||||
@@ -802,6 +838,7 @@ func (i *Image) Read(
|
||||
continue
|
||||
}
|
||||
|
||||
//nolint:gocritic // Bytes aren't copied in a hot path.
|
||||
for _, d := range descriptors {
|
||||
if d.Platform != nil && d.Platform.Architecture == "unknown" {
|
||||
// Ignore cache manifests.
|
||||
@@ -816,29 +853,29 @@ func (i *Image) Read(
|
||||
// If we couldn't find the tags we expected then return an empty ID to
|
||||
// delete the resource.
|
||||
if len(input.Tags) > 0 && len(tagsToKeep) == 0 {
|
||||
return "", input, state, nil
|
||||
return infer.ReadResponse[ImageArgs, ImageState]{ID: "", Inputs: input, State: state}, nil
|
||||
}
|
||||
|
||||
state.Tags = tagsToKeep
|
||||
|
||||
return name, input, state, nil
|
||||
return infer.ReadResponse[ImageArgs, ImageState]{ID: req.ID, Inputs: input, State: state}, nil
|
||||
}
|
||||
|
||||
// Delete deletes an Image. If the Image was already deleted out-of-band it is
|
||||
// treated as a success.
|
||||
func (i *Image) Delete(
|
||||
ctx context.Context,
|
||||
_ string,
|
||||
state ImageState,
|
||||
) error {
|
||||
req infer.DeleteRequest[ImageState],
|
||||
) (infer.DeleteResponse, error) {
|
||||
state := req.State
|
||||
cli, err := i.client(ctx, state, state.ImageArgs)
|
||||
if err != nil {
|
||||
return err
|
||||
return infer.DeleteResponse{}, err
|
||||
}
|
||||
|
||||
if state.Digest == "" {
|
||||
// Nothing was exported. Just try to delete the local image.
|
||||
return cli.Delete(ctx, state.Ref)
|
||||
return infer.DeleteResponse{}, cli.Delete(ctx, state.Ref)
|
||||
}
|
||||
|
||||
digests := []string{}
|
||||
@@ -866,17 +903,17 @@ func (i *Image) Delete(
|
||||
multierr = errors.Join(multierr, err)
|
||||
}
|
||||
|
||||
return multierr
|
||||
return infer.DeleteResponse{}, multierr
|
||||
}
|
||||
|
||||
// Diff re-implements most of the default diff behavior, with the exception of
|
||||
// ignoring "password" changes on registry inputs.
|
||||
func (*Image) Diff(
|
||||
_ context.Context,
|
||||
_ string,
|
||||
olds ImageState,
|
||||
news ImageArgs,
|
||||
req infer.DiffRequest[ImageArgs, ImageState],
|
||||
) (provider.DiffResponse, error) {
|
||||
olds, news := req.State, req.Inputs
|
||||
|
||||
diff := map[string]provider.PropertyDiff{}
|
||||
update := provider.PropertyDiff{Kind: provider.Update}
|
||||
|
||||
@@ -912,6 +949,12 @@ func (*Image) Diff(
|
||||
if fmt.Sprint(olds.Exports) != fmt.Sprint(news.Exports) {
|
||||
diff["exports"] = update
|
||||
}
|
||||
// Confirm local exports exist.
|
||||
for idx, e := range news.Exports {
|
||||
if !e.Local.Exists() || !e.Tar.Exists() {
|
||||
diff[fmt.Sprintf("exports[%d]", idx)] = update
|
||||
}
|
||||
}
|
||||
if !reflect.DeepEqual(olds.Labels, news.Labels) {
|
||||
diff["labels"] = update
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,7 @@ package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
@@ -23,9 +24,10 @@ import (
|
||||
// For examples/docs.
|
||||
_ "embed"
|
||||
|
||||
"github.com/regclient/regclient/types/errs"
|
||||
|
||||
provider "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi-go-provider/infer"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -44,7 +46,10 @@ var (
|
||||
var _indexExamples string
|
||||
|
||||
// Index is an OCI index or manifest list on a remote registry.
|
||||
type Index struct{}
|
||||
type Index struct {
|
||||
docker Client
|
||||
config *Config
|
||||
}
|
||||
|
||||
// IndexArgs instantiate an Index.
|
||||
type IndexArgs struct {
|
||||
@@ -129,88 +134,112 @@ func (i *IndexState) Annotate(a infer.Annotator) {
|
||||
// Create is a passthrough to Update.
|
||||
func (i *Index) Create(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
input IndexArgs,
|
||||
preview bool,
|
||||
) (string, IndexState, error) {
|
||||
state, err := i.Update(ctx, name, IndexState{}, input, preview)
|
||||
return name, state, err
|
||||
req infer.CreateRequest[IndexArgs],
|
||||
) (infer.CreateResponse[IndexState], error) {
|
||||
resp, err := i.Update(ctx,
|
||||
infer.UpdateRequest[IndexArgs, IndexState]{
|
||||
ID: req.Name,
|
||||
State: IndexState{},
|
||||
Inputs: req.Inputs,
|
||||
DryRun: req.DryRun,
|
||||
},
|
||||
)
|
||||
return infer.CreateResponse[IndexState]{ID: req.Name, Output: resp.Output}, err
|
||||
}
|
||||
|
||||
// Update performs `buildx imagetools create` to create a new OCI index /
|
||||
// manifest list.
|
||||
func (i *Index) Update(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
state IndexState,
|
||||
input IndexArgs,
|
||||
preview bool,
|
||||
) (IndexState, error) {
|
||||
req infer.UpdateRequest[IndexArgs, IndexState],
|
||||
) (infer.UpdateResponse[IndexState], error) {
|
||||
state, input := req.State, req.Inputs
|
||||
|
||||
state.IndexArgs = input
|
||||
state.Ref = input.Tag
|
||||
|
||||
cli, err := i.client(ctx, state, input)
|
||||
if err != nil {
|
||||
return state, err
|
||||
return infer.UpdateResponse[IndexState]{Output: state}, err
|
||||
}
|
||||
|
||||
if preview {
|
||||
return state, nil
|
||||
if req.DryRun {
|
||||
return infer.UpdateResponse[IndexState]{Output: state}, nil
|
||||
}
|
||||
|
||||
provider.GetLogger(ctx).Debugf("creating index with tag %s and sources %s", input.Tag, input.Sources)
|
||||
provider.GetLogger(ctx).
|
||||
Debugf("creating index with tag %s and sources %s", input.Tag, input.Sources)
|
||||
|
||||
err = cli.ManifestCreate(ctx, input.isPushed(), input.Tag, input.Sources...)
|
||||
if err != nil {
|
||||
return state, fmt.Errorf("creating: %w", err)
|
||||
return infer.UpdateResponse[IndexState]{Output: state}, fmt.Errorf("creating: %w", err)
|
||||
}
|
||||
|
||||
_, _, state, err = i.Read(ctx, name, input, state)
|
||||
// Read remote manifest information, if it exists.
|
||||
live, err := i.Read(ctx,
|
||||
infer.ReadRequest[IndexArgs, IndexState]{ID: req.ID, Inputs: input, State: state},
|
||||
)
|
||||
if err != nil {
|
||||
return state, fmt.Errorf("reading: %w", err)
|
||||
return infer.UpdateResponse[IndexState]{Output: state}, fmt.Errorf("reading: %w", err)
|
||||
}
|
||||
return state, nil
|
||||
return infer.UpdateResponse[IndexState]{Output: live.State}, nil
|
||||
}
|
||||
|
||||
func (i *Index) Read(
|
||||
ctx context.Context,
|
||||
name string,
|
||||
input IndexArgs,
|
||||
state IndexState,
|
||||
) (string, IndexArgs, IndexState, error) {
|
||||
req infer.ReadRequest[IndexArgs, IndexState],
|
||||
) (infer.ReadResponse[IndexArgs, IndexState], error) {
|
||||
state, input := req.State, req.Inputs
|
||||
|
||||
state.IndexArgs = input
|
||||
state.Ref = input.Tag
|
||||
|
||||
if !input.isPushed() {
|
||||
provider.GetLogger(ctx).Debug("skipping read because index was not pushed")
|
||||
return name, input, state, nil // Nothing to read.
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, nil // Nothing to read.
|
||||
}
|
||||
|
||||
cli, err := i.client(ctx, state, input)
|
||||
if err != nil {
|
||||
return name, input, state, err
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, err
|
||||
}
|
||||
|
||||
provider.GetLogger(ctx).Debug("reading index with tag " + input.Tag)
|
||||
|
||||
digest, err := cli.ManifestInspect(ctx, input.Tag)
|
||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") && input.isPushed() {
|
||||
if errors.Is(err, errs.ErrNotFound) {
|
||||
// A remote tag was expected but isn't there -- delete the resource.
|
||||
return "", input, state, err
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{ID: "", Inputs: input, State: state}, nil
|
||||
}
|
||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") && !input.isPushed() {
|
||||
// Nothing was pushed, so just use the tag without digest..
|
||||
return name, input, state, nil
|
||||
if errors.Is(err, errs.ErrHTTPUnauthorized) {
|
||||
provider.GetLogger(ctx).Warning("invalid credentials, skipping")
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, nil
|
||||
}
|
||||
if err != nil {
|
||||
return name, input, state, err
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{
|
||||
ID: req.ID,
|
||||
Inputs: input,
|
||||
State: state,
|
||||
}, err
|
||||
}
|
||||
|
||||
if ref, ok := addDigest(input.Tag, digest); ok {
|
||||
state.Ref = ref
|
||||
}
|
||||
|
||||
return name, input, state, nil
|
||||
return infer.ReadResponse[IndexArgs, IndexState]{ID: req.ID, Inputs: input, State: state}, nil
|
||||
}
|
||||
|
||||
// Check confirms the Index's tag and source refs are all valid. This doesn't
|
||||
@@ -219,13 +248,11 @@ func (i *Index) Read(
|
||||
// cases for now.
|
||||
func (i *Index) Check(
|
||||
ctx context.Context,
|
||||
_ string,
|
||||
_ resource.PropertyMap,
|
||||
news resource.PropertyMap,
|
||||
) (IndexArgs, []provider.CheckFailure, error) {
|
||||
args, failures, err := infer.DefaultCheck[IndexArgs](ctx, news)
|
||||
req infer.CheckRequest,
|
||||
) (infer.CheckResponse[IndexArgs], error) {
|
||||
args, failures, err := infer.DefaultCheck[IndexArgs](ctx, req.NewInputs)
|
||||
if err != nil {
|
||||
return args, failures, err
|
||||
return infer.CheckResponse[IndexArgs]{Failures: failures, Inputs: args}, err
|
||||
}
|
||||
|
||||
if _, err := normalizeReference(args.Tag); args.Tag != "" && err != nil {
|
||||
@@ -250,27 +277,31 @@ func (i *Index) Check(
|
||||
}
|
||||
}
|
||||
|
||||
return args, failures, nil
|
||||
return infer.CheckResponse[IndexArgs]{Failures: failures, Inputs: args}, nil
|
||||
}
|
||||
|
||||
// Delete attempts to delete the remote manifest.
|
||||
func (i *Index) Delete(ctx context.Context, _ string, state IndexState) error {
|
||||
func (i *Index) Delete(
|
||||
ctx context.Context,
|
||||
req infer.DeleteRequest[IndexState],
|
||||
) (infer.DeleteResponse, error) {
|
||||
state := req.State
|
||||
if !state.isPushed() {
|
||||
return nil // Nothing to delete.
|
||||
return infer.DeleteResponse{}, nil // Nothing to delete.
|
||||
}
|
||||
|
||||
cli, err := i.client(ctx, state, state.IndexArgs)
|
||||
if err != nil {
|
||||
return err
|
||||
return infer.DeleteResponse{}, err
|
||||
}
|
||||
|
||||
err = cli.ManifestDelete(ctx, state.Ref)
|
||||
// TODO: Upstream buildx swallows the error types we'd like to test for
|
||||
// here.
|
||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") {
|
||||
return nil
|
||||
return infer.DeleteResponse{}, nil
|
||||
}
|
||||
return err
|
||||
return infer.DeleteResponse{}, err
|
||||
}
|
||||
|
||||
// Diff returns a diff of proposed changes against current state. Ideally we
|
||||
@@ -279,10 +310,10 @@ func (i *Index) Delete(ctx context.Context, _ string, state IndexState) error {
|
||||
// change all the time due to short-lived AWS credentials).
|
||||
func (i *Index) Diff(
|
||||
_ context.Context,
|
||||
_ string,
|
||||
olds IndexState,
|
||||
news IndexArgs,
|
||||
req infer.DiffRequest[IndexArgs, IndexState],
|
||||
) (provider.DiffResponse, error) {
|
||||
olds, news := req.State, req.Inputs
|
||||
|
||||
diff := map[string]provider.PropertyDiff{}
|
||||
update := provider.PropertyDiff{Kind: provider.Update}
|
||||
replace := provider.PropertyDiff{Kind: provider.UpdateReplace}
|
||||
@@ -319,24 +350,23 @@ func (i *Index) Diff(
|
||||
// client produces a CLI client scoped to this resource and layered on top of
|
||||
// any host-level credentials.
|
||||
func (i *Index) client(
|
||||
ctx context.Context,
|
||||
_ context.Context,
|
||||
_ IndexState,
|
||||
args IndexArgs,
|
||||
) (Client, error) {
|
||||
cfg := infer.GetConfig[Config](ctx)
|
||||
|
||||
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
||||
return cli, nil
|
||||
// Use our mock client, if it's set.
|
||||
if i.docker != nil {
|
||||
return i.docker, nil
|
||||
}
|
||||
|
||||
// We prefer auth from args, the provider, and state in that order. We
|
||||
// build a slice in reverse order because wrap() will overwrite earlier
|
||||
// entries with later ones.
|
||||
auths := []Registry{}
|
||||
auths = append(auths, cfg.Registries...)
|
||||
auths = append(auths, i.config.Registries...)
|
||||
if args.Registry != nil {
|
||||
auths = append(auths, *args.Registry)
|
||||
}
|
||||
|
||||
return wrap(cfg.host, auths...)
|
||||
return wrap(i.config.host, auths...)
|
||||
}
|
||||
|
||||
@@ -18,13 +18,16 @@ import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/regclient/regclient/types/errs"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/mock/gomock"
|
||||
|
||||
provider "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi-go-provider/integration"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/mapper"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/property"
|
||||
)
|
||||
|
||||
func TestIndexLifecycle(t *testing.T) {
|
||||
@@ -43,16 +46,16 @@ func TestIndexLifecycle(t *testing.T) {
|
||||
client: realClient,
|
||||
op: func(t *testing.T) integration.Operation {
|
||||
return integration.Operation{
|
||||
Inputs: resource.PropertyMap{
|
||||
"tag": resource.NewStringProperty(
|
||||
Inputs: property.NewMap(map[string]property.Value{
|
||||
"tag": property.New(
|
||||
"docker.io/pulumibot/buildkit-e2e:manifest-unit",
|
||||
),
|
||||
"sources": resource.NewArrayProperty([]resource.PropertyValue{
|
||||
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||
"sources": property.New([]property.Value{
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||
}),
|
||||
"push": resource.NewBoolProperty(false),
|
||||
},
|
||||
"push": property.New(false),
|
||||
}),
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -62,32 +65,57 @@ func TestIndexLifecycle(t *testing.T) {
|
||||
client: realClient,
|
||||
op: func(t *testing.T) integration.Operation {
|
||||
return integration.Operation{
|
||||
Inputs: resource.PropertyMap{
|
||||
"tag": resource.NewStringProperty(
|
||||
Inputs: property.NewMap(map[string]property.Value{
|
||||
"tag": property.New(
|
||||
"docker.io/pulumibot/buildkit-e2e:manifest",
|
||||
),
|
||||
"sources": resource.NewArrayProperty([]resource.PropertyValue{
|
||||
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||
"sources": property.New([]property.Value{
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||
}),
|
||||
"push": resource.NewBoolProperty(true),
|
||||
"registry": resource.NewObjectProperty(resource.PropertyMap{
|
||||
"address": resource.NewStringProperty("docker.io"),
|
||||
"username": resource.NewStringProperty("pulumibot"),
|
||||
"password": resource.NewSecretProperty(&resource.Secret{
|
||||
Element: resource.NewStringProperty(
|
||||
os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||
),
|
||||
}),
|
||||
"push": property.New(true),
|
||||
"registry": property.New(map[string]property.Value{
|
||||
"address": property.New("docker.io"),
|
||||
"username": property.New("pulumibot"),
|
||||
"password": property.New(os.Getenv("DOCKER_HUB_PASSWORD")).WithSecret(true),
|
||||
}),
|
||||
},
|
||||
}),
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "expired credentials",
|
||||
client: func(t *testing.T) Client {
|
||||
ctrl := gomock.NewController(t)
|
||||
c := NewMockClient(ctrl)
|
||||
c.EXPECT().ManifestCreate(gomock.Any(), true, gomock.Any(), gomock.Any())
|
||||
c.EXPECT().ManifestInspect(gomock.Any(), gomock.Any()).Return("", errs.ErrHTTPUnauthorized)
|
||||
c.EXPECT().ManifestDelete(gomock.Any(), gomock.Any()).Return(nil)
|
||||
return c
|
||||
},
|
||||
op: func(t *testing.T) integration.Operation {
|
||||
return integration.Operation{
|
||||
Inputs: property.NewMap(map[string]property.Value{
|
||||
"tag": property.New(
|
||||
"docker.io/pulumibot/buildkit-e2e:manifest",
|
||||
),
|
||||
"sources": property.New([]property.Value{
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||
property.New("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||
}),
|
||||
"push": property.New(true),
|
||||
"registry": property.New(map[string]property.Value{
|
||||
"address": property.New("docker.io"),
|
||||
"username": property.New("pulumibot"),
|
||||
"password": property.New(os.Getenv("DOCKER_HUB_PASSWORD")).WithSecret(true),
|
||||
}),
|
||||
}),
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
if tt.skip {
|
||||
@@ -97,7 +125,7 @@ func TestIndexLifecycle(t *testing.T) {
|
||||
Resource: "docker-build:index:Index",
|
||||
Create: tt.op(t),
|
||||
}
|
||||
s := newServer(tt.client(t))
|
||||
s := newServer(t.Context(), t, tt.client(t))
|
||||
|
||||
err := s.Configure(provider.ConfigureRequest{})
|
||||
require.NoError(t, err)
|
||||
@@ -114,22 +142,22 @@ func TestIndexDiff(t *testing.T) {
|
||||
baseState := IndexState{IndexArgs: baseArgs}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
olds func(*testing.T, IndexState) IndexState
|
||||
news func(*testing.T, IndexArgs) IndexArgs
|
||||
name string
|
||||
state func(*testing.T, IndexState) IndexState
|
||||
inputs func(*testing.T, IndexArgs) IndexArgs
|
||||
|
||||
wantChanges bool
|
||||
}{
|
||||
{
|
||||
name: "no diff if no changes",
|
||||
olds: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
news: func(*testing.T, IndexArgs) IndexArgs { return baseArgs },
|
||||
state: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
inputs: func(*testing.T, IndexArgs) IndexArgs { return baseArgs },
|
||||
wantChanges: false,
|
||||
},
|
||||
{
|
||||
name: "diff if tag changes",
|
||||
olds: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
news: func(t *testing.T, a IndexArgs) IndexArgs {
|
||||
name: "diff if tag changes",
|
||||
state: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
inputs: func(t *testing.T, a IndexArgs) IndexArgs {
|
||||
a.Tag = "new-tag"
|
||||
return a
|
||||
},
|
||||
@@ -137,7 +165,7 @@ func TestIndexDiff(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "no diff if registry password changes",
|
||||
olds: func(_ *testing.T, s IndexState) IndexState {
|
||||
state: func(_ *testing.T, s IndexState) IndexState {
|
||||
s.Registry = &Registry{
|
||||
Address: "foo",
|
||||
Username: "foo",
|
||||
@@ -145,7 +173,7 @@ func TestIndexDiff(t *testing.T) {
|
||||
}
|
||||
return s
|
||||
},
|
||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
inputs: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
a.Registry = &Registry{
|
||||
Address: "foo",
|
||||
Username: "foo",
|
||||
@@ -156,9 +184,9 @@ func TestIndexDiff(t *testing.T) {
|
||||
wantChanges: false,
|
||||
},
|
||||
{
|
||||
name: "diff if registry added",
|
||||
olds: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
name: "diff if registry added",
|
||||
state: func(*testing.T, IndexState) IndexState { return baseState },
|
||||
inputs: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
a.Registry = &Registry{Address: "foo.com", Username: "foo", Password: "foo"}
|
||||
return a
|
||||
},
|
||||
@@ -166,7 +194,7 @@ func TestIndexDiff(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "diff if registry user changes",
|
||||
olds: func(_ *testing.T, s IndexState) IndexState {
|
||||
state: func(_ *testing.T, s IndexState) IndexState {
|
||||
s.Registry = &Registry{
|
||||
Address: "foo",
|
||||
Username: "foo",
|
||||
@@ -174,7 +202,7 @@ func TestIndexDiff(t *testing.T) {
|
||||
}
|
||||
return s
|
||||
},
|
||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
inputs: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||
a.Registry = &Registry{
|
||||
Address: "DIFFERENT USER",
|
||||
Username: "foo",
|
||||
@@ -186,22 +214,21 @@ func TestIndexDiff(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
s := newServer(nil)
|
||||
s := newServer(t.Context(), t, nil)
|
||||
|
||||
encode := func(t *testing.T, x any) resource.PropertyMap {
|
||||
encode := func(t *testing.T, x any) property.Map {
|
||||
raw, err := mapper.New(&mapper.Opts{IgnoreMissing: true}).Encode(x)
|
||||
require.NoError(t, err)
|
||||
return resource.NewPropertyMapFromMap(raw)
|
||||
return resource.FromResourcePropertyMap(resource.NewPropertyMapFromMap(raw))
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
resp, err := s.Diff(provider.DiffRequest{
|
||||
Urn: urn,
|
||||
Olds: encode(t, tt.olds(t, baseState)),
|
||||
News: encode(t, tt.news(t, baseArgs)),
|
||||
Urn: urn,
|
||||
State: encode(t, tt.state(t, baseState)),
|
||||
Inputs: encode(t, tt.inputs(t, baseArgs)),
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tt.wantChanges, resp.HasChanges, resp.DetailedDiff)
|
||||
|
||||
376
provider/internal/mockcli_test.go
generated
376
provider/internal/mockcli_test.go
generated
@@ -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
|
||||
//
|
||||
|
||||
// Package internal is a generated GoMock package.
|
||||
package internal
|
||||
|
||||
import (
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
|
||||
command "github.com/docker/cli/cli/command"
|
||||
@@ -22,6 +22,9 @@ import (
|
||||
trust "github.com/docker/cli/cli/trust"
|
||||
client0 "github.com/docker/docker/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"
|
||||
)
|
||||
|
||||
@@ -29,6 +32,7 @@ import (
|
||||
type MockCli struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockCliMockRecorder
|
||||
isgomock struct{}
|
||||
}
|
||||
|
||||
// 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.
|
||||
func (mr *MockCliMockRecorder) Apply(ops ...any) *CliApplyCall {
|
||||
func (mr *MockCliMockRecorder) Apply(ops ...any) *MockCliApplyCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliApplyCall struct {
|
||||
// MockCliApplyCall wrap *gomock.Call
|
||||
type MockCliApplyCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -100,31 +104,31 @@ func (m *MockCli) BuildKitEnabled() (bool, error) {
|
||||
}
|
||||
|
||||
// BuildKitEnabled indicates an expected call of BuildKitEnabled.
|
||||
func (mr *MockCliMockRecorder) BuildKitEnabled() *CliBuildKitEnabledCall {
|
||||
func (mr *MockCliMockRecorder) BuildKitEnabled() *MockCliBuildKitEnabledCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliBuildKitEnabledCall struct {
|
||||
// MockCliBuildKitEnabledCall wrap *gomock.Call
|
||||
type MockCliBuildKitEnabledCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -138,31 +142,31 @@ func (m *MockCli) Client() client0.APIClient {
|
||||
}
|
||||
|
||||
// Client indicates an expected call of Client.
|
||||
func (mr *MockCliMockRecorder) Client() *CliClientCall {
|
||||
func (mr *MockCliMockRecorder) Client() *MockCliClientCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliClientCall struct {
|
||||
// MockCliClientCall wrap *gomock.Call
|
||||
type MockCliClientCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -176,31 +180,31 @@ func (m *MockCli) ConfigFile() *configfile.ConfigFile {
|
||||
}
|
||||
|
||||
// ConfigFile indicates an expected call of ConfigFile.
|
||||
func (mr *MockCliMockRecorder) ConfigFile() *CliConfigFileCall {
|
||||
func (mr *MockCliMockRecorder) ConfigFile() *MockCliConfigFileCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliConfigFileCall struct {
|
||||
// MockCliConfigFileCall wrap *gomock.Call
|
||||
type MockCliConfigFileCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -214,31 +218,31 @@ func (m *MockCli) ContentTrustEnabled() bool {
|
||||
}
|
||||
|
||||
// ContentTrustEnabled indicates an expected call of ContentTrustEnabled.
|
||||
func (mr *MockCliMockRecorder) ContentTrustEnabled() *CliContentTrustEnabledCall {
|
||||
func (mr *MockCliMockRecorder) ContentTrustEnabled() *MockCliContentTrustEnabledCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliContentTrustEnabledCall struct {
|
||||
// MockCliContentTrustEnabledCall wrap *gomock.Call
|
||||
type MockCliContentTrustEnabledCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -252,31 +256,31 @@ func (m *MockCli) ContextStore() store.Store {
|
||||
}
|
||||
|
||||
// ContextStore indicates an expected call of ContextStore.
|
||||
func (mr *MockCliMockRecorder) ContextStore() *CliContextStoreCall {
|
||||
func (mr *MockCliMockRecorder) ContextStore() *MockCliContextStoreCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliContextStoreCall struct {
|
||||
// MockCliContextStoreCall wrap *gomock.Call
|
||||
type MockCliContextStoreCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -290,31 +294,31 @@ func (m *MockCli) CurrentContext() string {
|
||||
}
|
||||
|
||||
// CurrentContext indicates an expected call of CurrentContext.
|
||||
func (mr *MockCliMockRecorder) CurrentContext() *CliCurrentContextCall {
|
||||
func (mr *MockCliMockRecorder) CurrentContext() *MockCliCurrentContextCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliCurrentContextCall struct {
|
||||
// MockCliCurrentContextCall wrap *gomock.Call
|
||||
type MockCliCurrentContextCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -328,31 +332,31 @@ func (m *MockCli) CurrentVersion() string {
|
||||
}
|
||||
|
||||
// CurrentVersion indicates an expected call of CurrentVersion.
|
||||
func (mr *MockCliMockRecorder) CurrentVersion() *CliCurrentVersionCall {
|
||||
func (mr *MockCliMockRecorder) CurrentVersion() *MockCliCurrentVersionCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliCurrentVersionCall struct {
|
||||
// MockCliCurrentVersionCall wrap *gomock.Call
|
||||
type MockCliCurrentVersionCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -366,31 +370,31 @@ func (m *MockCli) DefaultVersion() string {
|
||||
}
|
||||
|
||||
// DefaultVersion indicates an expected call of DefaultVersion.
|
||||
func (mr *MockCliMockRecorder) DefaultVersion() *CliDefaultVersionCall {
|
||||
func (mr *MockCliMockRecorder) DefaultVersion() *MockCliDefaultVersionCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliDefaultVersionCall struct {
|
||||
// MockCliDefaultVersionCall wrap *gomock.Call
|
||||
type MockCliDefaultVersionCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -404,69 +408,69 @@ func (m *MockCli) DockerEndpoint() docker.Endpoint {
|
||||
}
|
||||
|
||||
// DockerEndpoint indicates an expected call of DockerEndpoint.
|
||||
func (mr *MockCliMockRecorder) DockerEndpoint() *CliDockerEndpointCall {
|
||||
func (mr *MockCliMockRecorder) DockerEndpoint() *MockCliDockerEndpointCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliDockerEndpointCall struct {
|
||||
// MockCliDockerEndpointCall wrap *gomock.Call
|
||||
type MockCliDockerEndpointCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// Err mocks base method.
|
||||
func (m *MockCli) Err() io.Writer {
|
||||
func (m *MockCli) Err() *streams.Out {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Err")
|
||||
ret0, _ := ret[0].(io.Writer)
|
||||
ret0, _ := ret[0].(*streams.Out)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// Err indicates an expected call of Err.
|
||||
func (mr *MockCliMockRecorder) Err() *CliErrCall {
|
||||
func (mr *MockCliMockRecorder) Err() *MockCliErrCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliErrCall struct {
|
||||
// MockCliErrCall wrap *gomock.Call
|
||||
type MockCliErrCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -480,31 +484,31 @@ func (m *MockCli) In() *streams.In {
|
||||
}
|
||||
|
||||
// In indicates an expected call of In.
|
||||
func (mr *MockCliMockRecorder) In() *CliInCall {
|
||||
func (mr *MockCliMockRecorder) In() *MockCliInCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliInCall struct {
|
||||
// MockCliInCall wrap *gomock.Call
|
||||
type MockCliInCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -518,31 +522,69 @@ func (m *MockCli) ManifestStore() store0.Store {
|
||||
}
|
||||
|
||||
// ManifestStore indicates an expected call of ManifestStore.
|
||||
func (mr *MockCliMockRecorder) ManifestStore() *CliManifestStoreCall {
|
||||
func (mr *MockCliMockRecorder) ManifestStore() *MockCliManifestStoreCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliManifestStoreCall struct {
|
||||
// MockCliManifestStoreCall wrap *gomock.Call
|
||||
type MockCliManifestStoreCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -557,31 +599,31 @@ func (m *MockCli) NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []st
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type CliNotaryClientCall struct {
|
||||
// MockCliNotaryClientCall wrap *gomock.Call
|
||||
type MockCliNotaryClientCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -595,31 +637,31 @@ func (m *MockCli) Out() *streams.Out {
|
||||
}
|
||||
|
||||
// Out indicates an expected call of Out.
|
||||
func (mr *MockCliMockRecorder) Out() *CliOutCall {
|
||||
func (mr *MockCliMockRecorder) Out() *MockCliOutCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliOutCall struct {
|
||||
// MockCliOutCall wrap *gomock.Call
|
||||
type MockCliOutCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -633,31 +675,69 @@ func (m *MockCli) RegistryClient(arg0 bool) client.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()
|
||||
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
|
||||
type CliRegistryClientCall struct {
|
||||
// MockCliRegistryClientCall wrap *gomock.Call
|
||||
type MockCliRegistryClientCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -671,31 +751,31 @@ func (m *MockCli) ServerInfo() command.ServerInfo {
|
||||
}
|
||||
|
||||
// ServerInfo indicates an expected call of ServerInfo.
|
||||
func (mr *MockCliMockRecorder) ServerInfo() *CliServerInfoCall {
|
||||
func (mr *MockCliMockRecorder) ServerInfo() *MockCliServerInfoCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type CliServerInfoCall struct {
|
||||
// MockCliServerInfoCall wrap *gomock.Call
|
||||
type MockCliServerInfoCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -707,31 +787,69 @@ func (m *MockCli) SetIn(in *streams.In) {
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type CliSetInCall struct {
|
||||
// MockCliSetInCall wrap *gomock.Call
|
||||
type MockCliSetInCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// Return rewrite *gomock.Call.Return
|
||||
func (c *CliSetInCall) Return() *CliSetInCall {
|
||||
func (c *MockCliSetInCall) Return() *MockCliSetInCall {
|
||||
c.Call = c.Call.Return()
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
195
provider/internal/mockclient_test.go
generated
195
provider/internal/mockclient_test.go
generated
@@ -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
|
||||
//
|
||||
|
||||
// Package internal is a generated GoMock package.
|
||||
package internal
|
||||
|
||||
@@ -23,6 +24,7 @@ import (
|
||||
type MockClient struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockClientMockRecorder
|
||||
isgomock struct{}
|
||||
}
|
||||
|
||||
// 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.
|
||||
func (mr *MockClientMockRecorder) Build(ctx, b any) *ClientBuildCall {
|
||||
func (mr *MockClientMockRecorder) Build(ctx, b any) *MockClientBuildCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type ClientBuildCall struct {
|
||||
// MockClientBuildCall wrap *gomock.Call
|
||||
type MockClientBuildCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -91,31 +93,31 @@ func (m *MockClient) BuildKitEnabled() (bool, error) {
|
||||
}
|
||||
|
||||
// BuildKitEnabled indicates an expected call of BuildKitEnabled.
|
||||
func (mr *MockClientMockRecorder) BuildKitEnabled() *ClientBuildKitEnabledCall {
|
||||
func (mr *MockClientMockRecorder) BuildKitEnabled() *MockClientBuildKitEnabledCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type ClientBuildKitEnabledCall struct {
|
||||
// MockClientBuildKitEnabledCall wrap *gomock.Call
|
||||
type MockClientBuildKitEnabledCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -129,31 +131,31 @@ func (m *MockClient) Delete(ctx context.Context, id string) error {
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type ClientDeleteCall struct {
|
||||
// MockClientDeleteCall wrap *gomock.Call
|
||||
type MockClientDeleteCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -168,31 +170,31 @@ func (m *MockClient) Inspect(ctx context.Context, id string) ([]descriptor.Descr
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type ClientInspectCall struct {
|
||||
// MockClientInspectCall wrap *gomock.Call
|
||||
type MockClientInspectCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -210,32 +212,32 @@ func (m *MockClient) ManifestCreate(ctx context.Context, push bool, target strin
|
||||
}
|
||||
|
||||
// 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()
|
||||
varargs := append([]any{ctx, push, target}, refs...)
|
||||
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
|
||||
type ClientManifestCreateCall struct {
|
||||
// MockClientManifestCreateCall wrap *gomock.Call
|
||||
type MockClientManifestCreateCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -249,31 +251,31 @@ func (m *MockClient) ManifestDelete(ctx context.Context, target string) error {
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type ClientManifestDeleteCall struct {
|
||||
// MockClientManifestDeleteCall wrap *gomock.Call
|
||||
type MockClientManifestDeleteCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -288,31 +290,69 @@ func (m *MockClient) ManifestInspect(ctx context.Context, target string) (string
|
||||
}
|
||||
|
||||
// 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()
|
||||
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
|
||||
type ClientManifestInspectCall struct {
|
||||
// MockClientManifestInspectCall wrap *gomock.Call
|
||||
type MockClientManifestInspectCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -321,6 +361,7 @@ func (c *ClientManifestInspectCall) DoAndReturn(f func(context.Context, string)
|
||||
type MockBuild struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockBuildMockRecorder
|
||||
isgomock struct{}
|
||||
}
|
||||
|
||||
// MockBuildMockRecorder is the mock recorder for MockBuild.
|
||||
@@ -349,31 +390,31 @@ func (m *MockBuild) BuildOptions() pb.BuildOptions {
|
||||
}
|
||||
|
||||
// BuildOptions indicates an expected call of BuildOptions.
|
||||
func (mr *MockBuildMockRecorder) BuildOptions() *BuildBuildOptionsCall {
|
||||
func (mr *MockBuildMockRecorder) BuildOptions() *MockBuildBuildOptionsCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type BuildBuildOptionsCall struct {
|
||||
// MockBuildBuildOptionsCall wrap *gomock.Call
|
||||
type MockBuildBuildOptionsCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -387,31 +428,31 @@ func (m *MockBuild) Inline() string {
|
||||
}
|
||||
|
||||
// Inline indicates an expected call of Inline.
|
||||
func (mr *MockBuildMockRecorder) Inline() *BuildInlineCall {
|
||||
func (mr *MockBuildMockRecorder) Inline() *MockBuildInlineCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type BuildInlineCall struct {
|
||||
// MockBuildInlineCall wrap *gomock.Call
|
||||
type MockBuildInlineCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -425,31 +466,31 @@ func (m *MockBuild) Secrets() session.Attachable {
|
||||
}
|
||||
|
||||
// Secrets indicates an expected call of Secrets.
|
||||
func (mr *MockBuildMockRecorder) Secrets() *BuildSecretsCall {
|
||||
func (mr *MockBuildMockRecorder) Secrets() *MockBuildSecretsCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type BuildSecretsCall struct {
|
||||
// MockBuildSecretsCall wrap *gomock.Call
|
||||
type MockBuildSecretsCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
@@ -463,31 +504,31 @@ func (m *MockBuild) ShouldExec() bool {
|
||||
}
|
||||
|
||||
// ShouldExec indicates an expected call of ShouldExec.
|
||||
func (mr *MockBuildMockRecorder) ShouldExec() *BuildShouldExecCall {
|
||||
func (mr *MockBuildMockRecorder) ShouldExec() *MockBuildShouldExecCall {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
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
|
||||
type BuildShouldExecCall struct {
|
||||
// MockBuildShouldExecCall wrap *gomock.Call
|
||||
type MockBuildShouldExecCall struct {
|
||||
*gomock.Call
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
// 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)
|
||||
return c
|
||||
}
|
||||
|
||||
@@ -22,9 +22,12 @@ var _ = (infer.Enum[NetworkMode])((*NetworkMode)(nil))
|
||||
type NetworkMode string
|
||||
|
||||
const (
|
||||
Default NetworkMode = "default" // Default network mode.
|
||||
Host NetworkMode = "host" // Host network mode.
|
||||
None NetworkMode = "none" // None or no network mode.
|
||||
// Default network mode.
|
||||
Default NetworkMode = "default"
|
||||
// Host network mode.
|
||||
Host NetworkMode = "host"
|
||||
// None or no network mode.
|
||||
None NetworkMode = "none"
|
||||
)
|
||||
|
||||
// Values returns all valid NetworkMode values for SDK generation.
|
||||
|
||||
@@ -29,6 +29,7 @@ import (
|
||||
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/property"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -45,9 +46,6 @@ type Config struct {
|
||||
host *host
|
||||
}
|
||||
|
||||
// _mockClientKey is used by tests to inject a mock Docker client.
|
||||
var _mockClientKey struct{}
|
||||
|
||||
// Annotate provides user-facing descriptions and defaults for Config's fields.
|
||||
func (c *Config) Annotate(a infer.Annotator) {
|
||||
a.Describe(&c.Host, "The build daemon's address.")
|
||||
@@ -55,8 +53,8 @@ func (c *Config) Annotate(a infer.Annotator) {
|
||||
}
|
||||
|
||||
// Configure validates and processes user-provided configuration values.
|
||||
func (c *Config) Configure(_ context.Context) error {
|
||||
h, err := newHost(c)
|
||||
func (c *Config) Configure(ctx context.Context) error {
|
||||
h, err := newHost(ctx, c)
|
||||
if err != nil {
|
||||
return fmt.Errorf("getting host: %w", err)
|
||||
}
|
||||
@@ -65,8 +63,10 @@ func (c *Config) Configure(_ context.Context) error {
|
||||
}
|
||||
|
||||
// NewBuildxProvider returns a new buildx provider.
|
||||
func NewBuildxProvider() provider.Provider {
|
||||
return infer.Provider(
|
||||
func NewBuildxProvider(mock Client) provider.Provider {
|
||||
config := &Config{}
|
||||
|
||||
prov := infer.Provider(
|
||||
infer.Options{
|
||||
Metadata: pschema.Metadata{
|
||||
DisplayName: "docker-build",
|
||||
@@ -96,43 +96,62 @@ func NewBuildxProvider() provider.Provider {
|
||||
BuildFiles: "gradle",
|
||||
GradleNexusPublishPluginVersion: "1.1.0",
|
||||
Dependencies: map[string]string{
|
||||
"com.pulumi:pulumi": "0.9.9",
|
||||
"com.pulumi:pulumi": "0.20.0",
|
||||
"com.google.code.gson:gson": "2.8.9",
|
||||
"com.google.code.findbugs:jsr305": "3.0.2",
|
||||
},
|
||||
},
|
||||
"nodejs": tsgen.NodePackageInfo{
|
||||
RespectSchemaVersion: true,
|
||||
Dependencies: map[string]string{
|
||||
"@pulumi/pulumi": "^3.0.0",
|
||||
},
|
||||
},
|
||||
"python": pygen.PackageInfo{
|
||||
RespectSchemaVersion: true,
|
||||
PyProject: struct {
|
||||
Enabled bool `json:"enabled,omitempty"`
|
||||
}{Enabled: true},
|
||||
Requires: map[string]string{
|
||||
"pulumi": ">=3.0.0,<4.0.0",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Resources: []infer.InferredResource{
|
||||
infer.Resource[*Image](),
|
||||
infer.Resource[*Index](),
|
||||
infer.Resource(&Image{docker: mock, config: config}),
|
||||
infer.Resource(&Index{docker: mock, config: config}),
|
||||
},
|
||||
ModuleMap: map[tokens.ModuleName]tokens.ModuleName{
|
||||
"internal": "index",
|
||||
},
|
||||
Config: infer.Config[*Config](),
|
||||
Config: infer.Config(config),
|
||||
},
|
||||
)
|
||||
|
||||
prov.DiffConfig = diffConfigIgnoreInternal(prov.DiffConfig)
|
||||
|
||||
return prov
|
||||
}
|
||||
|
||||
// TODO(pulumi/pulumi-docker-build#404): Remove this function once the bug is fixed in either
|
||||
// upstream pu/pu or pulumi-go-provider.
|
||||
|
||||
// diffConfigInternalIgnore is a custom DiffConfig implementation for the buildx provider. This is required to
|
||||
// circumvent the bug identified in https://github.com/pulumi/pulumi-docker-build/issues/404.
|
||||
// Since `__internal` is currently populated in new inputs, but stripped in old state, we need to
|
||||
// ignore this field in the diff. There is no easy way to override DiffConfig to compare inputs only.
|
||||
func diffConfigIgnoreInternal(
|
||||
diffConfig func(ctx context.Context, req provider.DiffRequest) (provider.DiffResponse, error),
|
||||
) func(ctx context.Context, req provider.DiffRequest) (provider.DiffResponse, error) {
|
||||
return func(ctx context.Context, req provider.DiffRequest) (provider.DiffResponse, error) {
|
||||
m := req.Inputs.AsMap()
|
||||
delete(m, "__internal")
|
||||
delete(m, "__pulumi-go-provider-infer")
|
||||
delete(m, "__pulumi-go-provider-version")
|
||||
req.Inputs = property.NewMap(m)
|
||||
|
||||
return diffConfig(ctx, req)
|
||||
}
|
||||
}
|
||||
|
||||
// Schema returns our package specification.
|
||||
func Schema(ctx context.Context, version string) schema.PackageSpec {
|
||||
p := NewBuildxProvider()
|
||||
p := NewBuildxProvider(nil)
|
||||
spec, err := provider.GetSchema(ctx, "docker-build", version, p)
|
||||
contract.AssertNoErrorf(err, "missing schema")
|
||||
return spec
|
||||
|
||||
@@ -20,18 +20,18 @@ import (
|
||||
|
||||
"github.com/blang/semver"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
provider "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi-go-provider/infer"
|
||||
"github.com/pulumi/pulumi-go-provider/integration"
|
||||
mwcontext "github.com/pulumi/pulumi-go-provider/middleware/context"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
|
||||
)
|
||||
|
||||
func TestConfigure(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
s := newServer(nil)
|
||||
s := newServer(t.Context(), t, nil)
|
||||
|
||||
err := s.Configure(
|
||||
provider.ConfigureRequest{},
|
||||
@@ -60,7 +60,7 @@ func TestAnnotate(t *testing.T) {
|
||||
func TestSchema(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
s := newServer(nil)
|
||||
s := newServer(t.Context(), t, nil)
|
||||
|
||||
_, err := s.GetSchema(provider.GetSchemaRequest{Version: 0})
|
||||
assert.NoError(t, err)
|
||||
@@ -68,21 +68,23 @@ func TestSchema(t *testing.T) {
|
||||
|
||||
type annotator struct{}
|
||||
|
||||
func (annotator) Deprecate(_ any, _ string) {}
|
||||
func (annotator) Describe(_ any, _ string) {}
|
||||
func (annotator) SetDefault(_, _ any, _ ...string) {}
|
||||
func (annotator) SetToken(tokens.ModuleName, tokens.TypeName) {}
|
||||
func (annotator) AddAlias(tokens.ModuleName, tokens.TypeName) {}
|
||||
func (annotator) SetResourceDeprecationMessage(_ string) {}
|
||||
|
||||
func newServer(client Client) integration.Server {
|
||||
p := NewBuildxProvider()
|
||||
func newServer(ctx context.Context, t *testing.T, client Client) integration.Server {
|
||||
t.Helper()
|
||||
|
||||
// Inject a mock client if provided.
|
||||
if client != nil {
|
||||
p = mwcontext.Wrap(p, func(ctx context.Context) context.Context {
|
||||
return context.WithValue(ctx, _mockClientKey, client)
|
||||
})
|
||||
}
|
||||
p := NewBuildxProvider(client)
|
||||
|
||||
return integration.NewServer("docker-build", semver.Version{Major: 0}, p)
|
||||
s, err := integration.NewServer(
|
||||
ctx,
|
||||
"docker-build", semver.Version{Major: 0},
|
||||
integration.WithProvider(p),
|
||||
)
|
||||
require.NoError(t, err)
|
||||
return s
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ func TestValidateSSH(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
@@ -15,13 +15,8 @@
|
||||
package provider
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/pulumi/pulumi-docker-build/provider/internal"
|
||||
"github.com/pulumi/pulumi-docker-build/provider/internal/deprecated"
|
||||
gp "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
||||
"github.com/pulumi/pulumi/pkg/v3/resource/provider"
|
||||
rpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
|
||||
)
|
||||
@@ -39,37 +34,5 @@ func Serve() error {
|
||||
|
||||
// New creates a new provider.
|
||||
func New(host *provider.HostClient) (rpc.ResourceProviderServer, error) {
|
||||
return gp.RawServer(Name, Version, configurableProvider(internal.NewBuildxProvider()))(host)
|
||||
}
|
||||
|
||||
// configurableProvider is a workaround for
|
||||
// https://github.com/pulumi/pulumi-go-provider/issues/171 and
|
||||
// In short, our SDKs send provider Configure requests as simple strings
|
||||
// instead of rich objects. We don't want to preserve this behavior in
|
||||
// pulumi-go-provider, but we also haven't updated SDKs yet to send rich types.
|
||||
//
|
||||
// If you find yourself in a position where you need to copy this -- STOP!
|
||||
// https://github.com/pulumi/pulumi/pull/15032 should be merged with this fix.
|
||||
func configurableProvider(p gp.Provider) gp.Provider {
|
||||
configure := p.Configure
|
||||
|
||||
p.Configure = func(ctx context.Context, req gp.ConfigureRequest) error {
|
||||
r, err := p.GetSchema(ctx, gp.GetSchemaRequest{Version: 0})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
spec := schema.PackageSpec{}
|
||||
err = json.Unmarshal([]byte(r.Schema), &spec)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ce := deprecated.New(spec.Config)
|
||||
if props, err := ce.UnmarshalProperties(req.Args); err == nil {
|
||||
req.Args = props
|
||||
}
|
||||
return configure(ctx, req)
|
||||
}
|
||||
|
||||
return p
|
||||
return gp.RawServer(Name, Version, internal.NewBuildxProvider(nil))(host)
|
||||
}
|
||||
|
||||
@@ -22,37 +22,8 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
|
||||
"github.com/pulumi/pulumi-docker-build/provider/internal"
|
||||
provider "github.com/pulumi/pulumi-go-provider"
|
||||
"github.com/pulumi/pulumi-go-provider/integration"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
|
||||
)
|
||||
|
||||
// TestConfigure checks backwards-compatibility with SDKs that still send
|
||||
// provider config as JSON-encoded strings. This test can be removed once we
|
||||
// upgrade to a version of pulumi that no longer generates SDKs with that
|
||||
// behavior.
|
||||
func TestConfigure(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
p := configurableProvider(internal.NewBuildxProvider())
|
||||
|
||||
args, err := structpb.NewStruct(map[string]any{
|
||||
"registries": `[{"address": "docker.io"}]`,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
argsMap, err := plugin.UnmarshalProperties(args, plugin.MarshalOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
s := integration.NewServer("docker-build", semver.Version{Major: 0}, p)
|
||||
err = s.Configure(provider.ConfigureRequest{
|
||||
Args: argsMap,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestVersion(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
2
sdk/dotnet/Config/Config.cs
generated
2
sdk/dotnet/Config/Config.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Enums.cs
generated
2
sdk/dotnet/Enums.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Image.cs
generated
2
sdk/dotnet/Image.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Index.cs
generated
2
sdk/dotnet/Index.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/BuildContextArgs.cs
generated
2
sdk/dotnet/Inputs/BuildContextArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/BuilderConfigArgs.cs
generated
2
sdk/dotnet/Inputs/BuilderConfigArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheFromArgs.cs
generated
2
sdk/dotnet/Inputs/CacheFromArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheFromAzureBlobArgs.cs
generated
2
sdk/dotnet/Inputs/CacheFromAzureBlobArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
4
sdk/dotnet/Inputs/CacheFromGitHubActionsArgs.cs
generated
4
sdk/dotnet/Inputs/CacheFromGitHubActionsArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
@@ -54,7 +54,7 @@ namespace Pulumi.DockerBuild.Inputs
|
||||
|
||||
public CacheFromGitHubActionsArgs()
|
||||
{
|
||||
Scope = Utilities.GetEnv("buildkit") ?? "";
|
||||
Scope = "buildkit";
|
||||
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
||||
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
|
||||
}
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheFromLocalArgs.cs
generated
2
sdk/dotnet/Inputs/CacheFromLocalArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheFromRegistryArgs.cs
generated
2
sdk/dotnet/Inputs/CacheFromRegistryArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheFromS3Args.cs
generated
2
sdk/dotnet/Inputs/CacheFromS3Args.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToArgs.cs
generated
2
sdk/dotnet/Inputs/CacheToArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToAzureBlobArgs.cs
generated
2
sdk/dotnet/Inputs/CacheToAzureBlobArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
4
sdk/dotnet/Inputs/CacheToGitHubActionsArgs.cs
generated
4
sdk/dotnet/Inputs/CacheToGitHubActionsArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
@@ -68,7 +68,7 @@ namespace Pulumi.DockerBuild.Inputs
|
||||
{
|
||||
IgnoreError = false;
|
||||
Mode = Pulumi.DockerBuild.CacheMode.Min;
|
||||
Scope = Utilities.GetEnv("buildkit") ?? "";
|
||||
Scope = "buildkit";
|
||||
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
||||
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
|
||||
}
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToInlineArgs.cs
generated
2
sdk/dotnet/Inputs/CacheToInlineArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToLocalArgs.cs
generated
2
sdk/dotnet/Inputs/CacheToLocalArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToRegistryArgs.cs
generated
2
sdk/dotnet/Inputs/CacheToRegistryArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/CacheToS3Args.cs
generated
2
sdk/dotnet/Inputs/CacheToS3Args.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ContextArgs.cs
generated
2
sdk/dotnet/Inputs/ContextArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/DockerfileArgs.cs
generated
2
sdk/dotnet/Inputs/DockerfileArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportArgs.cs
generated
2
sdk/dotnet/Inputs/ExportArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportCacheOnlyArgs.cs
generated
2
sdk/dotnet/Inputs/ExportCacheOnlyArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportDockerArgs.cs
generated
2
sdk/dotnet/Inputs/ExportDockerArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportImageArgs.cs
generated
2
sdk/dotnet/Inputs/ExportImageArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportLocalArgs.cs
generated
2
sdk/dotnet/Inputs/ExportLocalArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportOCIArgs.cs
generated
2
sdk/dotnet/Inputs/ExportOCIArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportRegistryArgs.cs
generated
2
sdk/dotnet/Inputs/ExportRegistryArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/ExportTarArgs.cs
generated
2
sdk/dotnet/Inputs/ExportTarArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/RegistryArgs.cs
generated
2
sdk/dotnet/Inputs/RegistryArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Inputs/SSHArgs.cs
generated
2
sdk/dotnet/Inputs/SSHArgs.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Outputs/BuildContext.cs
generated
2
sdk/dotnet/Outputs/BuildContext.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Outputs/BuilderConfig.cs
generated
2
sdk/dotnet/Outputs/BuilderConfig.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
2
sdk/dotnet/Outputs/CacheFrom.cs
generated
2
sdk/dotnet/Outputs/CacheFrom.cs
generated
@@ -1,4 +1,4 @@
|
||||
// *** WARNING: this file was generated by pulumi. ***
|
||||
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
using System;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user