Compare commits

..

130 Commits

Author SHA1 Message Date
Pulumi Bot
7c58a863dd [internal] Update GitHub Actions workflow files 2026-05-01 06:27:34 +00:00
pulumi-provider-automation[bot]
f864eda3e0 Update GitHub Actions workflows. (#834)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[3b016890d44c5e5e2e184c4b10b07484d9708cc3](3b016890d4).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-30 06:32:36 +00:00
pulumi-provider-automation[bot]
4e01c39bf9 Update GitHub Actions workflows. (#833)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[f99b830821cb45c5b332123be59c6a755cd4fadc](f99b830821).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-29 06:35:12 +00:00
pulumi-provider-automation[bot]
bab57d912d Update GitHub Actions workflows. (#832)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[dbc8a4c59b47e1406420ea87372068fb3780dce8](dbc8a4c59b).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-28 06:32:00 +00:00
pulumi-provider-automation[bot]
96b9de72a5 Update GitHub Actions workflows. (#831)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[fbb025ea2dd9c071a4b0a626d092c4104fc57644](fbb025ea2d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-27 06:29:59 +00:00
pulumi-provider-automation[bot]
bae0f1379a Update GitHub Actions workflows. (#829)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4a821ea4d38895a0aa6b855593ea108774165ff6](4a821ea4d3).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-25 06:06:14 +00:00
pulumi-provider-automation[bot]
30e1a98140 Update GitHub Actions workflows. (#828)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[88db566266daeb5f581215c84cd3e8c5f389a18d](88db566266).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-24 06:17:53 +00:00
pulumi-provider-automation[bot]
0b291cf120 Update GitHub Actions workflows. (#826)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[a4ba5d1c3db54f4aa8e7674e03c3032eabd24aaa](a4ba5d1c3d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-23 06:14:45 +00:00
pulumi-provider-automation[bot]
2e27061ccc Update GitHub Actions workflows. (#825)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[e46e1ac50228764e2a7fa7a76403fca94224df68](e46e1ac502).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-22 06:12:50 +00:00
pulumi-provider-automation[bot]
740410488f Update GitHub Actions workflows. (#824)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4065ed8e56aa6623046a204c35d57c0376c7cf6c](4065ed8e56).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-21 06:12:31 +00:00
pulumi-provider-automation[bot]
f24d1e662a Update GitHub Actions workflows. (#823)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[7f0c56e9f79bc22f3b4cc6379312d705a56411c6](7f0c56e9f7).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-20 06:21:00 +00:00
pulumi-provider-automation[bot]
703dd21dc8 Update GitHub Actions workflows. (#822)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[144a8c45ec5f8a164b55365078d914dd6955b209](144a8c45ec).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-19 06:12:17 +00:00
pulumi-provider-automation[bot]
8328de32ef Update GitHub Actions workflows. (#821)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[2bc9cb47c63304319f6a34a84c861bedc53274ae](2bc9cb47c6).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-18 06:01:53 +00:00
pulumi-provider-automation[bot]
c9ec41986b Update GitHub Actions workflows. (#820)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[5aad94d008deea2e7db42fa2579fe93fb88256b8](5aad94d008).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-17 06:14:06 +00:00
pulumi-renovate[bot]
ef554c455f Update dependency @pulumi/pulumi to v3.231.0 (#818)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.230.0` ->
`3.231.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.230.0/3.231.0)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.231.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.231.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.230.0...v3.231.0)

##### 3.231.0 (2026-04-16)

##### Features

- \[cli] Auto-detect Mercurial repository metadata for `pulumi up` /
`pulumi preview` updates, mirroring existing Git support
[#&#8203;22618](https://redirect.github.com/pulumi/pulumi/pull/22618)

- \[engine] Send Cancel RPC to plugins on host close for graceful
shutdown
[#&#8203;22569](https://redirect.github.com/pulumi/pulumi/pull/22569)

-   \[engine] Pass resource options to hooks through the engine
[#&#8203;22582](https://redirect.github.com/pulumi/pulumi/pull/22582)

-   \[engine] Add GetDeploymentInfo to the resource monitor service

-   \[auto/go] Add `New` command to Automation API
[#&#8203;22439](https://redirect.github.com/pulumi/pulumi/pull/22439)

-   \[auto/{go,nodejs,python}] Add --diff to automation api for destroy
[#&#8203;22563](https://redirect.github.com/pulumi/pulumi/pull/22563)

-   \[auto/python] Add `new` command to Automation API
[#&#8203;22439](https://redirect.github.com/pulumi/pulumi/pull/22439)

-   \[pcl] Support for resource hooks in PCL
[#&#8203;22365](https://redirect.github.com/pulumi/pulumi/pull/22365)

- \[sdk-nodejs] Warn when a non-ComponentResource class is passed in the
explicit `components` list to `componentProviderHost`
[#&#8203;22619](https://redirect.github.com/pulumi/pulumi/pull/22619)

- \[sdk-python] Warn when a non-ComponentResource class is passed in the
explicit `components` list to `component_provider_host`
[#&#8203;22619](https://redirect.github.com/pulumi/pulumi/pull/22619)

- \[cli/import] Add support for providers to be defined in the same
import file as their users
[#&#8203;21671](https://redirect.github.com/pulumi/pulumi/pull/21671)

-   \[cli/policy] ESC environment support for local policy packs
[#&#8203;22495](https://redirect.github.com/pulumi/pulumi/pull/22495)

-   \[sdk/nodejs] Support package.yaml when using pnpm
[#&#8203;22491](https://redirect.github.com/pulumi/pulumi/pull/22491)

- \[sdk/python] Add function decorator variants for resource and error
hooks
[#&#8203;22519](https://redirect.github.com/pulumi/pulumi/pull/22519)

##### Bug Fixes

- \[auto/{nodejs,python}] Support --run-program for inline programs with
preview_refresh/destroy

- \[backend/diy] Remove state lock for destroy and import with preview
only for diy backend
[#&#8203;22561](https://redirect.github.com/pulumi/pulumi/pull/22561)

- \[engine] Fix snapshot integrity error with component/provider
resources in refresh --run-program
[#&#8203;21817](https://redirect.github.com/pulumi/pulumi/pull/21817)

-   \[pcl] Type list and tuple indices as integers not numbers
[#&#8203;22592](https://redirect.github.com/pulumi/pulumi/pull/22592)

- \[pcl] Builtin functions element and range take int parameters not
numbers
[#&#8203;22597](https://redirect.github.com/pulumi/pulumi/pull/22597)

- \[programgen/{go,nodejs,python}] Fix some cases of name conflicts in
program gen not being handled correctly
[#&#8203;22556](https://redirect.github.com/pulumi/pulumi/pull/22556)

- \[programgen/nodejs] Add necessary casts between types in generated
programs
[#&#8203;22557](https://redirect.github.com/pulumi/pulumi/pull/22557)

-   \[programgen/{nodejs,python}] Fix imports of camelCase modules
[#&#8203;22536](https://redirect.github.com/pulumi/pulumi/pull/22536)

- \[sdk/python] Support Input\[Optional\[T]] in Python runtime type
unwrapping
[#&#8203;22553](https://redirect.github.com/pulumi/pulumi/pull/22553)

- \[sdkgen] Warn about modules nested under the index module which are
not supported
[#&#8203;22531](https://redirect.github.com/pulumi/pulumi/pull/22531)

##### Miscellaneous

-   \[java] Upgrade java to v1.24.0
[#&#8203;22615](https://redirect.github.com/pulumi/pulumi/pull/22615)

-   \[yaml] Upgrade yaml to v1.31.1
[#&#8203;22610](https://redirect.github.com/pulumi/pulumi/pull/22610)

-   \[sdk/dotnet] Upgrade dotnet to v3.103.0
[#&#8203;22614](https://redirect.github.com/pulumi/pulumi/pull/22614)

-   \[sdk/nodejs] Replace `got` by `fetch`
[#&#8203;22533](https://redirect.github.com/pulumi/pulumi/pull/22533)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-04-16 20:16:47 +00:00
pulumi-provider-automation[bot]
0b52de6543 Update GitHub Actions workflows. (#816)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b05dbe61dbea8fb6ea0c4cde662bde1101961819](b05dbe61db).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-16 06:16:23 +00:00
pulumi-renovate[bot]
a3072f6aa3 Update module github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 to v3.103.0 (#815)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.102.1` -> `v3.103.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.103.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31030---2026-04-15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.102.1...v3.103.0)

##### Improvements

- \[sdk] Clarify docs on the `remote` parameter of `ComponentResource` /
`Resource`
[#&#8203;963](https://redirect.github.com/pulumi/pulumi-dotnet/pull/963)

##### Bug Fixes

- \[sdk] Fix `ResourceTransforms` being silently dropped when
`CustomResourceOptions.Merge` is called (affects all generated SDK
resources using the `MakeResourceOptions` pattern)
[#&#8203;958](https://redirect.github.com/pulumi/pulumi-dotnet/pull/958)

- \[sdk] Add missing `[Input]` attribute to `StashArgs.Input`, fixing
serialization of the Stash resource
[#&#8203;960](https://redirect.github.com/pulumi/pulumi-dotnet/pull/960)

- \[sdk/auto] Fix running inline programs with refresh/destroy and
--run-program
[#&#8203;725](https://redirect.github.com/pulumi/pulumi-dotnet/pull/725)

##### Improvements

- \[runtime] Add codegen support for AdditionalSecretOutputs, Version,
and PluginDownloadURL resource options
[#&#8203;953](https://redirect.github.com/pulumi/pulumi-dotnet/pull/953)

##### Bug Fixes

- \[runtime] Fix property paths in resource options (IgnoreChanges,
ReplaceOnChanges, HideDiffs) being incorrectly prefixed with @&#8203;
for C# reserved words
[#&#8203;934](https://redirect.github.com/pulumi/pulumi-dotnet/pull/934)

- \[runtime] Fix NuGet package name and version extraction for packages
with prerelease versions (e.g. `3.0.0-alpha.1.internal`)
[#&#8203;947](https://redirect.github.com/pulumi/pulumi-dotnet/pull/947)

- \[runtime] Support call methods in program generation
[#&#8203;946](https://redirect.github.com/pulumi/pulumi-dotnet/pull/946)

- \[runtime] Add missing `System` namespace import for `sha1` builtin,
fixing `BitConverter` not found error
[#&#8203;961](https://redirect.github.com/pulumi/pulumi-dotnet/pull/961)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-04-15 17:55:53 +00:00
pulumi-provider-automation[bot]
afe301cb52 Update GitHub Actions workflows. (#814)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[bf992a9000f6297ee7e288347f354ed2ca8d6bbf](bf992a9000).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-15 06:13:32 +00:00
Keith Mosher
b0c5918c7c Migrate Windows code signing to Azure Trusted Signing (#811)
## Summary

Migrates Windows binary signing from Azure Key Vault (`jsign --storetype
AZUREKEYVAULT`) to [Azure Trusted
Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/). The
previous AKV code-signing cert expired, breaking the release pipeline.
Trusted Signing issues short-lived Microsoft-managed certs so there's
nothing to rotate.

- `Makefile` / `scripts/crossbuild.mk`: bump `jsign` 6.0 → 7.4, switch
`--storetype` to `TRUSTEDSIGNING`, use the
`https://codesigning.azure.net` token audience, derive the keystore host
from `AZURE_SIGNING_ACCOUNT_ENDPOINT`, pass account/profile via
`--alias`, update the `SKIP_SIGNING` guard and error message.
- `.github/workflows/{build,release,prerelease,build_provider}.yml`:
replace the `AZURE_SIGNING_KEY_VAULT_URI` env passthrough with the three
new `AZURE_SIGNING_ACCOUNT_*` outputs and update the `SKIP_SIGNING`
expression.

Companion to pulumi/ci-mgmt#2126, pulumi/pulumi-command#1200, and
pulumi/pulumi-provider-boilerplate#1236. The ESC environment already
exposes the new variables and the signing SP has the `Artifact Signing
Certificate Profile Signer` role on the
`pulumi-code-signing/pulumi-code-signing` profile. Verified end-to-end
against pulumi-command, pulumi-random, and pulumi-provider-boilerplate.

## Test plan

- [ ] CI release build produces a Windows binary with a valid Trusted
Signing certificate chain
2026-04-09 16:52:15 -07:00
pulumi-provider-automation[bot]
00ec8e3ebe Update GitHub Actions workflows. (#812)
This PR was triggered by @kmosher generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[9753531fe8d3f70139c072186a6ddcaa32d27b63](9753531fe8).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-09 23:49:54 +00:00
pulumi-renovate[bot]
2079e52a5f Update first-party Pulumi dependencies to v3.230.0 (#809)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.229.0` ->
`3.230.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.229.0/3.230.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.229.0` -> `v3.230.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.230.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32300-2026-04-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.229.0...v3.230.0)

##### Features

-   \[cli] Detect AI agents and send in update metadata
[#&#8203;22497](https://redirect.github.com/pulumi/pulumi/pull/22497)

- \[auto/nodejs] Add "org" commands (get-default, set-default, search,
search ai) to the auto-generated interface
[#&#8203;22395](https://redirect.github.com/pulumi/pulumi/pull/22395)

-   \[auto/nodejs] Add "new" command to the auto-generated interface
[#&#8203;22421](https://redirect.github.com/pulumi/pulumi/pull/22421)

- \[sdk/{nodejs,python}] Add Cancel handler to Python & Node.js
providers
[#&#8203;22516](https://redirect.github.com/pulumi/pulumi/pull/22516)

-   \[cli/policy] Add ESC environment resolution for policy packs
[#&#8203;22425](https://redirect.github.com/pulumi/pulumi/pull/22425)

##### Bug Fixes

- \[auto/go] Insert --non-interactive flag before "--" positional
separator to avoid misinterpretation as a positional argument
[#&#8203;22462](https://redirect.github.com/pulumi/pulumi/pull/22462)

- \[ci] Add code coverage collection for Node.js automation tools tests
[#&#8203;22412](https://redirect.github.com/pulumi/pulumi/pull/22412)

-   \[pcl] Allow key indexing into a map of resources created by range
[#&#8203;22498](https://redirect.github.com/pulumi/pulumi/pull/22498)

- \[programgen/go] Fix an issue with formatted index modules not
importing correctly

- \[cli/state] Check for Pulumi.yaml projects and `backend` option in
`state upgrade`
[#&#8203;22483](https://redirect.github.com/pulumi/pulumi/pull/22483)

- \[sdk/go] Fix Go program generation for ternary expressions inside
apply callbacks, add Go predeclared identifiers to reserved words,
handle optional list types in union type codegen, and fix
unmarshalOutput for known outputs with null elements.
[#&#8203;22460](https://redirect.github.com/pulumi/pulumi/pull/22460)

- \[sdk/nodejs] Fix inherited input properties missing from component
schema when args interface extends another interface
[#&#8203;22446](https://redirect.github.com/pulumi/pulumi/pull/22446)

- \[sdk/python] Fix inherited input properties missing from component
schema when args class inherits from a base class
[#&#8203;22484](https://redirect.github.com/pulumi/pulumi/pull/22484)

##### Miscellaneous

-   \[java] Upgrade java to v1.23.0

-   \[sdk/dotnet] Upgrade dotnet to v3.102.1

-   \[yaml] Upgrade to v1.31.0
[#&#8203;22501](https://redirect.github.com/pulumi/pulumi/pull/22501)

- \[programgen/{dotnet,go,java,nodejs,pcl,python,yaml}] Remove
`mimeType` & `readDir` from PCL
[#&#8203;22449](https://redirect.github.com/pulumi/pulumi/pull/22449)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.230.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.230.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.229.0...v3.230.0)

#### 3.230.0 (2026-04-08)

##### Features

-   \[cli] Detect AI agents and send in update metadata
[#&#8203;22497](https://redirect.github.com/pulumi/pulumi/pull/22497)

- \[auto/nodejs] Add "org" commands (get-default, set-default, search,
search ai) to the auto-generated interface
[#&#8203;22395](https://redirect.github.com/pulumi/pulumi/pull/22395)

-   \[auto/nodejs] Add "new" command to the auto-generated interface
[#&#8203;22421](https://redirect.github.com/pulumi/pulumi/pull/22421)

- \[sdk/{nodejs,python}] Add Cancel handler to Python & Node.js
providers
[#&#8203;22516](https://redirect.github.com/pulumi/pulumi/pull/22516)

-   \[cli/policy] Add ESC environment resolution for policy packs
[#&#8203;22425](https://redirect.github.com/pulumi/pulumi/pull/22425)

##### Bug Fixes

- \[auto/go] Insert --non-interactive flag before "--" positional
separator to avoid misinterpretation as a positional argument
[#&#8203;22462](https://redirect.github.com/pulumi/pulumi/pull/22462)

- \[ci] Add code coverage collection for Node.js automation tools tests
[#&#8203;22412](https://redirect.github.com/pulumi/pulumi/pull/22412)

-   \[pcl] Allow key indexing into a map of resources created by range
[#&#8203;22498](https://redirect.github.com/pulumi/pulumi/pull/22498)

- \[programgen/go] Fix an issue with formatted index modules not
importing correctly

- \[cli/state] Check for Pulumi.yaml projects and `backend` option in
`state upgrade`
[#&#8203;22483](https://redirect.github.com/pulumi/pulumi/pull/22483)

- \[sdk/go] Fix Go program generation for ternary expressions inside
apply callbacks, add Go predeclared identifiers to reserved words,
handle optional list types in union type codegen, and fix
unmarshalOutput for known outputs with null elements.
[#&#8203;22460](https://redirect.github.com/pulumi/pulumi/pull/22460)

- \[sdk/nodejs] Fix inherited input properties missing from component
schema when args interface extends another interface
[#&#8203;22446](https://redirect.github.com/pulumi/pulumi/pull/22446)

- \[sdk/python] Fix inherited input properties missing from component
schema when args class inherits from a base class
[#&#8203;22484](https://redirect.github.com/pulumi/pulumi/pull/22484)

##### Miscellaneous

-   \[java] Upgrade java to v1.23.0

-   \[sdk/dotnet] Upgrade dotnet to v3.102.1

-   \[yaml] Upgrade to v1.31.0
[#&#8203;22501](https://redirect.github.com/pulumi/pulumi/pull/22501)

- \[programgen/{dotnet,go,java,nodejs,pcl,python,yaml}] Remove
`mimeType` & `readDir` from PCL
[#&#8203;22449](https://redirect.github.com/pulumi/pulumi/pull/22449)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-09 01:05:50 +00:00
pulumi-renovate[bot]
fd5b2ee95b Update first-party Pulumi dependencies (#807)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | patch | `v3.102.0` -> `v3.102.1` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.228.0` -> `v3.229.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.102.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31021---2026-04-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.102.0...v3.102.1)

##### Bug Fixes

- \[sdk] Fix inherited \[Input] properties missing from component schema
when using base class inheritance on args types
[#&#8203;930](https://redirect.github.com/pulumi/pulumi-dotnet/pull/930)

- \[sdk] Fix GetResourceType() returning empty string for
DependencyProviderResource
[#&#8203;922](https://redirect.github.com/pulumi/pulumi-dotnet/pull/922)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.229.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.229.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.228.0...v3.229.0)

#### 3.229.0 (2026-04-02)

##### Features

- \[auto/python] Add org get-default and set-default commands to
Automation API

- \[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve
performance
[#&#8203;22373](https://redirect.github.com/pulumi/pulumi/pull/22373)

- \[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the
pulumi spans under an existing parent span
[#&#8203;22369](https://redirect.github.com/pulumi/pulumi/pull/22369)

- \[cli/display] Add `--urns` flag to display full resource URNs instead
of short names in preview, up, destroy, refresh, import, and watch
commands
[#&#8203;22007](https://redirect.github.com/pulumi/pulumi/pull/22007)

-   \[pcl] Type integer literals as integers rather than numbers in PCL
[#&#8203;22268](https://redirect.github.com/pulumi/pulumi/pull/22268)

-   \[pcl] Support parameterized providers in PCL
[#&#8203;22251](https://redirect.github.com/pulumi/pulumi/pull/22251)

- \[protobuf] Add RunPlugin2 bidirectional streaming RPC to
LanguageRuntime proto
[#&#8203;22389](https://redirect.github.com/pulumi/pulumi/pull/22389)

-   \[yaml] Update YAML runtime to 1.30.2
[#&#8203;22426](https://redirect.github.com/pulumi/pulumi/pull/22426)

- \[sdk/go] Add org get-default and set-default commands to Automation
API

- \[sdk/nodejs] Modernize generated tsconfig.json to align with
TypeScript defaults
[#&#8203;22370](https://redirect.github.com/pulumi/pulumi/pull/22370)

- \[cli/policy] Add a new `policy analyze` command to run a policy pack
against existing state
[#&#8203;22250](https://redirect.github.com/pulumi/pulumi/pull/22250)

##### Bug Fixes

- \[backend/diy] Remove state lock for refresh --preview-only for diy
backend
[#&#8203;22385](https://redirect.github.com/pulumi/pulumi/pull/22385)

-   \[cli] Fix OTEL flushing on provider shutdown
[#&#8203;22358](https://redirect.github.com/pulumi/pulumi/pull/22358)

- \[cli/display] Fix deadlock in message renderer when cancelling an
operation
[#&#8203;22433](https://redirect.github.com/pulumi/pulumi/pull/22433)

- \[engine] Fix `--include` and `--exclude` not working for
program-based refresh (RefreshV2)
[#&#8203;22404](https://redirect.github.com/pulumi/pulumi/pull/22404)

-   \[engine] Parallelize plugin cancellation in SignalCancellation
[#&#8203;22431](https://redirect.github.com/pulumi/pulumi/pull/22431)

-   \[pcl] Fix looking up variables in parent scopes
[#&#8203;22379](https://redirect.github.com/pulumi/pulumi/pull/22379)

-   \[pcl] Apply default values from resource schemas
[#&#8203;22393](https://redirect.github.com/pulumi/pulumi/pull/22393)

-   \[sdk/{bun,go,nodejs,python}] Wire Cancel RPC to language host Run
[#&#8203;22397](https://redirect.github.com/pulumi/pulumi/pull/22397)

-   \[sdk/nodejs] Allow TypeScript 6 as a peer dependency
[#&#8203;22340](https://redirect.github.com/pulumi/pulumi/pull/22340)

- \[sdk/nodejs] Fix closure serialization for \__importStar-wrapped
modules
[#&#8203;22388](https://redirect.github.com/pulumi/pulumi/pull/22388)

- \[sdk/python] Cache type metadata and class references in Python SDK
to reduce CPU overhead during serialization
[#&#8203;22422](https://redirect.github.com/pulumi/pulumi/pull/22422)

- \[sdk/python] Replace busy-wait polling in wait_for_rpcs with
asyncio.wait
[#&#8203;22411](https://redirect.github.com/pulumi/pulumi/pull/22411)

##### Miscellaneous

-   \[cli] Add update metadata to the otel root span
[#&#8203;22357](https://redirect.github.com/pulumi/pulumi/pull/22357)

-   \[java] Update to v1.22.0
[#&#8203;22437](https://redirect.github.com/pulumi/pulumi/pull/22437)

-   \[sdk/nodejs] Use nodenext for moduleResolution and module
[#&#8203;22363](https://redirect.github.com/pulumi/pulumi/pull/22363)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-08 13:51:13 +00:00
pulumi-renovate[bot]
8ef055d5e7 Update first-party Pulumi dependencies (#803)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.227.0` ->
`3.229.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.227.0/3.229.0)
|
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.21.3` -> `v1.22.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.227.0` -> `v3.228.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.229.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.229.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.228.0...v3.229.0)

#### 3.229.0 (2026-04-02)

##### Features

- \[auto/python] Add org get-default and set-default commands to
Automation API

- \[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve
performance
[#&#8203;22373](https://redirect.github.com/pulumi/pulumi/pull/22373)

- \[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the
pulumi spans under an existing parent span
[#&#8203;22369](https://redirect.github.com/pulumi/pulumi/pull/22369)

- \[cli/display] Add `--urns` flag to display full resource URNs instead
of short names in preview, up, destroy, refresh, import, and watch
commands
[#&#8203;22007](https://redirect.github.com/pulumi/pulumi/pull/22007)

-   \[pcl] Type integer literals as integers rather than numbers in PCL
[#&#8203;22268](https://redirect.github.com/pulumi/pulumi/pull/22268)

-   \[pcl] Support parameterized providers in PCL
[#&#8203;22251](https://redirect.github.com/pulumi/pulumi/pull/22251)

- \[protobuf] Add RunPlugin2 bidirectional streaming RPC to
LanguageRuntime proto
[#&#8203;22389](https://redirect.github.com/pulumi/pulumi/pull/22389)

-   \[yaml] Update YAML runtime to 1.30.2
[#&#8203;22426](https://redirect.github.com/pulumi/pulumi/pull/22426)

- \[sdk/go] Add org get-default and set-default commands to Automation
API

- \[sdk/nodejs] Modernize generated tsconfig.json to align with
TypeScript defaults
[#&#8203;22370](https://redirect.github.com/pulumi/pulumi/pull/22370)

- \[cli/policy] Add a new `policy analyze` command to run a policy pack
against existing state
[#&#8203;22250](https://redirect.github.com/pulumi/pulumi/pull/22250)

##### Bug Fixes

- \[backend/diy] Remove state lock for refresh --preview-only for diy
backend
[#&#8203;22385](https://redirect.github.com/pulumi/pulumi/pull/22385)

-   \[cli] Fix OTEL flushing on provider shutdown
[#&#8203;22358](https://redirect.github.com/pulumi/pulumi/pull/22358)

- \[cli/display] Fix deadlock in message renderer when cancelling an
operation
[#&#8203;22433](https://redirect.github.com/pulumi/pulumi/pull/22433)

- \[engine] Fix `--include` and `--exclude` not working for
program-based refresh (RefreshV2)
[#&#8203;22404](https://redirect.github.com/pulumi/pulumi/pull/22404)

-   \[engine] Parallelize plugin cancellation in SignalCancellation
[#&#8203;22431](https://redirect.github.com/pulumi/pulumi/pull/22431)

-   \[pcl] Fix looking up variables in parent scopes
[#&#8203;22379](https://redirect.github.com/pulumi/pulumi/pull/22379)

-   \[pcl] Apply default values from resource schemas
[#&#8203;22393](https://redirect.github.com/pulumi/pulumi/pull/22393)

-   \[sdk/{bun,go,nodejs,python}] Wire Cancel RPC to language host Run
[#&#8203;22397](https://redirect.github.com/pulumi/pulumi/pull/22397)

-   \[sdk/nodejs] Allow TypeScript 6 as a peer dependency
[#&#8203;22340](https://redirect.github.com/pulumi/pulumi/pull/22340)

- \[sdk/nodejs] Fix closure serialization for \__importStar-wrapped
modules
[#&#8203;22388](https://redirect.github.com/pulumi/pulumi/pull/22388)

- \[sdk/python] Cache type metadata and class references in Python SDK
to reduce CPU overhead during serialization
[#&#8203;22422](https://redirect.github.com/pulumi/pulumi/pull/22422)

- \[sdk/python] Replace busy-wait polling in wait_for_rpcs with
asyncio.wait
[#&#8203;22411](https://redirect.github.com/pulumi/pulumi/pull/22411)

##### Miscellaneous

-   \[cli] Add update metadata to the otel root span
[#&#8203;22357](https://redirect.github.com/pulumi/pulumi/pull/22357)

-   \[java] Update to v1.22.0
[#&#8203;22437](https://redirect.github.com/pulumi/pulumi/pull/22437)

-   \[sdk/nodejs] Use nodenext for moduleResolution and module
[#&#8203;22363](https://redirect.github.com/pulumi/pulumi/pull/22363)

###
[`v3.228.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32280-2026-03-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.227.0...v3.228.0)

##### Features

- \[cli] Don't apply the secrets filter to `true` and `false`
(case-insensitive)
[#&#8203;22269](https://redirect.github.com/pulumi/pulumi/pull/22269)

- \[cli] Add grpcs:// support and header authentication to OTLP exporter
[#&#8203;22320](https://redirect.github.com/pulumi/pulumi/pull/22320)

-   \[cli] Read OTEL_RESOURCE_ATTRIBUTES
[#&#8203;22329](https://redirect.github.com/pulumi/pulumi/pull/22329)

- \[auto/nodejs] Add low-level "cancel" command to the auto-generated
interface
[#&#8203;22156](https://redirect.github.com/pulumi/pulumi/pull/22156)

- \[cli/state] Allow `pulumi state delete` to accept multiple resource
URNs and delete them in a dependency-safe order

##### Bug Fixes

-   \[cli] Allow relative file paths for --otel-traces
[#&#8203;22300](https://redirect.github.com/pulumi/pulumi/pull/22300)

-   \[cli] Bridge opentracing spans from providers into OTel
[#&#8203;22313](https://redirect.github.com/pulumi/pulumi/pull/22313)

-   \[cli] Correctly end spans for GRPC streams
[#&#8203;22304](https://redirect.github.com/pulumi/pulumi/pull/22304)

-   \[cli/about] Do not include the access token in plain text
[#&#8203;22347](https://redirect.github.com/pulumi/pulumi/pull/22347)

- \[display] Fix detailed diff indentation so changed resources are not
visually nested under unrelated visible resources when unchanged parents
are hidden.
[#&#8203;22317](https://redirect.github.com/pulumi/pulumi/pull/22317)

- \[cli/import] Fix import codegen when generating references to
non-standard names
[#&#8203;22319](https://redirect.github.com/pulumi/pulumi/pull/22319)

-   \[engine] Update golang version
[#&#8203;22277](https://redirect.github.com/pulumi/pulumi/pull/22277)

-   \[pcl] Typecheck component inputs in PCL programs
[#&#8203;22292](https://redirect.github.com/pulumi/pulumi/pull/22292)

- \[programgen/{nodejs,python}] Fix literal conversion when calling into
local components
[#&#8203;22306](https://redirect.github.com/pulumi/pulumi/pull/22306)

##### Miscellaneous

-   \[cli] Add CLI metadata to the root span
[#&#8203;22305](https://redirect.github.com/pulumi/pulumi/pull/22305)

-   \[cli] Add more OTel interceptors for GRPC clients
[#&#8203;22309](https://redirect.github.com/pulumi/pulumi/pull/22309)

- \[cli] Add spans for plugin installation and add more attributes for
dependency installation
[#&#8203;22303](https://redirect.github.com/pulumi/pulumi/pull/22303)

-   \[cli] Allow setting a GRPC endpoint for performance tests
[#&#8203;22330](https://redirect.github.com/pulumi/pulumi/pull/22330)

- \[backend/diy] Start deprecation of non-project mode for DIY backends
[#&#8203;19625](https://redirect.github.com/pulumi/pulumi/pull/19625)

</details>

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.22.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1220---2026-04-01)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.3...v1.22.0)

##### Bug Fixes

- \[runtime] Do not leak java processes on failed resource creates
[#&#8203;2103](https://redirect.github.com/pulumi/pulumi-java/pull/2103)

##### Improvements

- \[codegen] Support `cwd()` builtin in program generation
[#&#8203;2092](https://redirect.github.com/pulumi/pulumi-java/pull/2092)

- \[codegen] Support `additionalSecretOutputs` resource option in
program generation
[#&#8203;2098](https://redirect.github.com/pulumi/pulumi-java/pull/2098)

- \[codegen] Support `deleteBeforeReplace` and `replaceOnChanges`
resource options in program and SDK generation
[#&#8203;2101](https://redirect.github.com/pulumi/pulumi-java/pull/2101)

##### Bug Fixes

- \[codegen] Emit integer numbers as floats so generated code compiles
[#&#8203;2102](https://redirect.github.com/pulumi/pulumi-java/pull/2102)

- \[codegen] Generate `pom.xml` in the program directory when `main` is
set in `Pulumi.yaml`
[#&#8203;2093](https://redirect.github.com/pulumi/pulumi-java/pull/2093)

- \[codegen] Fix generated SDK `settings.gradle` to work with Gradle 9
[#&#8203;2097](https://redirect.github.com/pulumi/pulumi-java/pull/2097)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-02 17:58:57 +00:00
pulumi-renovate[bot]
f98315e8ee Update first-party Pulumi dependencies to v3.227.0 (#802)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.226.0` ->
`3.227.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.226.0/3.227.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.226.0` -> `v3.227.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.227.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32270-2026-03-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.226.0...v3.227.0)

##### Features

- \[engine] The engine will fill in Name and Type for ResourceReference
values on the wire protocol
[#&#8203;22208](https://redirect.github.com/pulumi/pulumi/pull/22208)

-   \[sdk/bun] Add support for running policy packs with bun
[#&#8203;22206](https://redirect.github.com/pulumi/pulumi/pull/22206)

-   \[cli/policy] Auto-install missing policy analyzer plugins
[#&#8203;22196](https://redirect.github.com/pulumi/pulumi/pull/22196)

- \[sdk/python] Add lock file detection for picking the Python toolchain
[#&#8203;22234](https://redirect.github.com/pulumi/pulumi/pull/22234)

##### Bug Fixes

-   \[cli] Use distinct exit codes for different types of error
[#&#8203;22205](https://redirect.github.com/pulumi/pulumi/pull/22205)

-   \[cli] Improve SAML SSO reauthorization error message

- \[engine] Fix snapshot integrity error in refresh v2 with changed
parents
[#&#8203;22190](https://redirect.github.com/pulumi/pulumi/pull/22190)

- \[pcl] Continue running after errors when running with
--continue-on-error
[#&#8203;22171](https://redirect.github.com/pulumi/pulumi/pull/22171)

-   \[pcl] Deprecate labels on package blocks
[#&#8203;22253](https://redirect.github.com/pulumi/pulumi/pull/22253)

- \[programgen] Preserve traversal parts in
rewriteRelativeTraversalExpression
[#&#8203;22249](https://redirect.github.com/pulumi/pulumi/pull/22249)

-   \[sdk/bun] Check for an SDK version compatible with bun
[#&#8203;22262](https://redirect.github.com/pulumi/pulumi/pull/22262)

-   \[programgen/nodejs] Correctly generate `for` expressions
[#&#8203;22219](https://redirect.github.com/pulumi/pulumi/pull/22219)

- \[sdk/go] Add support for Azure DevOps git URLs in pulumi package
publish code paths
[#&#8203;22217](https://redirect.github.com/pulumi/pulumi/pull/22217)

- \[programgen/python] Correctly generate list & dictionary
comprehension in Python code
[#&#8203;22182](https://redirect.github.com/pulumi/pulumi/pull/22182)

##### Miscellaneous

-   \[backend] Move CloudConsoleURL from httpstate to httpstate/client
[#&#8203;22258](https://redirect.github.com/pulumi/pulumi/pull/22258)

-   \[docs] Move remaining content from /developer-docs to /docs
[#&#8203;22225](https://redirect.github.com/pulumi/pulumi/pull/22225)

- \[sdk/bun] Add a test for the function serialization error message
when using bun
[#&#8203;22207](https://redirect.github.com/pulumi/pulumi/pull/22207)

-   \[sdk/bun] Run policy language tests for bun
[#&#8203;22209](https://redirect.github.com/pulumi/pulumi/pull/22209)

-   \[sdk/bun] Mark pulumi-language-bun as a bundled plugin
[#&#8203;22265](https://redirect.github.com/pulumi/pulumi/pull/22265)

- \[sdk/{bun,nodejs}] Use defaultErrorMessage in run-plugin and
run-policy-pack
[#&#8203;22210](https://redirect.github.com/pulumi/pulumi/pull/22210)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.227.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.227.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.226.0...v3.227.0)

##### 3.227.0 (2026-03-19)

##### Features

- \[engine] The engine will fill in Name and Type for ResourceReference
values on the wire protocol
[#&#8203;22208](https://redirect.github.com/pulumi/pulumi/pull/22208)

-   \[sdk/bun] Add support for running policy packs with bun
[#&#8203;22206](https://redirect.github.com/pulumi/pulumi/pull/22206)

-   \[cli/policy] Auto-install missing policy analyzer plugins
[#&#8203;22196](https://redirect.github.com/pulumi/pulumi/pull/22196)

- \[sdk/python] Add lock file detection for picking the Python toolchain
[#&#8203;22234](https://redirect.github.com/pulumi/pulumi/pull/22234)

##### Bug Fixes

-   \[cli] Use distinct exit codes for different types of error
[#&#8203;22205](https://redirect.github.com/pulumi/pulumi/pull/22205)

-   \[cli] Improve SAML SSO reauthorization error message

- \[engine] Fix snapshot integrity error in refresh v2 with changed
parents
[#&#8203;22190](https://redirect.github.com/pulumi/pulumi/pull/22190)

- \[pcl] Continue running after errors when running with
--continue-on-error
[#&#8203;22171](https://redirect.github.com/pulumi/pulumi/pull/22171)

-   \[pcl] Deprecate labels on package blocks
[#&#8203;22253](https://redirect.github.com/pulumi/pulumi/pull/22253)

- \[programgen] Preserve traversal parts in
rewriteRelativeTraversalExpression
[#&#8203;22249](https://redirect.github.com/pulumi/pulumi/pull/22249)

-   \[sdk/bun] Check for an SDK version compatible with bun
[#&#8203;22262](https://redirect.github.com/pulumi/pulumi/pull/22262)

-   \[programgen/nodejs] Correctly generate `for` expressions
[#&#8203;22219](https://redirect.github.com/pulumi/pulumi/pull/22219)

- \[sdk/go] Add support for Azure DevOps git URLs in pulumi package
publish code paths
[#&#8203;22217](https://redirect.github.com/pulumi/pulumi/pull/22217)

- \[programgen/python] Correctly generate list & dictionary
comprehension in Python code
[#&#8203;22182](https://redirect.github.com/pulumi/pulumi/pull/22182)

##### Miscellaneous

-   \[backend] Move CloudConsoleURL from httpstate to httpstate/client
[#&#8203;22258](https://redirect.github.com/pulumi/pulumi/pull/22258)

-   \[docs] Move remaining content from /developer-docs to /docs
[#&#8203;22225](https://redirect.github.com/pulumi/pulumi/pull/22225)

- \[sdk/bun] Add a test for the function serialization error message
when using bun
[#&#8203;22207](https://redirect.github.com/pulumi/pulumi/pull/22207)

-   \[sdk/bun] Run policy language tests for bun
[#&#8203;22209](https://redirect.github.com/pulumi/pulumi/pull/22209)

-   \[sdk/bun] Mark pulumi-language-bun as a bundled plugin
[#&#8203;22265](https://redirect.github.com/pulumi/pulumi/pull/22265)

- \[sdk/{bun,nodejs}] Use defaultErrorMessage in run-plugin and
run-policy-pack
[#&#8203;22210](https://redirect.github.com/pulumi/pulumi/pull/22210)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-19 22:21:40 +00:00
pulumi-renovate[bot]
a479383c41 Update module google.golang.org/grpc to v1.79.3 [SECURITY] (#800)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
indirect | patch | `v1.79.2` -> `v1.79.3` |
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
indirect | minor | `v1.72.1` -> `v1.79.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[CVE-2026-33186](https://redirect.github.com/grpc/grpc-go/security/advisories/GHSA-p77j-4mvh-x3m3)

### Impact
_What kind of vulnerability is it? Who is impacted?_

It is an **Authorization Bypass** resulting from **Improper Input
Validation** of the HTTP/2 `:path` pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting
requests where the `:path` omitted the mandatory leading slash (e.g.,
`Service/Method` instead of `/Service/Method`). While the server
successfully routed these requests to the correct handler, authorization
interceptors (including the official `grpc/authz` package) evaluated the
raw, non-canonical path string. Consequently, "deny" rules defined using
canonical paths (starting with `/`) failed to match the incoming
request, allowing it to bypass the policy if a fallback "allow" rule was
present.

**Who is impacted?**
This affects gRPC-Go servers that meet both of the following criteria:
1. They use path-based authorization interceptors, such as the official
RBAC implementation in `google.golang.org/grpc/authz` or custom
interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`.
2. Their security policy contains specific "deny" rules for canonical
paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2
frames with malformed `:path` headers directly to the gRPC server.

### Patches
_Has the problem been patched? What versions should users upgrade to?_

Yes, the issue has been patched. The fix ensures that any request with a
`:path` that does not start with a leading slash is immediately rejected
with a `codes.Unimplemented` error, preventing it from reaching
authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):
* **v1.79.3**
* The latest **master** branch.

It is recommended that all users employing path-based authorization
(especially `grpc/authz`) upgrade as soon as the patch is available in a
tagged release.

### Workarounds
_Is there a way for users to fix or remediate the vulnerability without
upgrading?_

While upgrading is the most secure and recommended path, users can
mitigate the vulnerability using one of the following methods:

#### 1. Use a Validating Interceptor (Recommended Mitigation)
Add an "outermost" interceptor to your server that validates the path
before any other authorization logic runs:

```go
func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)
```

#### 2. Infrastructure-Level Normalization
If your gRPC server is behind a reverse proxy or load balancer (such as
Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to
enforce strict HTTP/2 compliance for pseudo-headers and reject or
normalize requests where the `:path` header does not start with a
leading slash.

#### 3. Policy Hardening
Switch to a "default deny" posture in your authorization policies
(explicitly listing all allowed paths and denying everything else) to
reduce the risk of bypasses via malformed inputs.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.79.3`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.79.3):
Release 1.79.3

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3)

### Security

- server: fix an authorization bypass where malformed :path headers
(missing the leading slash) could bypass path-based restricted "deny"
rules in interceptors like `grpc/authz`. Any request with a
non-canonical path is now immediately rejected with an `Unimplemented`
error.
([#&#8203;8981](https://redirect.github.com/grpc/grpc-go/issues/8981))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-19 05:12:33 +00:00
pulumi-provider-automation[bot]
474e757992 Update GitHub Actions workflows. (#799)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4eeb9c0311bcea38a166c43eb897cf2a2f88ea4c](4eeb9c0311).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-18 06:01:10 +00:00
pulumi-renovate[bot]
23583bfdc8 Update module github.com/pulumi/pulumi-go-provider to v1.3.1 (#798)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-go-provider](https://redirect.github.com/pulumi/pulumi-go-provider)
| require | patch | `v1.3.0` -> `v1.3.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-go-provider
(github.com/pulumi/pulumi-go-provider)</summary>

###
[`v1.3.1`](https://redirect.github.com/pulumi/pulumi-go-provider/releases/tag/v1.3.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-go-provider/compare/v1.3.0...v1.3.1)

#### What's Changed

- Update module github.com/pulumi/pulumi/pkg/v3 to v3.226.0 by
[@&#8203;pulumi-renovate](https://redirect.github.com/pulumi-renovate)\[bot]
in[https://github.com/pulumi/pulumi-go-provider/pull/487](https://redirect.github.com/pulumi/pulumi-go-provider/pull/487)7
- Serialize Enum Names by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/488](https://redirect.github.com/pulumi/pulumi-go-provider/pull/488)
- Allow annotating enums by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/489](https://redirect.github.com/pulumi/pulumi-go-provider/pull/489)

**Full Changelog**:
https://github.com/pulumi/pulumi-go-provider/compare/v1.3.0...v1.3.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-17 15:59:50 +00:00
pulumi-renovate[bot]
c1ec48af0a Update first-party Pulumi dependencies to v3.226.0 (#796)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.225.1` ->
`3.226.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.225.1/3.226.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.225.1` -> `v3.226.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.226.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32260-2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.1...v3.226.0)

##### Features

- \[backend/service] Automatically repair snapshot integrity issues,
while sending an error event to the backend for further diagnosis
[#&#8203;22179](https://redirect.github.com/pulumi/pulumi/pull/22179)

- \[cli] Add a --otel-traces flag, that allows writing otel traces to a
file, or directly to a grpc interface
[#&#8203;22129](https://redirect.github.com/pulumi/pulumi/pull/22129)

- \[engine] Engine will use provider references from `__self__`
arguments to calls
[#&#8203;22114](https://redirect.github.com/pulumi/pulumi/pull/22114)

-   \[sdk/bun] Support bun as a runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)
[#&#8203;22049](https://redirect.github.com/pulumi/pulumi/pull/22049)

-   \[sdk/bun] Add debugger support for the bun runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)

-   \[sdk/bun] Add support for Bun as a plugin runtime
[#&#8203;22189](https://redirect.github.com/pulumi/pulumi/pull/22189)

##### Bug Fixes

-   \[engine] Fix ReplacementTrigger firing due to dependency changes
[#&#8203;22119](https://redirect.github.com/pulumi/pulumi/pull/22119)

- \[engine] Correctly serialize output values to the snapshot rather
than always recording them as computed even when known
[#&#8203;22120](https://redirect.github.com/pulumi/pulumi/pull/22120)

-   \[pcl] Support resource ranges in PCL
[#&#8203;22144](https://redirect.github.com/pulumi/pulumi/pull/22144)

- \[cli/config] Include environments used when refreshing a stack's
config
[#&#8203;22103](https://redirect.github.com/pulumi/pulumi/pull/22103)

- \[cli/display] Fix `pulumi destroy` not showing parent resource
hierarchy
[#&#8203;22148](https://redirect.github.com/pulumi/pulumi/pull/22148)

-   \[cli/package] Correctly parse package URLs with .git in them
[#&#8203;22174](https://redirect.github.com/pulumi/pulumi/pull/22174)

- \[cli/plugin] Fix package get-schema for binary providers at relative
paths
[#&#8203;22107](https://redirect.github.com/pulumi/pulumi/pull/22107)

- \[sdk/python] Handle null detailedDiff in automation StepEventMetadata
JSON parsing
[#&#8203;22140](https://redirect.github.com/pulumi/pulumi/pull/22140)

- \[cli/state] Fix state move integrity errors when copied providers
depend on resources left in source stack
[#&#8203;22141](https://redirect.github.com/pulumi/pulumi/pull/22141)

##### Miscellaneous

-   \[cli/about] Show bun information in `pulumi about`
[#&#8203;22121](https://redirect.github.com/pulumi/pulumi/pull/22121)

- \[programgen/go] Target go 1.25 for generated go.mod files (instead of
go 1.23)
[#&#8203;22070](https://redirect.github.com/pulumi/pulumi/pull/22070)

- \[sdkgen/go] Target go 1.25 for generated go.mod files for SDKs
(instead of go 1.20)
[#&#8203;22131](https://redirect.github.com/pulumi/pulumi/pull/22131)

- \[sdk/python] Read Poetry and uv lockfiles to determine program
dependencies
[#&#8203;22072](https://redirect.github.com/pulumi/pulumi/pull/22072)

- \[sdk/python] Use importlib to find pulumi-plugin.json for installed
packages
[#&#8203;22127](https://redirect.github.com/pulumi/pulumi/pull/22127)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.226.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.226.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.1...v3.226.0)

#### 3.226.0 (2026-03-11)

##### Features

- \[backend/service] Automatically repair snapshot integrity issues,
while sending an error event to the backend for further diagnosis
[#&#8203;22179](https://redirect.github.com/pulumi/pulumi/pull/22179)

- \[cli] Add a --otel-traces flag, that allows writing otel traces to a
file, or directly to a grpc interface
[#&#8203;22129](https://redirect.github.com/pulumi/pulumi/pull/22129)

- \[engine] Engine will use provider references from `__self__`
arguments to calls
[#&#8203;22114](https://redirect.github.com/pulumi/pulumi/pull/22114)

-   \[sdk/bun] Support bun as a runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)
[#&#8203;22049](https://redirect.github.com/pulumi/pulumi/pull/22049)

-   \[sdk/bun] Add debugger support for the bun runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)

-   \[sdk/bun] Add support for Bun as a plugin runtime
[#&#8203;22189](https://redirect.github.com/pulumi/pulumi/pull/22189)

##### Bug Fixes

-   \[engine] Fix ReplacementTrigger firing due to dependency changes
[#&#8203;22119](https://redirect.github.com/pulumi/pulumi/pull/22119)

- \[engine] Correctly serialize output values to the snapshot rather
than always recording them as computed even when known
[#&#8203;22120](https://redirect.github.com/pulumi/pulumi/pull/22120)

-   \[pcl] Support resource ranges in PCL
[#&#8203;22144](https://redirect.github.com/pulumi/pulumi/pull/22144)

- \[cli/config] Include environments used when refreshing a stack's
config
[#&#8203;22103](https://redirect.github.com/pulumi/pulumi/pull/22103)

- \[cli/display] Fix `pulumi destroy` not showing parent resource
hierarchy
[#&#8203;22148](https://redirect.github.com/pulumi/pulumi/pull/22148)

-   \[cli/package] Correctly parse package URLs with .git in them
[#&#8203;22174](https://redirect.github.com/pulumi/pulumi/pull/22174)

- \[cli/plugin] Fix package get-schema for binary providers at relative
paths
[#&#8203;22107](https://redirect.github.com/pulumi/pulumi/pull/22107)

- \[sdk/python] Handle null detailedDiff in automation StepEventMetadata
JSON parsing
[#&#8203;22140](https://redirect.github.com/pulumi/pulumi/pull/22140)

- \[cli/state] Fix state move integrity errors when copied providers
depend on resources left in source stack
[#&#8203;22141](https://redirect.github.com/pulumi/pulumi/pull/22141)

##### Miscellaneous

-   \[cli/about] Show bun information in `pulumi about`
[#&#8203;22121](https://redirect.github.com/pulumi/pulumi/pull/22121)

- \[programgen/go] Target go 1.25 for generated go.mod files (instead of
go 1.23)
[#&#8203;22070](https://redirect.github.com/pulumi/pulumi/pull/22070)

- \[sdkgen/go] Target go 1.25 for generated go.mod files for SDKs
(instead of go 1.20)
[#&#8203;22131](https://redirect.github.com/pulumi/pulumi/pull/22131)

- \[sdk/python] Read Poetry and uv lockfiles to determine program
dependencies
[#&#8203;22072](https://redirect.github.com/pulumi/pulumi/pull/22072)

- \[sdk/python] Use importlib to find pulumi-plugin.json for installed
packages
[#&#8203;22127](https://redirect.github.com/pulumi/pulumi/pull/22127)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-13 16:28:43 +00:00
pulumi-renovate[bot]
20b453c00b Update module github.com/pulumi/esc to v0.23.0 (#795)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.22.0` -> `v0.23.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.23.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.23.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.22.0...v0.23.0)

##### Improvements

-   Add warning in CLI when using an ambiguous 2-part environment ref
    [#&#8203;622](https://redirect.github.com/pulumi/esc/pull/622)

- Add support for `fn::final` built-in function that marks values as
final and unable to be overwritten.
    [#&#8203;621](https://redirect.github.com/pulumi/esc/pull/621)

##### Bug Fixes

##### Breaking changes

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-12 20:38:53 +00:00
Pulumi Bot
f6b499a9d4 [rollout] Set up GH-AW and install shared PR review workflows (#794)
## Summary

This PR sets up GitHub Agentic Workflows (GH-AW) and installs shared PR
review workflows in `pulumi/pulumi-docker-build`.

### Commands Executed

- `gh-aw version` → `v0.56.2` (used as entrypoint)
- `gh-aw init` → ran (`.github/aw/` was not present)
- `gh-aw add
pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-review.md@main
--name docker-build-pr-review --force`
- `gh-aw add
pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-rereview.md@main
--name docker-build-pr-rereview --force`
- `gh-aw compile`
- `gh-aw validate`

### Configuration

| Property | Value |
|---|---|
| AW entrypoint | `gh-aw` (v0.56.2) |
| Target base branch | `main` |
| `prefix_stem` | `docker-build` |
| `gh-aw init` | Ran (was not previously initialized) |

### Changed Files

- `.gitattributes` — added `merge=ours` strategy for
`.github/workflows/*.lock.yml`
- `.github/agents/agentic-workflows.agent.md` — created by `gh-aw init`
- `.github/workflows/copilot-setup-steps.yml` — generated dependency
workflow
- `.github/workflows/docker-build-pr-review.md` — shared PR review
workflow source
- `.github/workflows/docker-build-pr-review.lock.yml` — compiled lock
file
- `.github/workflows/docker-build-pr-rereview.md` — shared PR re-review
workflow source
- `.github/workflows/docker-build-pr-rereview.lock.yml` — compiled lock
file
- `.github/workflows/shared/review.md` — imported shared workflow
- `.github/workflows/shared/plugins/code-review/code-review.md` —
imported shared plugin

### Validation Output

**compile:**
````
⚠ Compiled 2 workflow(s): 0 error(s), 2 warning(s)
```

**validate:**
```
⚠ Compiled 2 workflow(s): 0 error(s), 2 warning(s)
```

### Validation Warnings

Both workflows produced the same non-blocking warning:
```
warning: This workflow grants id-token: write permission
OIDC tokens can authenticate to cloud providers (AWS, Azure, GCP).
Ensure proper audience validation and trust policies are configured.
````

These warnings are expected for the shared review workflows which use
OIDC for cloud authentication and are non-blocking.

---
Rollout triggered by
[provider-ops#41](https://github.com/pulumi/provider-ops/issues/41).




> Generated by [Generic Rollout
Worker](https://github.com/pulumi/provider-ops/actions/runs/23014445857)
·
[◷](https://github.com/search?q=repo%3Apulumi%2Fpulumi-docker-build+%22gh-aw-workflow-id%3A+gh-aw-workflow-rollout-worker%22&type=pullrequests)

<!-- gh-aw-agentic-workflow: Generic Rollout Worker, engine: claude, id:
23014445857, workflow_id: gh-aw-workflow-rollout-worker, run:
https://github.com/pulumi/provider-ops/actions/runs/23014445857 -->

<!-- gh-aw-workflow-id: gh-aw-workflow-rollout-worker -->

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 15:25:04 -04:00
pulumi-renovate[bot]
a8af1bfb5d Update module github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 to v3.102.0 (#792)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.101.2` -> `v3.102.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.102.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31020---2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.101.2...v3.102.0)

##### Improvements

- \[runtime] Support 'secret' in pcl config blocks
[#&#8203;897](https://redirect.github.com/pulumi/pulumi-dotnet/pull/897)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-12 04:43:00 +00:00
pulumi-renovate[bot]
158160e33c Update module github.com/pulumi/pulumi-java/pkg to v1.21.3 (#791)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | patch | `v1.21.2` -> `v1.21.3` |

---

### Release Notes

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.21.3`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1213---2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.2...v1.21.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-11 22:59:16 +00:00
pulumi-provider-automation[bot]
c7b308d64b Update GitHub Actions workflows. (#789)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[7dff4f888cb6e5bfa153146d3658d3e86ba74c6f](7dff4f888c).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-11 05:55:42 +00:00
Cam Soper
ac9653175b Fix syntax for language chooser in documentation (#771)
@pose Fixes a bug in the doc that prevents completion of the build in
`pulumi/registry`.
2026-03-06 09:42:06 -08:00
pulumi-renovate[bot]
76a990fcb2 Update module github.com/pulumi/pulumi/pkg/v3 to v3.225.1 (#788)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.225.0` -> `v3.225.1` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.225.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.0...v3.225.1)

#### 3.225.1 (2026-03-05)

##### Bug Fixes

- \[engine] Fix inheritence of default providers across resources of
different packages
[#&#8203;22101](https://redirect.github.com/pulumi/pulumi/pull/22101)

- \[programgen/go] Fix panic on digit-prefixed schema properties in Go
code generation
[#&#8203;21917](https://redirect.github.com/pulumi/pulumi/pull/21917)

- \[programgen/go] Fix plain values not always being lifted to
input/output values when needed
[#&#8203;22084](https://redirect.github.com/pulumi/pulumi/pull/22084)

-   \[programgen/python] Fix generation of `entries` and `lookup` calls
[#&#8203;22086](https://redirect.github.com/pulumi/pulumi/pull/22086)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-06 08:17:59 +00:00
pulumi-provider-automation[bot]
aeb64dc959 Update GitHub Actions workflows. (#787)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[46f89691d9162d78e8ac301d8b8746b1469b2338](46f89691d9).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-06 05:53:08 +00:00
pulumi-renovate[bot]
14fafe1ba2 Update dependency @pulumi/pulumi to v3.225.1 (#786)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | patch | [`3.225.0` ->
`3.225.1`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.225.0/3.225.1)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.225.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.0...v3.225.1)

#### 3.225.1 (2026-03-05)

##### Bug Fixes

- \[engine] Fix inheritence of default providers across resources of
different packages
[#&#8203;22101](https://redirect.github.com/pulumi/pulumi/pull/22101)

- \[programgen/go] Fix panic on digit-prefixed schema properties in Go
code generation
[#&#8203;21917](https://redirect.github.com/pulumi/pulumi/pull/21917)

- \[programgen/go] Fix plain values not always being lifted to
input/output values when needed
[#&#8203;22084](https://redirect.github.com/pulumi/pulumi/pull/22084)

-   \[programgen/python] Fix generation of `entries` and `lookup` calls
[#&#8203;22086](https://redirect.github.com/pulumi/pulumi/pull/22086)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-05 23:39:57 +00:00
pulumi-renovate[bot]
38664fbc57 Update first-party Pulumi dependencies to v3.225.0 (#784)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.224.0` ->
`3.225.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.224.0/3.225.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.224.0` -> `v3.225.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.225.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.224.0...v3.225.0)

##### 3.225.0 (2026-03-04)

##### Features

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets
[#&#8203;21959](https://redirect.github.com/pulumi/pulumi/pull/21959)

- \[engine] The engine now handles the inheritance of the `provider`
option in resource registrations
[#&#8203;21999](https://redirect.github.com/pulumi/pulumi/pull/21999)

- \[engine] Enable journaling by default. It can still be turned off
using the PULUMI_DISABLE_JOURNALING env variable
[#&#8203;22041](https://redirect.github.com/pulumi/pulumi/pull/22041)

- \[programgen] PCL can now express config values should be read as
secrets
[#&#8203;22066](https://redirect.github.com/pulumi/pulumi/pull/22066)

-   \[yaml] Update yaml to v1.30.0

- \[cli/engine] Add a flag for automatically opening a Neo task on
preview/up failure
[#&#8203;21960](https://redirect.github.com/pulumi/pulumi/pull/21960)

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

- \[cli] Fix `stack import` panicking when importing a service stack
into a DIY backend
[#&#8203;22076](https://redirect.github.com/pulumi/pulumi/pull/22076)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

-   \[sdk/nodejs] Implement GetProgramDependencies for bun and pnpm
[#&#8203;22065](https://redirect.github.com/pulumi/pulumi/pull/22065)

##### Miscellaneous

- \[cli] Build language plugins with the grpcnotrace tag to reduce the
binary size
[#&#8203;22012](https://redirect.github.com/pulumi/pulumi/pull/22012)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-05 12:51:45 +00:00
pulumi-renovate[bot]
8befdfed62 Update module github.com/pulumi/pulumi/pkg/v3 to v3.224.0 (#780)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.223.0` -> `v3.224.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.224.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.224.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.223.0...v3.224.0)

##### 3.224.0 (2026-02-26)

##### Features

- \[backend/diy] Add zstd compression option for DIY backend state files
[#&#8203;21877](https://redirect.github.com/pulumi/pulumi/pull/21877)

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

-   \[pkg] Correct the schema for "pulumi:pulumi:StackReference"
[#&#8203;21895](https://redirect.github.com/pulumi/pulumi/pull/21895)

- \[programgen/nodejs] Correct the semantics of singleOrNone in
generated files
[#&#8203;21947](https://redirect.github.com/pulumi/pulumi/pull/21947)

- \[sdk/python] Fix `StepEventMetadata.from_json` reading
`detailed_diff` (snake_case) instead of `detailedDiff` (camelCase), and
`PolicyEvent.from_json` reading `resource_urn` instead of `resourceUrn`,
causing both fields to always be `None`
[#&#8203;21714](https://redirect.github.com/pulumi/pulumi/pull/21714)

-   \[sdk/python] Convert integer component inputs to `int`
[#&#8203;21944](https://redirect.github.com/pulumi/pulumi/pull/21944)

-   \[sdk/python] Fix crash in forked processes using automation API
[#&#8203;21937](https://redirect.github.com/pulumi/pulumi/pull/21937)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

##### Miscellaneous

-   \[sdk] Update java, dotnet & yaml
[#&#8203;21961](https://redirect.github.com/pulumi/pulumi/pull/21961)

- \[sdk/python] Improve the performance of `contains_unknowns` for large
objects
[#&#8203;21893](https://redirect.github.com/pulumi/pulumi/pull/21893)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-27 12:43:28 +00:00
pulumi-renovate[bot]
1e0f067064 Update module github.com/cloudflare/circl to v1.6.3 [SECURITY] (#776)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/cloudflare/circl](https://redirect.github.com/cloudflare/circl)
| indirect | patch | `v1.6.1` -> `v1.6.3` |

### GitHub Vulnerability Alerts

####
[CVE-2026-1229](https://redirect.github.com/cloudflare/circl/security/advisories/GHSA-q9hv-hpm4-hj6x)

The CombinedMult function in the CIRCL ecc/p384 package (secp384r1
curve) produces an incorrect value for specific inputs. The issue is
fixed by using complete addition formulas.
ECDH and ECDSA signing relying on this curve are not affected.

The bug was fixed in
**[v1.6.3](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.3)**.

---

### Release Notes

<details>
<summary>cloudflare/circl (github.com/cloudflare/circl)</summary>

###
[`v1.6.3`](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.3):
CIRCL v1.6.3

[Compare
Source](https://redirect.github.com/cloudflare/circl/compare/v1.6.2...v1.6.3)

##### CIRCL v1.6.3

Fix a bug on ecc/p384 scalar multiplication.

##### What's Changed

- sign/mldsa: Check opts for nil value by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/582](https://redirect.github.com/cloudflare/circl/pull/582)
- ecc/p384: Point addition must handle point doubling case. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/583](https://redirect.github.com/cloudflare/circl/pull/583)
- Release CIRCL v1.6.3 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/584](https://redirect.github.com/cloudflare/circl/pull/584)

**Full Changelog**:
https://github.com/cloudflare/circl/compare/v1.6.2...v1.6.3

###
[`v1.6.2`](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.2):
CIRCL v1.6.2

[Compare
Source](https://redirect.github.com/cloudflare/circl/compare/v1.6.1...v1.6.2)

##### CIRCL v1.6.2

-   New SLH-DSA, improvements in ML-DSA for arm64.
-   Tested compilation on WASM.

##### What's Changed

- Optimize pairing product computation by moving exponentiations to G1.
by [@&#8203;dfaranha](https://redirect.github.com/dfaranha) in
[https://github.com/cloudflare/circl/pull/547](https://redirect.github.com/cloudflare/circl/pull/547)
- sign: Adding SLH-DSA signature by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/512](https://redirect.github.com/cloudflare/circl/pull/512)
- Update code generators to CIRCL v1.6.1. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/548](https://redirect.github.com/cloudflare/circl/pull/548)
- ML-DSA: Add preliminary Wycheproof test vectors by
[@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/552](https://redirect.github.com/cloudflare/circl/pull/552)
- go fmt by [@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/554](https://redirect.github.com/cloudflare/circl/pull/554)
- gz-compressing test vectors, use of HexBytes and ReadGzip functions.
by [@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/555](https://redirect.github.com/cloudflare/circl/pull/555)
- group: Removes use of elliptic Marshal and Unmarshal functions. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/556](https://redirect.github.com/cloudflare/circl/pull/556)
- Support encoding/decoding ML-DSA private keys (as long as they contain
seeds) by [@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/559](https://redirect.github.com/cloudflare/circl/pull/559)
- Update to golangci-lint v2 by
[@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/560](https://redirect.github.com/cloudflare/circl/pull/560)
- Preparation for ARM64 Implementation of poly operations for dilithium
package. by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/562](https://redirect.github.com/cloudflare/circl/pull/562)
- prepare power2Round for custom implementations in assembly by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/564](https://redirect.github.com/cloudflare/circl/pull/564)
- ARM64 implementation for poly.PackLe16 by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/563](https://redirect.github.com/cloudflare/circl/pull/563)
- add arm64 version of polyMulBy2toD by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/565](https://redirect.github.com/cloudflare/circl/pull/565)
- add arm64 version of polySub by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/566](https://redirect.github.com/cloudflare/circl/pull/566)
- group: add byteLen method for short groups and RandomScalar uses
rand.Int by [@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/568](https://redirect.github.com/cloudflare/circl/pull/568)
- add arm64 version of poly.Add/Sub by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/572](https://redirect.github.com/cloudflare/circl/pull/572)
- group: Adding cryptobyte marshaling to scalars by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/569](https://redirect.github.com/cloudflare/circl/pull/569)
- Bumping up to Go1.25 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/574](https://redirect.github.com/cloudflare/circl/pull/574)
- ci: Including WASM compilation. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/577](https://redirect.github.com/cloudflare/circl/pull/577)
- Revert to using package-declared HPKE errors for shortkem instead of
standard library errors by
[@&#8203;harshiniwho](https://redirect.github.com/harshiniwho) in
[https://github.com/cloudflare/circl/pull/578](https://redirect.github.com/cloudflare/circl/pull/578)
- Release v1.6.2 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/579](https://redirect.github.com/cloudflare/circl/pull/579)

##### New Contributors

- [@&#8203;dfaranha](https://redirect.github.com/dfaranha) made their
first contribution in
[https://github.com/cloudflare/circl/pull/547](https://redirect.github.com/cloudflare/circl/pull/547)
- [@&#8203;elementrics](https://redirect.github.com/elementrics) made
their first contribution in
[https://github.com/cloudflare/circl/pull/562](https://redirect.github.com/cloudflare/circl/pull/562)
- [@&#8203;harshiniwho](https://redirect.github.com/harshiniwho) made
their first contribution in
[https://github.com/cloudflare/circl/pull/578](https://redirect.github.com/cloudflare/circl/pull/578)

**Full Changelog**:
https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-26 21:42:18 +00:00
pulumi-renovate[bot]
52f09191a7 Update first-party Pulumi dependencies (#769)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.221.0` ->
`3.224.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.221.0/3.224.0)
|
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.12` -> `v0.0.15` |
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | patch | `v3.101.0` -> `v3.101.2` |
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.16.0` -> `v1.21.2` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.220.0` -> `v3.223.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.224.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.224.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.223.0...v3.224.0)

##### 3.224.0 (2026-02-26)

##### Features

- \[backend/diy] Add zstd compression option for DIY backend state files
[#&#8203;21877](https://redirect.github.com/pulumi/pulumi/pull/21877)

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

-   \[pkg] Correct the schema for "pulumi:pulumi:StackReference"
[#&#8203;21895](https://redirect.github.com/pulumi/pulumi/pull/21895)

- \[programgen/nodejs] Correct the semantics of singleOrNone in
generated files
[#&#8203;21947](https://redirect.github.com/pulumi/pulumi/pull/21947)

- \[sdk/python] Fix `StepEventMetadata.from_json` reading
`detailed_diff` (snake_case) instead of `detailedDiff` (camelCase), and
`PolicyEvent.from_json` reading `resource_urn` instead of `resourceUrn`,
causing both fields to always be `None`
[#&#8203;21714](https://redirect.github.com/pulumi/pulumi/pull/21714)

-   \[sdk/python] Convert integer component inputs to `int`
[#&#8203;21944](https://redirect.github.com/pulumi/pulumi/pull/21944)

-   \[sdk/python] Fix crash in forked processes using automation API
[#&#8203;21937](https://redirect.github.com/pulumi/pulumi/pull/21937)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

##### Miscellaneous

-   \[sdk] Update java, dotnet & yaml
[#&#8203;21961](https://redirect.github.com/pulumi/pulumi/pull/21961)

- \[sdk/python] Improve the performance of `contains_unknowns` for large
objects
[#&#8203;21893](https://redirect.github.com/pulumi/pulumi/pull/21893)

###
[`v3.223.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32230-2026-02-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.222.0...v3.223.0)

##### Bug Fixes

-   \[engine] Report policy pack installation errors
[#&#8203;21882](https://redirect.github.com/pulumi/pulumi/pull/21882)

###
[`v3.222.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32220-2026-02-18)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.221.0...v3.222.0)

##### Features

-   \[programgen/go] Generate Call requests
[#&#8203;21836](https://redirect.github.com/pulumi/pulumi/pull/21836)

##### Bug Fixes

- \[sdk/{nodejs,python}] Fix hang when loading policy packs that use
v1.18.1 or older of the policy SDK
[#&#8203;21866](https://redirect.github.com/pulumi/pulumi/pull/21866)

</details>

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.15`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.14...v0.0.15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.14...v0.0.15)

###
[`v0.0.14`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.13...v0.0.14)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.13...v0.0.14)

###
[`v0.0.13`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.12...v0.0.13)

#### What's Changed

- Improve exec error messages by
[@&#8203;blampe](https://redirect.github.com/blampe) in
[https://github.com/pulumi/pulumi-docker-build/pull/553](https://redirect.github.com/pulumi/pulumi-docker-build/pull/553)
- Update p-go-provider to fix version replacement behavior by
[@&#8203;blampe](https://redirect.github.com/blampe) in
[https://github.com/pulumi/pulumi-docker-build/pull/584](https://redirect.github.com/pulumi/pulumi-docker-build/pull/584)

**Full Changelog**:
https://github.com/pulumi/pulumi-docker-build/compare/v0.0.12...v0.0.13

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.101.2`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31012---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.101.0...v3.101.2)

</details>

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.21.2`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1212---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.1...v1.21.2)

###
[`v1.21.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1211---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.0...v1.21.1)

##### Bug Fixes

- \[runtime] Fix `unknown provider package` error in automation API and
correctly propagate errors from inline programs.
[#&#8203;2029](https://redirect.github.com/pulumi/pulumi-java/pull/2029)

###
[`v1.21.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1210---2026-01-28)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.20.0...v1.21.0)

##### Improvements

- \[sdk] Add Deployment.requirePulumiVersion
[#&#8203;1979](https://redirect.github.com/pulumi/pulumi-java/pull/1979)

- \[codegen] Implement alias resource options generation
[#&#8203;1982](https://redirect.github.com/pulumi/pulumi-java/pull/1982)

##### Bug Fixes

- \[codegen] Use config.require in codegen when there is no default
value
[#&#8203;1983](https://redirect.github.com/pulumi/pulumi-java/pull/1983)

###
[`v1.20.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1200---2025-12-29)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.19.0...v1.20.0)

##### Improvements

- \[sdk] Add support for the `replacementTrigger` resource option
[#&#8203;1958](https://redirect.github.com/pulumi/pulumi-java/pull/1958)

###
[`v1.19.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1190---2025-12-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.18.0...v1.19.0)

##### Improvements

- \[codegen] Add .gitattributes file to generated SDKs
[#&#8203;1949](https://redirect.github.com/pulumi/pulumi-java/pull/1949)

##### Bug Fixes

- \[language] Stop parsing runtime options at startup
[#&#8203;1947](https://redirect.github.com/pulumi/pulumi-java/pull/1947)

###
[`v1.18.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1180---2025-12-03)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.17.1...v1.18.0)

##### Improvements

-   \[sdk] Add `ReplaceWith` as a resource option

###
[`v1.17.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1171---2025-11-26)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.17.0...v1.17.1)

##### Improvements

-   \[sdk] Dependency bumps

###
[`v1.17.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1170---2025-11-12)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.3...v1.17.0)

##### Improvements

- \[sdk] Get the event log in the automation API over gRPC, instead of
through a text file

###
[`v1.16.3`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1163---2025-11-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.2...v1.16.3)

##### Improvements

-   \[sdk] Update pulumi pkg & sdk to 3.205.0
-   \[runtime] Implement `Language.Link`

###
[`v1.16.2`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1162---2025-10-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.1...v1.16.2)

##### Bug Fixes

-   \[sdk] Add `hideDiffs` as a new resource option. See details

###
[`v1.16.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1161---2025-07-31)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.0...v1.16.1)

##### Bug Fixes

-   \[codegen] Fix generated 'plan' argument of 'preview' command

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-26 21:24:50 +00:00
pulumi-provider-automation[bot]
7a9b31c60f Update GitHub Actions workflows. (#777)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[599b3ade95c3408830d062a38ea7cf9c8607a12f](599b3ade95).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-26 06:00:24 +00:00
Pulumi Bot
e5da099be4 Upgrade to golangci-lint v2 (#775)
Upgrades golangci-lint from v1 to v2. Automated by Linear issue IT-144.

Co-authored-by: CI <ci@pulumi.com>
2026-02-25 12:40:02 -08:00
pulumi-provider-automation[bot]
1b95d18edc Update GitHub Actions workflows. (#773)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b8b29dc51d452160accc76a310efd6eb38760b50](b8b29dc51d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-24 06:01:23 +00:00
pulumi-provider-automation[bot]
5eabae0608 Update GitHub Actions workflows. (#772)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[f591fbcab3c096e497ab858d7155b31b12495ed1](f591fbcab3).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-20 05:57:28 +00:00
pulumi-provider-automation[bot]
583183d5e6 Update GitHub Actions workflows. (#768)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[cf7cafe004bfe263736eb8a33fbeead26cc57b58](cf7cafe004).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-18 06:02:18 +00:00
pulumi-renovate[bot]
a30d557dc3 Update dependency @pulumi/pulumi to v3.221.0 (#767)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.220.0` ->
`3.221.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.220.0/3.221.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.221.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.221.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.220.0...v3.221.0)

#### 3.221.0 (2026-02-17)

##### Features

-   \[auto] Support Go 1.26
[#&#8203;21835](https://redirect.github.com/pulumi/pulumi/pull/21835)

- \[engine] BREAKING: Rename `pulumiVersionRange` to
`requiredPulumiVersion` in `PulumiPlugin.yaml`
[#&#8203;21807](https://redirect.github.com/pulumi/pulumi/pull/21807)

-   \[cli/plugin] Reduce GitHub API usage when downloading plugins
[#&#8203;21774](https://redirect.github.com/pulumi/pulumi/pull/21774)

-   \[protobuf] Add loader_target to RunPluginRequest
[#&#8203;21763](https://redirect.github.com/pulumi/pulumi/pull/21763)

-   \[sdk/nodejs] Support enums when inferring schemas from components
[#&#8203;21787](https://redirect.github.com/pulumi/pulumi/pull/21787)

- \[sdk/nodejs] Support the Partial<T> utility type in component schema
inference
[#&#8203;21802](https://redirect.github.com/pulumi/pulumi/pull/21802)

- \[sdk/nodejs] Support the Required<T> utility type in component schema
inference
[#&#8203;21803](https://redirect.github.com/pulumi/pulumi/pull/21803)

##### Bug Fixes

-   \[cli] Make stack graph output deterministic
[#&#8203;21786](https://redirect.github.com/pulumi/pulumi/pull/21786)

- \[engine] Fix snapshot integrity error in `refresh --run-program` with
component resources
[#&#8203;21806](https://redirect.github.com/pulumi/pulumi/pull/21806)

-   \[engine] Fix race in refresh --run-program
[#&#8203;21815](https://redirect.github.com/pulumi/pulumi/pull/21815)

-   \[programgen/go] Correctly handle import paths for nested modules
[#&#8203;21812](https://redirect.github.com/pulumi/pulumi/pull/21812)

- \[sdkgen] Support type references to parameterized and third-party
packages
[#&#8203;21804](https://redirect.github.com/pulumi/pulumi/pull/21804)

-   \[sdkgen/go] Do not depend on pulumix against instructions for enums
[#&#8203;21818](https://redirect.github.com/pulumi/pulumi/pull/21818)

- \[cli/{install,package}] Don't panic when a non-absolute path is
passed to `pulumi package get-schema` where the PulumiPlugin.yaml has a
packages section
[#&#8203;21794](https://redirect.github.com/pulumi/pulumi/pull/21794)

-   \[cli/{install,package}] Only link a Pulumi project once
[#&#8203;21788](https://redirect.github.com/pulumi/pulumi/pull/21788)

- \[cli/{install,package}] Run in the correct location when using `uv`
to link python packages
[#&#8203;21796](https://redirect.github.com/pulumi/pulumi/pull/21796)

-   \[cli/package] Allow underscores in the path of plugin URLs
[#&#8203;21778](https://redirect.github.com/pulumi/pulumi/pull/21778)

- \[sdk/{nodejs,python}] Use new policy plugin support to run policy
packs
[#&#8203;21684](https://redirect.github.com/pulumi/pulumi/pull/21684)

-   \[sdk/python] Surface errors from uv, poetry or pip during linking
[#&#8203;21770](https://redirect.github.com/pulumi/pulumi/pull/21770)

- \[sdk/python] Always surface errors from uv, poetry or pip during
dependency installation
[#&#8203;21814](https://redirect.github.com/pulumi/pulumi/pull/21814)

-   \[sdkgen/python] Add missing blank line before :param lists
[#&#8203;21789](https://redirect.github.com/pulumi/pulumi/pull/21789)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-02-18 01:31:26 +00:00
Bryce Lampe
710f5d816b Remove unnecessary envOverride (#766)
Our DockerHub password is in ESC, and a bunch of the other variables
were copy-pasted defaults. We need to keep GCP because that isn't in
ESC yet.

Refs https://github.com/pulumi/ci-mgmt/issues/1583.
2026-02-13 15:57:47 -08:00
pulumi-provider-automation[bot]
6aa0b4dde7 Update GitHub Actions workflows. (#765)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ee5e1047ced9aa4de854f25974720cb5d4243799.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-13 06:04:28 +00:00
Alberto Pose
13a14388f2 Fix workflow failure by ensuring bin directory exists (#762)
# **Note: This is a temporary fix until we get this to `ci-mgmt`**

## Summary
Fixes the GoReleaser workflow failure that started on Feb 6, 2026.

## Root Cause
Commit 491f7de deleted `bin/pulumi-language-python-exec`, which was the
last file in the `bin/` directory. Since Git doesn't track empty
directories, the `bin/` directory disappeared from the repository.

When GoReleaser runs the post-build hook `make
sign-goreleaser-exe-amd64`, it attempts to download `jsign-6.0.jar` to
`bin/jsign-6.0.jar`, but fails with:
```
bin/jsign-6.0.jar: No such file or directory
make: *** [Makefile:260: bin/jsign-6.0.jar] Error 1
```

## Changes
Added `@mkdir -p bin` to Makefile targets that write to the `bin/`
directory:
- `bin/jsign-6.0.jar` target (line 260) - **Critical fix**
- `bin/pulumi-gen-${PACK}` target (line 185) - Defensive fix

This ensures the directory exists before attempting to create files in
it.

Fixes #756

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 15:31:19 +00:00
pulumi-renovate[bot]
13acd934b6 Update first-party Pulumi dependencies (#760)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.21.0` -> `v0.22.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.219.0` -> `v3.220.0` |

---

### Release Notes

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.22.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.22.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.21.0...v0.22.0)

##### Improvements

##### Bug Fixes

##### Breaking changes

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.220.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.220.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

##### 3.220.0 (2026-02-10)

##### Features

- \[cli] Show environment variables that were set if a snapshot
integrity error happens
[#&#8203;21709](https://redirect.github.com/pulumi/pulumi/pull/21709)

- \[cli/{install,package}] Use the Pulumi Cloud Registry by default to
resolve package names

-   \[engine] Pass replacement trigger through to Construct
[#&#8203;21408](https://redirect.github.com/pulumi/pulumi/pull/21408)

- \[engine] Add EnvVarMappings resource option for provider resources,
allowing environment variables to be remapped before being passed to the
provider
[#&#8203;21572](https://redirect.github.com/pulumi/pulumi/pull/21572)

- \[pkg] BREAKING: Deprecate
github.com/pulumi/pulumi/pkg/v3/codegen/dotnet in favor of
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen. This
package will be removed from pulumi/pulumi soon!
[#&#8203;21720](https://redirect.github.com/pulumi/pulumi/pull/21720)

##### Bug Fixes

- \[cli] Retry `yarn install` when it fails (e.g. during `pulumi
install`)
[#&#8203;21707](https://redirect.github.com/pulumi/pulumi/pull/21707)

-   \[engine] Deal with errors in elided journal entries correctly
[#&#8203;21576](https://redirect.github.com/pulumi/pulumi/pull/21576)

- \[sdk/nodejs] Fix remote components with
PULUMI_NODEJS_SKIP_COMPONENT_INPUTS

- \[sdk/python] Fix `_LazyModule` to not trigger full module load for
introspection attributes
[#&#8203;21620](https://redirect.github.com/pulumi/pulumi/pull/21620)

- \[sdkgen/python] Remove workaround for slow typechecking with MyPy and
PyCharm
[#&#8203;21722](https://redirect.github.com/pulumi/pulumi/pull/21722)

##### Miscellaneous

- \[cli] Write logfile location if verbosity is >= 1 to stderr instead
of stdout
[#&#8203;21663](https://redirect.github.com/pulumi/pulumi/pull/21663)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
Co-authored-by: Ian Wahbe <me@iwahbe.com>
2026-02-11 10:27:46 +00:00
pulumi-provider-automation[bot]
8cb8d21332 Update GitHub Actions workflows. (#761)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f34bb277a6b5001ebd945cebced51ef890cdb7b9.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-11 06:04:08 +00:00
pulumi-renovate[bot]
c11144e1b3 Update dependency @pulumi/pulumi to v3.220.0 (#759)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.219.0` ->
`3.220.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.219.0/3.220.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.220.0`](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-02-10 17:51:07 +00:00
pulumi-renovate[bot]
ca8a59a077 Update module github.com/go-git/go-git/v5 to v5.16.5 [SECURITY] (#758)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/go-git/go-git/v5](https://redirect.github.com/go-git/go-git)
| indirect | patch | `v5.16.0` -> `v5.16.5` |

### GitHub Vulnerability Alerts

####
[CVE-2026-25934](https://redirect.github.com/go-git/go-git/security/advisories/GHSA-37cx-329c-33x3)

### Impact 

A vulnerability was discovered in `go-git` whereby data integrity values
for `.pack` and `.idx` files were not properly verified. This resulted
in `go-git` potentially consuming corrupted files, which would likely
result in unexpected errors such as `object not found`.

For context, clients fetch
[`packfiles`](https://git-scm.com/docs/pack-protocol#_packfile_data)
from upstream Git servers. Those files contain a checksum of their
contents, so that clients can perform integrity checks before consuming
it. The pack indexes (`.idx`) are
[generated](https://git-scm.com/docs/pack-format) locally by `go-git`,
or the `git` cli, when new `.pack` files are received and processed. The
integrity checks for both files were not being verified correctly.

Note that the lack of verification of the packfile checksum has no
impact on the trust relationship between the client and server, which is
enforced based on the protocol being used (e.g. TLS in the case of
`https://` or known hosts for `ssh://`). In other words, the packfile
checksum verification does not provide any security benefits when
connecting to a malicious or compromised Git server.

### Patches

Users should upgrade to `v5.16.5`, or the latest `v6`
[pseudo-version](https://go.dev/ref/mod#pseudo-versions), in order to
mitigate this vulnerability.

### Workarounds

In case updating to a fixed version of `go-git` is not possible, users
can run [git fsck](https://git-scm.com/docs/git-fsck) from the `git` cli
to check for data corruption on a given repository.

### Credit

Thanks @&#8203;N0zoM1z0 for finding and reporting this issue privately
to the `go-git` project.

---

### Release Notes

<details>
<summary>go-git/go-git (github.com/go-git/go-git/v5)</summary>

###
[`v5.16.5`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.5)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.4...v5.16.5)

##### What's Changed

- build: Update module golang.org/x/crypto to v0.45.0 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1744](https://redirect.github.com/go-git/go-git/pull/1744)4
- build: Bump Go test versions to 1.23-1.25 (v5) by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1746](https://redirect.github.com/go-git/go-git/pull/1746)
- \[v5] git: worktree, Don't delete local untracked files when resetting
worktree by [@&#8203;Ch00k](https://redirect.github.com/Ch00k) in
[https://github.com/go-git/go-git/pull/1800](https://redirect.github.com/go-git/go-git/pull/1800)
- Expand packfile checks by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1836](https://redirect.github.com/go-git/go-git/pull/1836)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.4...v5.16.5

###
[`v5.16.4`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.4)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.3...v5.16.4)

##### What's Changed

- backport plumbing: format/idxfile, prevent panic by
[@&#8203;swills](https://redirect.github.com/swills) in
[https://github.com/go-git/go-git/pull/1732](https://redirect.github.com/go-git/go-git/pull/1732)
- \[backport] build: test, Fix build on Windows. by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1734](https://redirect.github.com/go-git/go-git/pull/1734)
- build: Update module golang.org/x/net to v0.38.0 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1742](https://redirect.github.com/go-git/go-git/pull/1742)2
- build: Update module github.com/cloudflare/circl to v1.6.1 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1741](https://redirect.github.com/go-git/go-git/pull/1741)1
- build: Update module github.com/go-git/go-git/v5 to v5.13.0
\[SECURITY] (releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1743](https://redirect.github.com/go-git/go-git/pull/1743)3

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.3...v5.16.4

###
[`v5.16.3`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.3)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.2...v5.16.3)

##### What's Changed

- internal: Expand regex to fix build \[5.x] by
[@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1644](https://redirect.github.com/go-git/go-git/pull/1644)
- build: raise timeouts for windows CI tests and disable CIFuzz \[5.x]
by [@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1646](https://redirect.github.com/go-git/go-git/pull/1646)
- plumbing: support commits extra headers, support jujutsu signed commit
\[5.x] by [@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1633](https://redirect.github.com/go-git/go-git/pull/1633)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.2...v5.16.3

###
[`v5.16.2`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.2)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.1...v5.16.2)

##### What's Changed

- utils: fix diff so subpaths work for sparse checkouts, fixes 1455 to
releases/v5.x by [@&#8203;kane8n](https://redirect.github.com/kane8n) in
[https://github.com/go-git/go-git/pull/1567](https://redirect.github.com/go-git/go-git/pull/1567)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.1...v5.16.2

###
[`v5.16.1`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.1)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.0...v5.16.1)

##### What's Changed

- utils: merkletrie, Fix diff on sparse-checkout index. Fixes
[#&#8203;1406](https://redirect.github.com/go-git/go-git/issues/1406) to
releases/v5.x by [@&#8203;kane8n](https://redirect.github.com/kane8n) in
[https://github.com/go-git/go-git/pull/1561](https://redirect.github.com/go-git/go-git/pull/1561)

##### New Contributors

- [@&#8203;kane8n](https://redirect.github.com/kane8n) made their first
contribution in
[https://github.com/go-git/go-git/pull/1561](https://redirect.github.com/go-git/go-git/pull/1561)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.0...v5.16.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-10 00:50:46 +00:00
Bryce Lampe
5b05d733ea Fix lint issues (#755)
Lint fixes in preparation of
https://github.com/pulumi/ci-mgmt/pull/2024.
2026-02-06 22:08:57 +00:00
pulumi-renovate[bot]
e9f6bbf15d Update first-party Pulumi dependencies (#717)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.212.0` ->
`3.219.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.212.0/3.219.0)
|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.20.0` -> `v0.21.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.219.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32190-2026-02-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.218.0...v3.219.0)

##### Features

-   \[cli] Allow setting `requiredPulumiVersion` in Pulumi.yaml
[#&#8203;21627](https://redirect.github.com/pulumi/pulumi/pull/21627)

- \[cli/{install,package}] Allow using private packages as local
dependencies in components
[#&#8203;21664](https://redirect.github.com/pulumi/pulumi/pull/21664)

-   \[cli/policy] Add `pulumi policy install` command
[#&#8203;21652](https://redirect.github.com/pulumi/pulumi/pull/21652)

-   \[engine] Run analyzer calls in parallel
[#&#8203;21631](https://redirect.github.com/pulumi/pulumi/pull/21631)

-   \[programgen/dotnet] Codegen RequirePulumiVersion for Dotnet
[#&#8203;21621](https://redirect.github.com/pulumi/pulumi/pull/21621)

-   \[sdk/python] Add support for the `OnError` resource hook
[#&#8203;21644](https://redirect.github.com/pulumi/pulumi/pull/21644)

-   \[sdk/python] Add support for protobuf 6
[#&#8203;21647](https://redirect.github.com/pulumi/pulumi/pull/21647)

##### Bug Fixes

-   \[cli] Allow positional arguments to be passed to `convert` again
[#&#8203;21604](https://redirect.github.com/pulumi/pulumi/pull/21604)
[#&#8203;21614](https://redirect.github.com/pulumi/pulumi/pull/21614)

- \[engine] Download/install required policy packs in parallel with
plugins
[#&#8203;21651](https://redirect.github.com/pulumi/pulumi/pull/21651)

- \[cli/package] Correctly install packages that depend on other
packages for `pulumi package add` and `pulumi package get-schema`.
[#&#8203;21321](https://redirect.github.com/pulumi/pulumi/pull/21321)

- \[programgen/python] Fix panic when ranging over a resource output
that is an array of objects
[#&#8203;21679](https://redirect.github.com/pulumi/pulumi/pull/21679)

- \[sdk/python] Fix issue with generic subclasses of `dynamic.Resource`
[#&#8203;21670](https://redirect.github.com/pulumi/pulumi/pull/21670)

##### Miscellaneous

-   \[sdk/python] Relax pip version constraint
[#&#8203;21639](https://redirect.github.com/pulumi/pulumi/pull/21639)

###
[`v3.218.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32180-2026-01-29)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.217.1...v3.218.0)

##### Features

-   \[sdk/nodejs] Add support for the `OnError` resource hook

##### Bug Fixes

-   \[cli] Allow positional arguments to be passed to `convert` again

- \[cli/install] Correctly include git forge organizations as schema
namespaces when generating SDKs
[#&#8203;21579](https://redirect.github.com/pulumi/pulumi/pull/21579)

- \[cli/{install,package}] Correctly grab package names for Python &
NodeJS
[#&#8203;21577](https://redirect.github.com/pulumi/pulumi/pull/21577)

###
[`v3.217.1`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32171-2026-01-27)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1)

##### Features

-   \[sdk/go] Add support for the `OnError` resource hook
[#&#8203;21515](https://redirect.github.com/pulumi/pulumi/pull/21515)

##### Bug Fixes

- \[cli/install] Copy files when linking to be robust to copying across
file partitions
[#&#8203;21549](https://redirect.github.com/pulumi/pulumi/pull/21549)

- \[cli/install] Do not double install plugins with explicit
parameterizations
[#&#8203;21548](https://redirect.github.com/pulumi/pulumi/pull/21548)

-   \[cli/install] Copy files when linking instead of renaming
[#&#8203;21549](https://redirect.github.com/pulumi/pulumi/pull/21549)

**Full Changelog**:
https://github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1

###
[`v3.217.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32170-2026-01-23)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.216.0...v3.217.0)

##### Features

- \[cli] Extract organization, team, and user from OIDC JWT claims
during login
[#&#8203;21462](https://redirect.github.com/pulumi/pulumi/pull/21462)

- \[engine] Add the `OnError` resource hook to allow for custom retry
policies
[#&#8203;21291](https://redirect.github.com/pulumi/pulumi/pull/21291)

-   \[cli/engine] Add --plan up flag
[#&#8203;21368](https://redirect.github.com/pulumi/pulumi/pull/21368)

-   \[sdk/nodejs] Add requirePulumiVersion to the Node.js SDK
[#&#8203;21528](https://redirect.github.com/pulumi/pulumi/pull/21528)
[#&#8203;21478](https://redirect.github.com/pulumi/pulumi/pull/21478)

-   \[sdk/python] Add require_pulumi_version to the Python SDK
[#&#8203;21528](https://redirect.github.com/pulumi/pulumi/pull/21528)
[#&#8203;21430](https://redirect.github.com/pulumi/pulumi/pull/21430)

-   \[sdk/go] Add CheckPulumiVersion to the Go SDK
[#&#8203;21528](https://redirect.github.com/pulumi/pulumi/pull/21528)
[#&#8203;21514](https://redirect.github.com/pulumi/pulumi/pull/21514)

##### Bug Fixes

-   \[auto/python] Implement `About` in Python automation API server
[#&#8203;21479](https://redirect.github.com/pulumi/pulumi/pull/21479)

- \[engine] When importing a state file that refers to the service
backed secret manager, make `stack import` reconfigure it for the target
stack if required
[#&#8203;20966](https://redirect.github.com/pulumi/pulumi/pull/20966)

- \[protobuf] Fix alias options being passed to Construct for remote
components
[#&#8203;21050](https://redirect.github.com/pulumi/pulumi/pull/21050)

-   \[sdk/nodejs] Fix issue with serialized async generators
[#&#8203;21484](https://redirect.github.com/pulumi/pulumi/pull/21484)

###
[`v3.216.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32160-2026-01-16)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.215.0...v3.216.0)

##### Features

-   \[build] Don't set PULUMI_ROOT with mise
[#&#8203;21457](https://redirect.github.com/pulumi/pulumi/pull/21457)

-   \[cli] Default to Pulumi Cloud when using an OIDC token for login
[#&#8203;21322](https://redirect.github.com/pulumi/pulumi/pull/21322)

-   \[engine] Add CheckPulumiVersion RPC to the engine
[#&#8203;21429](https://redirect.github.com/pulumi/pulumi/pull/21429)

-   \[protobuf] Remove ProviderHandshakeResponse.pulumi_version_range
[#&#8203;21438](https://redirect.github.com/pulumi/pulumi/pull/21438)

- \[sdk/nodejs] Allow dynamic providers to return inputs from read() for
accurate diffs after refresh
[#&#8203;21315](https://redirect.github.com/pulumi/pulumi/pull/21315)

-   \[sdk/nodejs] Add support for serializing async generators
[#&#8203;21410](https://redirect.github.com/pulumi/pulumi/pull/21410)

- \[sdk/python] Allow dynamic providers to return inputs from read() for
accurate diffs after refresh
[#&#8203;21315](https://redirect.github.com/pulumi/pulumi/pull/21315)

##### Bug Fixes

-   \[engine] Optimize StackReference performance
[#&#8203;21446](https://redirect.github.com/pulumi/pulumi/pull/21446)

-   \[cli/display] Fix message renderer on windows
[#&#8203;21401](https://redirect.github.com/pulumi/pulumi/pull/21401)

- \[sdk/nodejs] Fix RangeError in defaultErrorMessage when error objects
are large
[#&#8203;21409](https://redirect.github.com/pulumi/pulumi/pull/21409)

##### Miscellaneous

-   \[sdk/dotnet] Update dotnet to v3.97.0

###
[`v3.215.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32150-2026-01-07)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.214.1...v3.215.0)

##### Features

- \[cli/plugin] Allow plugins to specify a supported version range for
the CLI
[#&#8203;21335](https://redirect.github.com/pulumi/pulumi/pull/21335)

##### Bug Fixes

-   \[cli] Filter internal properties like \__defaults from diff display
[#&#8203;21359](https://redirect.github.com/pulumi/pulumi/pull/21359)

- \[cli/config] Make `config set --type bool` accept different spellings
of boolean values instead of only lowercase "true"
[#&#8203;21314](https://redirect.github.com/pulumi/pulumi/pull/21314)

- \[sdk/python] Fix import_resources with converter failing due to
--stack argument placement
[#&#8203;21373](https://redirect.github.com/pulumi/pulumi/pull/21373)

##### Miscellaneous

-   \[cli] Update pulumi-dotnet to 3.96.1

-   \[cli/package] Remove superfluous version string
[#&#8203;21351](https://redirect.github.com/pulumi/pulumi/pull/21351)

###
[`v3.214.1`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32141-2026-01-03)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.214.0...v3.214.1)

##### Bug Fixes

- \[cli/package] Preserve existing behavior when `pulumi package add` is
used with a local provider
[#&#8203;21350](https://redirect.github.com/pulumi/pulumi/pull/21350)

- \[pkg] Create namespace aliases to avoid Pulumi namespace collisions
during codegen
[#&#8203;21325](https://redirect.github.com/pulumi/pulumi/pull/21325)

###
[`v3.214.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32140-2025-12-30)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.213.0...v3.214.0)

##### Features

-   \[cli] Add --config and --config-path options to destroy and refresh
[#&#8203;21299](https://redirect.github.com/pulumi/pulumi/pull/21299)

- \[sdkgen] Add `OutputStyleOnly` flag to functions to not emit their
plain variants
[#&#8203;21198](https://redirect.github.com/pulumi/pulumi/pull/21198)

- \[sdk/python] Add support for `replacement_trigger` in the Python SDK
[#&#8203;20940](https://redirect.github.com/pulumi/pulumi/pull/20940)

##### Bug Fixes

- \[engine] Pass ignoreChanges when issuing no-diff updates that resolve
initErrors
[#&#8203;21319](https://redirect.github.com/pulumi/pulumi/pull/21319)

- \[programgen] Fix a bug in programgen binding to invokes from
parameterized packages
[#&#8203;21284](https://redirect.github.com/pulumi/pulumi/pull/21284)

- \[cli/plugin] Fix plugin download URL overrides for fallback mechanism
[#&#8203;21095](https://redirect.github.com/pulumi/pulumi/pull/21095)

##### Miscellaneous

-   \[pkg] Upgrade pulumi-java to 1.20.0

###
[`v3.213.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32130-2025-12-17)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.212.0...v3.213.0)

##### Bug Fixes

- \[sdkgen/go] Generate three-level nested builtin output types for Go
SDK
[#&#8203;21248](https://redirect.github.com/pulumi/pulumi/pull/21248)

##### Miscellaneous

-   \[pkg] Move plugin downloading from pkg into sdk
[#&#8203;21220](https://redirect.github.com/pulumi/pulumi/pull/21220)

</details>

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.21.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.21.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.20.0...v0.21.0)

##### Improvements

- Added support for `fn::split` built-in function to split strings into
arrays.
    [#&#8203;281](https://redirect.github.com/pulumi/esc/issues/281)
- Add native support for OIDC token exchange when logging into Pulumi
Cloud. Run `esc login --help` for more
information.
[#&#8203;607](https://redirect.github.com/pulumi/esc/pull/607)

##### Bug Fixes

##### Breaking changes

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-02-06 21:06:05 +00:00
pulumi-renovate[bot]
491f7de7d5 Update module github.com/pulumi/pulumi-go-provider to v1.3.0 (#748)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-go-provider](https://redirect.github.com/pulumi/pulumi-go-provider)
| require | minor | `v1.1.2` -> `v1.3.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi-go-provider
(github.com/pulumi/pulumi-go-provider)</summary>

###
[`v1.3.0`](https://redirect.github.com/pulumi/pulumi-go-provider/releases/tag/v1.3.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-go-provider/compare/v1.2.0...v1.3.0)

#### What's Changed

- Don't set a default value for `"displayName"` or `"namespace`" by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/452](https://redirect.github.com/pulumi/pulumi-go-provider/pull/452)
- Update module github.com/pulumi/pulumi/pkg/v3 to v3.217.0 by
[@&#8203;pulumi-renovate](https://redirect.github.com/pulumi-renovate)\[bot]
in[https://github.com/pulumi/pulumi-go-provider/pull/464](https://redirect.github.com/pulumi/pulumi-go-provider/pull/464)4

#### New Contributors

-
[@&#8203;pulumi-renovate](https://redirect.github.com/pulumi-renovate)\[bot]
made their first contribution
in[https://github.com/pulumi/pulumi-go-provider/pull/427](https://redirect.github.com/pulumi/pulumi-go-provider/pull/427)7
- [@&#8203;Frassle](https://redirect.github.com/Frassle) made their
first contribution in
[https://github.com/pulumi/pulumi-go-provider/pull/455](https://redirect.github.com/pulumi/pulumi-go-provider/pull/455)

**Full Changelog**:
https://github.com/pulumi/pulumi-go-provider/compare/v1.2.0...v1.3.0

###
[`v1.2.0`](https://redirect.github.com/pulumi/pulumi-go-provider/releases/tag/v1.2.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-go-provider/compare/v1.1.2...v1.2.0)

#### What's Changed

- Add old inputs to the rpc passthrough (and the provider in general) by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/414](https://redirect.github.com/pulumi/pulumi-go-provider/pull/414)
- Debug middleware/rpc by printing what the wrapped provider sees by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/415](https://redirect.github.com/pulumi/pulumi-go-provider/pull/415)
- `rpc.Provider` correctly handles wrapping providers without preview
support by [@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/416](https://redirect.github.com/pulumi/pulumi-go-provider/pull/416)
- Add an example of property comments for component resources by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/411](https://redirect.github.com/pulumi/pulumi-go-provider/pull/411)
- Use old inputs when calculating Diff for default infer by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/419](https://redirect.github.com/pulumi/pulumi-go-provider/pull/419)
- \[infer] Prevent deserialization errors with CustomDiff for Config by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/420](https://redirect.github.com/pulumi/pulumi-go-provider/pull/420)
- Fix `CustomDiff[*Config, *Config]` by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/421](https://redirect.github.com/pulumi/pulumi-go-provider/pull/421)
- Fix `GetSchema` by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/422](https://redirect.github.com/pulumi/pulumi-go-provider/pull/422)
- Correctly keep `DiffResponse`'s non-detailed diffs keys top-level by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/417](https://redirect.github.com/pulumi/pulumi-go-provider/pull/417)

#### New Contributors

- [@&#8203;andrzejressel](https://redirect.github.com/andrzejressel)
made their first contribution in
[https://github.com/pulumi/pulumi-go-provider/pull/418](https://redirect.github.com/pulumi/pulumi-go-provider/pull/418)

**Full Changelog**:
https://github.com/pulumi/pulumi-go-provider/compare/v1.1.2...v1.2.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2026-02-06 20:48:41 +00:00
pulumi-provider-automation[bot]
f5d459e624 Update GitHub Actions workflows. (#751)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 62def83b594d72ccf4eab97cdf5b566ebb910e83.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-03 05:54:15 +00:00
pulumi-provider-automation[bot]
d5e5c8a482 Update GitHub Actions workflows. (#750)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f51ba6a8731f22e9b3cf35393bf9c792097e4aa1.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-30 19:09:44 +00:00
pulumi-renovate[bot]
d0bb326600 Update module github.com/pulumi/providertest to v0.6.0 (#749)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/providertest](https://redirect.github.com/pulumi/providertest)
| require | minor | `v0.5.1-0.20251217173405-3861778549dd` -> `v0.6.0` |

---

### Release Notes

<details>
<summary>pulumi/providertest (github.com/pulumi/providertest)</summary>

###
[`v0.6.0`](https://redirect.github.com/pulumi/providertest/releases/tag/v0.6.0)

[Compare
Source](https://redirect.github.com/pulumi/providertest/compare/v0.5.1...v0.6.0)

##### What's Changed

- feat: Add local python SDK replacement option via pip by
[@&#8203;rshade](https://redirect.github.com/rshade) in
[https://github.com/pulumi/providertest/pull/150](https://redirect.github.com/pulumi/providertest/pull/150)

**Full Changelog**:
https://github.com/pulumi/providertest/compare/v0.5.1...v0.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-01-29 19:33:01 +00:00
pulumi-provider-automation[bot]
534bc6c172 Update GitHub Actions workflows. (#745)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 1131c4d395e39e42386bf9a4dfb975eb219d604b.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-29 05:54:00 +00:00
pulumi-provider-automation[bot]
570f83ca62 Update GitHub Actions workflows. (#743)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit a3bb44291e85389589513a73050a049a024bd800.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-28 05:43:20 +00:00
pulumi-provider-automation[bot]
b35af1d86d Update GitHub Actions workflows. (#742)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 5c1afa4cb1107d1ea52e86433fcd7d54b28925ab.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-26 16:00:41 +00:00
pulumi-provider-automation[bot]
62db1d7f3b Update GitHub Actions workflows. (#740)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit d825a77c6fb8405f61d1283d494a3a2c1cba3587.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-23 12:49:06 +00:00
pulumi-provider-automation[bot]
9b5a5d4371 Update GitHub Actions workflows. (#737)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 16d6357b115512b7bf916a73a75b78fa24fef858.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-16 05:39:51 +00:00
pulumi-provider-automation[bot]
8809a8c708 Update GitHub Actions workflows. (#735)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit dfe81431707efb057395e33fe5234f01031ecd95.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-15 05:40:12 +00:00
pulumi-provider-automation[bot]
cc1bda22e5 Update GitHub Actions workflows. (#734)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 329ced61750d1b5d3027894c5e0c79ac08f71378.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-13 05:38:49 +00:00
pulumi-provider-automation[bot]
f820f6547c Update GitHub Actions workflows. (#733)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ea67003b42b286f2a9d25c2a5e878fc1aacf5c94.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-01-10 05:38:03 +00:00
pulumi-provider-automation[bot]
214793b929 Update GitHub Actions workflows. (#730)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 4cdb4b8cad405d730db594e8adb73ee1b875b4a6.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-30 05:45:22 +00:00
pulumi-provider-automation[bot]
9e8c685bc8 Update GitHub Actions workflows. (#728)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit 021a1f6c9360e1b569457868b4c0c3ecbfc62ff4.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-23 19:01:30 +00:00
pulumi-provider-automation[bot]
09f7b32602 Update GitHub Actions workflows. (#727)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 6693889d5ebbe0416302e06ac701da21580fbd2d.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-23 15:40:07 +00:00
pulumi-provider-automation[bot]
1e00e5dc89 Update GitHub Actions workflows. (#724)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 90795a3949f95304f4bd3a9dea2ace1ca3465403.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-23 05:44:49 +00:00
pulumi-provider-automation[bot]
93fae0c1a4 Update GitHub Actions workflows. (#723)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 1901fce160a37d0c537d831ce6f96e72bf7c9427.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-20 05:44:19 +00:00
pulumi-provider-automation[bot]
4c85816954 Update GitHub Actions workflows. (#721)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 217fd547b64df90c7919b206f17362d4baec9aa3.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-19 20:07:45 +00:00
pulumi-provider-automation[bot]
4e3830ca83 Update GitHub Actions workflows. (#720)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 0b04a21b810fd7b4a412c1f42867a70f65c14758.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-19 05:44:14 +00:00
pulumi-provider-automation[bot]
3f329778cf Update GitHub Actions workflows. (#718)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f0ec8c55b928cc870e533b367aaba1f9af2330ad.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2025-12-18 05:44:56 +00:00
pulumi-provider-automation[bot]
c64d5baba6 Update GitHub Actions workflows. (#716)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 02f02bb0bfe879d167ed8f335b4950208454bafb.

---------

Co-authored-by: Pulumi Bot <bot@pulumi.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2025-12-17 18:20:54 +00:00
pulumi-renovate[bot]
4c8968185c Update dependency @pulumi/pulumi to v3.212.0 (#710)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.211.0` ->
`3.212.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.211.0/3.212.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.212.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.212.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.211.0...v3.212.0)

##### 3.212.0 (2025-12-12)

##### Bug Fixes

-   \[yaml] Update pulumi-yaml to v1.26.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-12-12 22:13:17 +00:00
pulumi-renovate[bot]
7a75efe8c4 Update dependency @pulumi/pulumi to v3.211.0 (#708)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.210.0` ->
`3.211.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.210.0/3.211.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.211.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.211.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.210.0...v3.211.0)

#### 3.211.0 (2025-12-11)

##### Features

- \[cli/about] Print Node.js package manager information in `pulumi
about`
[#&#8203;21163](https://redirect.github.com/pulumi/pulumi/pull/21163)

- \[backend/diy] Add stack tags support for DIY backends (S3, Postgres,
file-based, etc.).

DIY backends now support stack tags functionality, bringing feature
parity with cloud backends.
This includes:

-   Full CRUD operations for stack tags (create, read, update, delete)
-   Automatic system tag injection (e.g., `pulumi:project`)
-   Tag filtering support in stack listing operations
-   Backward compatibility with existing stacks (no tags file required)
-   Atomic operations with caching for performance
-   Automatic cleanup of tag files when stacks are deleted

Tags are stored as separate `.pulumi-tags` files alongside stack
checkpoints, using a versioned
JSON format. The implementation works across all DIY backend storage
types including S3, Azure Blob,
Google Cloud Storage, PostgreSQL, and local file systems.

Example usage:

```bash
pulumi stack tag set environment production
pulumi stack tag set owner backend-team
pulumi stack ls --tag-filter environment=production
```

[#&#8203;19882](https://redirect.github.com/pulumi/pulumi/pull/19882)

- \[backend/service] Improve startup performance with the service as
backend
[#&#8203;21176](https://redirect.github.com/pulumi/pulumi/pull/21176)

- \[sdk/nodejs] Add support for `replacement_trigger` in the NodeJS SDK
[#&#8203;20939](https://redirect.github.com/pulumi/pulumi/pull/20939)

-   \[sdk/python] Allow setting version for python component providers
[#&#8203;21149](https://redirect.github.com/pulumi/pulumi/pull/21149)

##### Bug Fixes

- \[cli/package] Correctly identify the innermost Project/Plugin when
running `pulumi package add`
[#&#8203;21137](https://redirect.github.com/pulumi/pulumi/pull/21137)

- \[engine] Allow referencing multiple git/github/gitlab components from
the same repo
[#&#8203;21119](https://redirect.github.com/pulumi/pulumi/pull/21119)

- \[programgen/go] Account for name conflicts in resource creation
functions
[#&#8203;21107](https://redirect.github.com/pulumi/pulumi/pull/21107)

- \[sdk/python] Fix cancellation handling in a few places in the python
language host
[#&#8203;21145](https://redirect.github.com/pulumi/pulumi/pull/21145)

- \[sdkgen/go] Fix generation of lifted single-value calls in
parameterized SDKs
[#&#8203;21115](https://redirect.github.com/pulumi/pulumi/pull/21115)

##### Miscellaneous

- \[cli] Don't attempt to re-install plugin dependencies on load failure
for plugins based on git with a nested path
[#&#8203;21148](https://redirect.github.com/pulumi/pulumi/pull/21148)

- \[sdk/{dotnet,java,yaml}] Bump language runtimes for dotnet, java, and
yaml
[#&#8203;21201](https://redirect.github.com/pulumi/pulumi/pull/21201)

-   \[cli/engine] Add language runtime metadata to update metadata
[#&#8203;21186](https://redirect.github.com/pulumi/pulumi/pull/21186)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-12-12 05:11:26 +00:00
pulumi-renovate[bot]
16f3939ae0 Update dependency @pulumi/pulumi to v3.210.0 (#694)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.209.0` ->
`3.210.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.209.0/3.210.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.210.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.210.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.209.0...v3.210.0)

#### 3.210.0 (2025-12-03)

##### Features

-   \[cli/about] Print python toolchain information in `pulumi about`

-   \[sdk/java] Update java to v1.18

- \[components/nodejs] Local components will use the version from
package.json rather than 0.0.0
[#&#8203;21100](https://redirect.github.com/pulumi/pulumi/pull/21100)

- \[cli/package] Add `pulumi package delete` command to delete package
versions from the Pulumi Registry
[#&#8203;21069](https://redirect.github.com/pulumi/pulumi/pull/21069)

- \[cli/package] Always print the schema first in `package get-schema`,
then print any binding errors
[#&#8203;21080](https://redirect.github.com/pulumi/pulumi/pull/21080)

-   \[sdk/python] Require `grpcio>=1.75.1` on Python 3.14
[#&#8203;21113](https://redirect.github.com/pulumi/pulumi/pull/21113)

##### Bug Fixes

- \[sdk/nodejs] Fix ComponentResources transfering input arguments to
output properties automatically
[#&#8203;21094](https://redirect.github.com/pulumi/pulumi/pull/21094)

##### Miscellaneous

- \[sdk/nodejs] Remove
[@&#8203;types/uuid](https://redirect.github.com/types/uuid) type
declarations dev dependency
[#&#8203;21077](https://redirect.github.com/pulumi/pulumi/pull/21077)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-12-03 21:28:06 +00:00
pulumi-renovate[bot]
31065543d9 Update dependency @pulumi/pulumi to v3.209.0 (#682)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.208.0` ->
`3.209.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.208.0/3.209.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.209.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.209.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.208.0...v3.209.0)

##### 3.209.0 (2025-11-26)

##### Features

- \[cli] Add native support for OIDC token exchange when logging into
Pulumi Cloud. Run `pulumi login --help` for more information.
[#&#8203;20974](https://redirect.github.com/pulumi/pulumi/pull/20974)

-   \[sdk/python] Allow older grpcio and protobuf dependencies
[#&#8203;21007](https://redirect.github.com/pulumi/pulumi/pull/21007)

- \[sdkgen/{dotnet,go,nodejs,python}] Generate .gitignore and
.gitattributes files for generated SDKs
[#&#8203;21034](https://redirect.github.com/pulumi/pulumi/pull/21034)

##### Bug Fixes

- \[cli/install] Correctly install non-standard plugins.
See[https://github.com/pulumi/pulumi/issues/20953](https://redirect.github.com/pulumi/pulumi/issues/20953)3
for more information
[#&#8203;20983](https://redirect.github.com/pulumi/pulumi/pull/20983)

- \[cli/new] Create pyproject.toml for uv and poetry projects when using
--generate-only
[#&#8203;20979](https://redirect.github.com/pulumi/pulumi/pull/20979)

-   \[sdk/nodejs] Fix serialization errors due to SxS copies of the SDK
[#&#8203;21029](https://redirect.github.com/pulumi/pulumi/pull/21029)

-   \[sdk/python] Add `PropertyValue` runtime validation checks
[#&#8203;21058](https://redirect.github.com/pulumi/pulumi/pull/21058)

##### Miscellaneous

- \[engine] Don't send root directory and runtime options to language
plugins as command line arguments
[#&#8203;21054](https://redirect.github.com/pulumi/pulumi/pull/21054)

- \[sdk/{dotnet,java,yaml}] Bump language runtimes for yaml, dotnet and
java

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-11-26 16:17:55 +00:00
pulumi-renovate[bot]
68d5f3a0cb Update first-party Pulumi dependencies (#677)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [pulumi/esc-action](https://redirect.github.com/pulumi/esc-action) |
action | minor | `v1.4.0` -> `v1.5.0` |
|
[pulumi/provider-version-action](https://redirect.github.com/pulumi/provider-version-action)
| action | patch | `v1.6.0` -> `v1.6.1` |

---

### Release Notes

<details>
<summary>pulumi/esc-action (pulumi/esc-action)</summary>

###
[`v1.5.0`](https://redirect.github.com/pulumi/esc-action/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/pulumi/esc-action/compare/v1.4.0...v1.5.0)

- Fix line parsing when "=" is present
[https://github.com/pulumi/esc-action/pull/30](https://redirect.github.com/pulumi/esc-action/pull/30)

</details>

<details>
<summary>pulumi/provider-version-action
(pulumi/provider-version-action)</summary>

###
[`v1.6.1`](https://redirect.github.com/pulumi/provider-version-action/releases/tag/v1.6.1)

[Compare
Source](https://redirect.github.com/pulumi/provider-version-action/compare/v1.6.0...v1.6.1)

#### What's Changed

- Automate floating tag updates and document release process by
[@&#8203;EronWright](https://redirect.github.com/EronWright) in
[https://github.com/pulumi/provider-version-action/pull/17](https://redirect.github.com/pulumi/provider-version-action/pull/17)
- Update dependencies for v1.6.1 by
[@&#8203;EronWright](https://redirect.github.com/EronWright) in
[https://github.com/pulumi/provider-version-action/pull/18](https://redirect.github.com/pulumi/provider-version-action/pull/18)

#### New Contributors

- [@&#8203;EronWright](https://redirect.github.com/EronWright) made
their first contribution in
[https://github.com/pulumi/provider-version-action/pull/17](https://redirect.github.com/pulumi/provider-version-action/pull/17)

**Full Changelog**:
https://github.com/pulumi/provider-version-action/compare/v1...v1.6.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-11-26 01:13:49 +00:00
Pulumi Bot
98fc73df74 Update GitHub Actions workflows. (#676)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ad6b9bc68e26fd3eeb270fe212ab46888a1580e3.
2025-11-22 05:45:33 +00:00
pulumi-renovate[bot]
2bf4175cae Update pulumi/esc-action action to v1.5.0 (#674)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [pulumi/esc-action](https://redirect.github.com/pulumi/esc-action) |
action | minor | `v1.4.0` -> `v1.5.0` |

---

### Release Notes

<details>
<summary>pulumi/esc-action (pulumi/esc-action)</summary>

###
[`v1.5.0`](https://redirect.github.com/pulumi/esc-action/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/pulumi/esc-action/compare/v1.4.0...v1.5.0)

- Fix line parsing when "=" is present
[https://github.com/pulumi/esc-action/pull/30](https://redirect.github.com/pulumi/esc-action/pull/30)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2025-11-21 06:06:38 +00:00
Pulumi Bot
345f4699a8 Update GitHub Actions workflows. (#673)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 8419353a43302449e0cd6d525c08e2d9f4479dd8.
2025-11-21 05:56:36 +00:00
pulumi-renovate[bot]
d5d676f8ec Update first-party Pulumi dependencies (#558)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.184.0` ->
`3.208.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.184.0/3.208.0)
|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.17.0` -> `v0.20.0` |
| [pulumi/esc-action](https://redirect.github.com/pulumi/esc-action) |
action | minor | `v1.4.0` -> `v1.5.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.208.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.208.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.207.0...v3.208.0)

#### 3.208.0 (2025-11-20)

##### Features

- \[cli] Expose all command flags as env vars (e.g. --refresh can now be
set with PULUMI_OPTION_REFRESH)
[#&#8203;20868](https://redirect.github.com/pulumi/pulumi/pull/20868)

-   \[cli/install] Make `pulumi install` recurse into local packages
[#&#8203;20945](https://redirect.github.com/pulumi/pulumi/pull/20945)

- \[engine] Add a `replacement_trigger` resource option. Any change to
this value between program runs will trigger a replace of the resource
[#&#8203;20936](https://redirect.github.com/pulumi/pulumi/pull/20936)

- \[engine] Add a new builtin `Stash` resource which can be used to save
a value to state
[#&#8203;20819](https://redirect.github.com/pulumi/pulumi/pull/20819)

-   \[protobuf] Add `Language.Template` RPC to protos
[#&#8203;20948](https://redirect.github.com/pulumi/pulumi/pull/20948)

-   \[sdk/go] Add support for `replacement_trigger` in the Go SDK
[#&#8203;20937](https://redirect.github.com/pulumi/pulumi/pull/20937)

##### Bug Fixes

- \[engine] Fix duplicate resource snapshot integrity issue with aliases
[#&#8203;20926](https://redirect.github.com/pulumi/pulumi/pull/20926)

- \[engine] Allow resources marked as `Delete` to be targeted, and take
them into account for dependency calculation
[#&#8203;20962](https://redirect.github.com/pulumi/pulumi/pull/20962)

- \[engine] Fix a panic when previewing and import of a resource that
wants to delete and then replace due to diffs
[#&#8203;20997](https://redirect.github.com/pulumi/pulumi/pull/20997)

-   \[pkg] Include invalid property names in bind errors
[#&#8203;20989](https://redirect.github.com/pulumi/pulumi/pull/20989)

- \[sdk/python] Don’t raise when looking up a stack reference output
that does not exist
[#&#8203;20938](https://redirect.github.com/pulumi/pulumi/pull/20938)

- \[sdkgen/python] Ensure resource args accept typeddicts when no
language info is specified
[#&#8203;20982](https://redirect.github.com/pulumi/pulumi/pull/20982)

##### Miscellaneous

- \[cli] Document the \[template|url] argument in `pulumi up` command
help text
[#&#8203;20996](https://redirect.github.com/pulumi/pulumi/pull/20996)

###
[`v3.207.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32070-2025-11-12)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.206.0...v3.207.0)

##### Features

- \[cli] Log gRPC requests before invoking them in gRPC debug
interceptor
[#&#8203;20817](https://redirect.github.com/pulumi/pulumi/pull/20817)

- \[engine] Add `ReplaceWith` resource option to allow one resource's
replace operations to trigger another's
[#&#8203;20693](https://redirect.github.com/pulumi/pulumi/pull/20693)

-   \[sdkgen/python] Allow all PEP440 version specifiers to be used

##### Bug Fixes

-   \[cli/import] Return errors when an import fails
[#&#8203;20904](https://redirect.github.com/pulumi/pulumi/pull/20904)

- \[engine] Fix parenting of resources in some cases in `refresh
--run-program`
[#&#8203;20894](https://redirect.github.com/pulumi/pulumi/pull/20894)

-   \[engine] Fix StackReference secrets performance
[#&#8203;20908](https://redirect.github.com/pulumi/pulumi/pull/20908)

-   \[programgen] Do not panic when re-writing type-invalid PCL
[#&#8203;20770](https://redirect.github.com/pulumi/pulumi/pull/20770)

- \[sdk/go] Fix import path in instructions when linking a package in Go
[#&#8203;20888](https://redirect.github.com/pulumi/pulumi/pull/20888)

-   \[sdk/nodejs] Fix closure serialization on Node.js v25.2.0
[#&#8203;20913](https://redirect.github.com/pulumi/pulumi/pull/20913)

- \[sdk/{nodejs,python}] Avoid cancellations due to do slow processing
of requests

- \[sdk/python] Avoid cancellations due to do slow processing of
requests in the callbacks server
[#&#8203;20917](https://redirect.github.com/pulumi/pulumi/pull/20917)

##### Miscellaneous

-   \[engine] Stop sending ConfigPropertyMap as part of RunRequest
[#&#8203;20887](https://redirect.github.com/pulumi/pulumi/pull/20887)

###
[`v3.206.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32060-2025-11-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.205.0...v3.206.0)

##### Features

- \[protobuf] Pass a `preview` flag to invokes so they can tell if
they're being called during a preview
[#&#8203;20827](https://redirect.github.com/pulumi/pulumi/pull/20827)

- \[cli/about] Include PULUMI_\* environment variables in the `pulumi
about` output
[#&#8203;20855](https://redirect.github.com/pulumi/pulumi/pull/20855)

- \[auto/go] Get event log over gRPC instead of trying to read it from a
text file
[#&#8203;20822](https://redirect.github.com/pulumi/pulumi/pull/20822)

- \[auto/nodejs] Get event log over gRPC instead of trying to read it
from a text file
[#&#8203;20824](https://redirect.github.com/pulumi/pulumi/pull/20824)

- \[auto/python] Get event log over gRPC instead of trying to read it
from a text file
[#&#8203;20833](https://redirect.github.com/pulumi/pulumi/pull/20833)

- \[cli/engine] Add environment variable to add --refresh to
preview,update,destroy
[#&#8203;20797](https://redirect.github.com/pulumi/pulumi/pull/20797)

- \[sdk/nodejs] Add PULUMI_NODEJS_SKIP_COMPONENT_INPUTS environment
variable to skip the new feature of sending component inputs to the
engine for diffing and state storage
[#&#8203;20842](https://redirect.github.com/pulumi/pulumi/pull/20842)

##### Bug Fixes

- \[engine] Fix duplicate resource snapshot integrity issue, when
running `pulumi up --refresh --run-program` and when a resource
`PendingReplacement` exists in the snapshot
[#&#8203;20812](https://redirect.github.com/pulumi/pulumi/pull/20812)

- \[engine] Support floating point NaN and Inf values in resource state
[#&#8203;20843](https://redirect.github.com/pulumi/pulumi/pull/20843)

##### Miscellaneous

-   \[sdk/go] Use Language.Link to link Go packages
[#&#8203;20811](https://redirect.github.com/pulumi/pulumi/pull/20811)

###
[`v3.205.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32050-2025-10-28)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.204.0...v3.205.0)

##### Bug Fixes

- \[cli/display] Improve how the severity is displayed for policy
violations
[#&#8203;20805](https://redirect.github.com/pulumi/pulumi/pull/20805)

- \[engine] Fix an issue where `refresh --run-program` could potentially
run forever
[#&#8203;20781](https://redirect.github.com/pulumi/pulumi/pull/20781)

###
[`v3.204.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32040-2025-10-23)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.203.0...v3.204.0)

##### Features

- \[cli] Print replace diffs when a resource tries to replace but is
blocked by still having an import id set
[#&#8203;20762](https://redirect.github.com/pulumi/pulumi/pull/20762)

-   \[engine] Support overriding policy severity on violations
[#&#8203;20767](https://redirect.github.com/pulumi/pulumi/pull/20767)

- \[backend/service] Send journal entries to the backend if it's
supported
[#&#8203;20343](https://redirect.github.com/pulumi/pulumi/pull/20343)

##### Bug Fixes

- \[engine] Fix a potential snapshot integrity error when a resources
dependency fails to be destroyed using `destroy --run-program`
[#&#8203;20692](https://redirect.github.com/pulumi/pulumi/pull/20692)

- \[engine] Fix import error to contain the import ID of non-existent
resources
[#&#8203;20753](https://redirect.github.com/pulumi/pulumi/pull/20753)

- \[sdk/nodejs] Pass secret values as Output objects to resource hooks
to properly maintain their secretness. Previously hooks received an
internal representation for secret values.
[#&#8203;20774](https://redirect.github.com/pulumi/pulumi/pull/20774)

- \[sdk/python] Pass secret values as Output objects to resource hooks
to properly maintain their secretness. Previously hooks received an
internal representation for secret values.
[#&#8203;20769](https://redirect.github.com/pulumi/pulumi/pull/20769)

-   \[sdkgen/go] Fix codegen of scalar return SDK functions
[#&#8203;20754](https://redirect.github.com/pulumi/pulumi/pull/20754)

- \[sdkgen/{nodejs,python}] Fix scalar return protocol to allow
returning secret maps
[#&#8203;20747](https://redirect.github.com/pulumi/pulumi/pull/20747)

##### Miscellaneous

-   \[sdk/nodejs] Use Language.Link to link Node.js packages
[#&#8203;20715](https://redirect.github.com/pulumi/pulumi/pull/20715)

###
[`v3.203.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32030-2025-10-15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.202.0...v3.203.0)

##### Features

-   \[cli/display] Display policy severity for violations
[#&#8203;20746](https://redirect.github.com/pulumi/pulumi/pull/20746)

-   \[cli/package] Show functions in `package info`
[#&#8203;20733](https://redirect.github.com/pulumi/pulumi/pull/20733)

##### Bug Fixes

- \[engine] Make sure errors from the journaler are not shown to the
user
[#&#8203;20740](https://redirect.github.com/pulumi/pulumi/pull/20740)

-   \[backend/diy] Fix casing of stack/latest when importing stacks
[#&#8203;20727](https://redirect.github.com/pulumi/pulumi/pull/20727)

- \[cli/package] Fix 'required' flag for resource inputs in `package
info`
[#&#8203;20731](https://redirect.github.com/pulumi/pulumi/pull/20731)

- \[programgen] Revert
[#&#8203;20345](https://redirect.github.com/pulumi/pulumi/issues/20345)
[#&#8203;20714](https://redirect.github.com/pulumi/pulumi/pull/20714)

- \[programgen/{dotnet,nodejs}] Propagate local dependencies for
parameterized packages during convert down to GenerateProject
[#&#8203;20706](https://redirect.github.com/pulumi/pulumi/pull/20706)

- \[sdkgen/python] Fix python invokes for functions returning map types
[#&#8203;20719](https://redirect.github.com/pulumi/pulumi/pull/20719)

##### Miscellaneous

-   \[sdk/python] Use Language.Link to link python packages
[#&#8203;20612](https://redirect.github.com/pulumi/pulumi/pull/20612)

###
[`v3.202.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32020-2025-10-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.201.0...v3.202.0)

##### Features

-   \[auto] Add SetAllConfigJson method to automation APIs
[#&#8203;20709](https://redirect.github.com/pulumi/pulumi/pull/20709)

-   \[cli/config] Add `--json` input support to `pulumi config set-all`
[#&#8203;19427](https://redirect.github.com/pulumi/pulumi/pull/19427)

-   \[cli/display] Add error summary at the end of Resource changes
[#&#8203;20658](https://redirect.github.com/pulumi/pulumi/pull/20658)

- \[components/{go,nodejs}] Send component inputs to be saved in state.
This brings NodeJS and Go inline with Python behaviour
[#&#8203;20357](https://redirect.github.com/pulumi/pulumi/pull/20357)

-   \[sdk/python] Add support for Python 3.14
[#&#8203;20433](https://redirect.github.com/pulumi/pulumi/pull/20433)

-   \[sdk/python] Add the `hide_diffs` resource option
[#&#8203;20655](https://redirect.github.com/pulumi/pulumi/pull/20655)

##### Bug Fixes

- \[engine] Fix assert when a resource that's not targeted on a destroy
is marked as Delete
[#&#8203;20684](https://redirect.github.com/pulumi/pulumi/pull/20684)

-   \[sdk/nodejs] Allow compiled local SDKs to be parameterized
[#&#8203;20685](https://redirect.github.com/pulumi/pulumi/pull/20685)

- \[sdk/nodejs] Handle RangeErrors from util.inspect stringifying error
objects
[#&#8203;20705](https://redirect.github.com/pulumi/pulumi/pull/20705)

###
[`v3.201.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32010-2025-10-06)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.200.0...v3.201.0)

##### Features

-   \[sdkgen/go] Support non-object return types in functions
[#&#8203;20646](https://redirect.github.com/pulumi/pulumi/pull/20646)

##### Bug Fixes

-   \[backend/service] Fix the --insecure flag in `pulumi login`

###
[`v3.200.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32000-2025-10-03)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.199.0...v3.200.0)

##### Features

- \[cli] Look for .cmd and .ps1 extensions as well on Windows when
looking for executables
[#&#8203;20637](https://redirect.github.com/pulumi/pulumi/pull/20637)

-   \[sdk/go] Add a new resource option: `HideDiffs`
[#&#8203;20631](https://redirect.github.com/pulumi/pulumi/pull/20631)

-   \[sdk/nodejs] Add a new resource option: `hideDiffs`
[#&#8203;20631](https://redirect.github.com/pulumi/pulumi/pull/20631)

-   \[sdkgen/python] Support non-object return types in functions
[#&#8203;20624](https://redirect.github.com/pulumi/pulumi/pull/20624)

##### Bug Fixes

-   \[build] Use ruff to auto fix lints in python
[#&#8203;20644](https://redirect.github.com/pulumi/pulumi/pull/20644)

-   \[sdk/nodejs] Make new arguments to `initialize` optional
[#&#8203;20650](https://redirect.github.com/pulumi/pulumi/pull/20650)

-   \[sdkgen/nodejs] Generate a .gitignore file inside local SDKs
[#&#8203;20643](https://redirect.github.com/pulumi/pulumi/pull/20643)

- \[cli/state] Treat providers that are marked as parents in a move as
providers still instead of as regular resources
[#&#8203;20639](https://redirect.github.com/pulumi/pulumi/pull/20639)

- \[cli/state] Exclude root stack correctly when moving resources and
when --include-parents is passed

###
[`v3.199.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31990-2025-10-01)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.198.0...v3.199.0)

##### Features

-   \[cli/about] Add `pulumi about env` to help
[#&#8203;20633](https://redirect.github.com/pulumi/pulumi/pull/20633)

- \[cli/{about,new}] Add environment variables to override template
repository settings. The new PULUMI_TEMPLATE_GIT_REPOSITORY,
PULUMI_TEMPLATE_BRANCH, PULUMI_POLICY_TEMPLATE_GIT_REPOSITORY, and
PULUMI_POLICY_TEMPLATE_BRANCH environment variables allow runtime
customization of template sources
[#&#8203;20615](https://redirect.github.com/pulumi/pulumi/pull/20615)

- \[cli/{install,package}] Add support for package references in plugins
[#&#8203;20524](https://redirect.github.com/pulumi/pulumi/pull/20524)

- \[sdk/nodejs] Pass options, name, and type to ComponentResources
initialize methods
[#&#8203;20618](https://redirect.github.com/pulumi/pulumi/pull/20618)

-   \[cli/policy] Send vcs metadata when publishing policy packs
[#&#8203;20528](https://redirect.github.com/pulumi/pulumi/pull/20528)

##### Bug Fixes

-   \[cli/display] Always send diag events to stderr in the diff display
[#&#8203;20632](https://redirect.github.com/pulumi/pulumi/pull/20632)

-   \[components] Stop including auth info in plugin name
[#&#8203;20620](https://redirect.github.com/pulumi/pulumi/pull/20620)

-   \[engine] Support the import option in resource transforms
[#&#8203;20586](https://redirect.github.com/pulumi/pulumi/pull/20586)

- \[programgen] Fix panic in parseProxyApply when encoutering warning
diagnostics
[#&#8203;20583](https://redirect.github.com/pulumi/pulumi/pull/20583)

- \[sdk/nodejs] Don't attempt to serialise function values for resource
inputs/outputs
[#&#8203;20621](https://redirect.github.com/pulumi/pulumi/pull/20621)

###
[`v3.198.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31980-2025-09-26)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.197.0...v3.198.0)

##### Features

-   \[engine] Expand snapshot integrity check for resources
[#&#8203;20519](https://redirect.github.com/pulumi/pulumi/pull/20519)

- \[sdk/go] Refactor Go policy SDK to have access to a pulumi Context
object
[#&#8203;20570](https://redirect.github.com/pulumi/pulumi/pull/20570)

- \[sdk/python] Allow registered resources to be retrieved from the mock
monitor for test assertions
[#&#8203;20540](https://redirect.github.com/pulumi/pulumi/pull/20540)

##### Bug Fixes

- \[engine] Fix snapshot integrity error with `run-program --refresh`,
when a provider has a dependency that isn't being created
[#&#8203;20541](https://redirect.github.com/pulumi/pulumi/pull/20541)

-   \[engine] Remove unneeded data from policy summary events
[#&#8203;20589](https://redirect.github.com/pulumi/pulumi/pull/20589)

-   \[sdk] Fix plugin killing during cancellation
[#&#8203;20543](https://redirect.github.com/pulumi/pulumi/pull/20543)

-   \[sdk/go] Fix \[Unm/M]arshalProperties to return nil when given nil
[#&#8203;20544](https://redirect.github.com/pulumi/pulumi/pull/20544)

##### Miscellaneous

-   \[protobuf] Add loader_target to LanguageRuntime.LinkRequest
[#&#8203;20552](https://redirect.github.com/pulumi/pulumi/pull/20552)

- \[cli/package] Move InstallPackage from cmd/packagecmd to cmd/packages
[#&#8203;20550](https://redirect.github.com/pulumi/pulumi/pull/20550)

-   \[cli/package] Move stdout/stderr IO out of GenSDK and LinkPackage
[#&#8203;20546](https://redirect.github.com/pulumi/pulumi/pull/20546)

-   \[sdk] Move PluginSpec.Install to pkg/workspace.InstallPluginContent
[#&#8203;20537](https://redirect.github.com/pulumi/pulumi/pull/20537)

-   \[sdk/yaml] Bump pulumi-yaml to 1.23.2
[#&#8203;20588](https://redirect.github.com/pulumi/pulumi/pull/20588)

###
[`v3.197.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31970-2025-09-17)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.196.0...v3.197.0)

##### Features

-   \[cli] Send new policy fields when publishing a policy pack

-   \[sdk/dotnet] Update dotnet to v3.88
[#&#8203;20512](https://redirect.github.com/pulumi/pulumi/pull/20512)

##### Bug Fixes

- \[engine] Fix a panic in preview, that could happen in some cases when
default providers get updated
[#&#8203;20511](https://redirect.github.com/pulumi/pulumi/pull/20511)

-   \[components/python] Fix parenting of python components
[#&#8203;20508](https://redirect.github.com/pulumi/pulumi/pull/20508)

- \[sdk/python] Fix hang when shutting down in certain error conditions
[#&#8203;20484](https://redirect.github.com/pulumi/pulumi/pull/20484)

-   \[sdk/python] Fix license-files entry for python package
[#&#8203;20506](https://redirect.github.com/pulumi/pulumi/pull/20506)

###
[`v3.196.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31960-2025-09-12)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.195.0...v3.196.0)

##### Miscellaneous

-   \[sdk] Add policy summary events apitypes
[#&#8203;20443](https://redirect.github.com/pulumi/pulumi/pull/20443)

-   \[sdk] Add new policy fields apitypes
[#&#8203;20491](https://redirect.github.com/pulumi/pulumi/pull/20491)

-   \[protobuf] Add support for indicating "not applicable" policies
[#&#8203;20492](https://redirect.github.com/pulumi/pulumi/pull/20492)

-   \[protobuf] Add new analyzer policy fields
[#&#8203;20494](https://redirect.github.com/pulumi/pulumi/pull/20494)

###
[`v3.195.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31950-2025-09-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.194.0...v3.195.0)

##### Features

- \[engine] Add support for capturing program stack traces as part of
resource registration
[#&#8203;20430](https://redirect.github.com/pulumi/pulumi/pull/20430)

- \[sdk/go] Registered resources can now be retrieved from the mock
monitor for test assertions
[#&#8203;20472](https://redirect.github.com/pulumi/pulumi/pull/20472)

- \[sdk/go] The current exports map is now available for unit testing
through `GetCurrentExportMap`
[#&#8203;20471](https://redirect.github.com/pulumi/pulumi/pull/20471)

##### Bug Fixes

- \[pkg/go] Fix an issue where v3.194.0 of the
`github.com/pulumi/pulumi/pkg/v3` module depends on APIs from
`github.com/pulumi/pulumi/sdk/v3` that haven't been released
[#&#8203;20487](https://redirect.github.com/pulumi/pulumi/issues/20487)

###
[`v3.194.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31940-2025-09-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.193.0...v3.194.0)

##### Features

-   \[cli] Log diagnostics to stderr instead of stdout
[#&#8203;20461](https://redirect.github.com/pulumi/pulumi/pull/20461)

- \[cli/display] Change the default for --show-full-output from true to
false
[#&#8203;20467](https://redirect.github.com/pulumi/pulumi/pull/20467)

-   \[cli/display] Fix the --show-full-output the flag
[#&#8203;20464](https://redirect.github.com/pulumi/pulumi/pull/20464)

-   \[sdk/go] Show a message that the Go program is being compiled
[#&#8203;20460](https://redirect.github.com/pulumi/pulumi/pull/20460)

##### Bug Fixes

-   \[engine] Make ignoreChanges work better for arrays
[#&#8203;20465](https://redirect.github.com/pulumi/pulumi/pull/20465)

- \[programgen] Fix panic in RewriteApplies when encountering warning
diagnostics
[#&#8203;20453](https://redirect.github.com/pulumi/pulumi/pull/20453)

##### Miscellaneous

- \[cli] No longer require the `PULUMI_EXPERIMENTAL` flag for Private
Registry template operations (`pulumi template publish`, registry-based
template resolution in `pulumi new`), while registry-backed template
resolution in `pulumi new` may still be disabled using
`PULUMI_DISABLE_REGISTRY_RESOLVE=true pulumi new`
[#&#8203;20458](https://redirect.github.com/pulumi/pulumi/pull/20458)

-   \[sdk/yaml] Bump pulumi-yaml to 1.23.1

###
[`v3.193.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31930-2025-09-04)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.192.0...v3.193.0)

##### Bug Fixes

- \[cli] Use "Private Registry", not cloud or Pulumi registry, in CLI
output
[#&#8203;20436](https://redirect.github.com/pulumi/pulumi/pull/20436)

- \[cli/display] Avoid printing a double new line when showing secrets
in the outputs
[#&#8203;20435](https://redirect.github.com/pulumi/pulumi/pull/20435)

-   \[cli/display] Fix coloring of cobra error messages on windows

- \[cli/{install,package}] Fix local package resolution when
PULUMI_EXPERIMENTAL=true by including local packages in registry
fallback logic
[#&#8203;20413](https://redirect.github.com/pulumi/pulumi/pull/20413)

- \[cli/new] Fail when running with --language without --ai in
non-interactive mode
[#&#8203;20415](https://redirect.github.com/pulumi/pulumi/pull/20415)

- \[cli/package] Fix not using already-installed package in 'pulumi
package add' when PULUMI_EXPERIMENTAL=1

##### Miscellaneous

-   \[cli] Start the pprof server when receving SIGUSR1
[#&#8203;20392](https://redirect.github.com/pulumi/pulumi/pull/20392)

-   \[cli/display] Replace ijc/Gotty terminfo package with xo/terminfo
[#&#8203;20446](https://redirect.github.com/pulumi/pulumi/pull/20446)

- \[cli/display] Use the passed through writer in ShowProgressOutput
instead of loading a new terminfo

###
[`v3.192.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31920-2025-08-29)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.191.0...v3.192.0)

##### Features

- \[cli/state] Add pulumi state taint/untaint commands to force
replacement of resources upon next update
[#&#8203;20380](https://redirect.github.com/pulumi/pulumi/pull/20380)

- \[sdk/nodejs] Add `previewDestroy` to allow dry-runs of `destroy`
commands
[#&#8203;20371](https://redirect.github.com/pulumi/pulumi/pull/20371)

##### Bug Fixes

- \[engine] Fix a bug causing hooks to never pass correctly to remote Go
components
[#&#8203;20390](https://redirect.github.com/pulumi/pulumi/pull/20390)

-   \[sdk/go] Fix source position information
[#&#8203;20351](https://redirect.github.com/pulumi/pulumi/pull/20351)

- \[sdk/nodejs] Fix function serialisation that contains minified
classes
[#&#8203;19345](https://redirect.github.com/pulumi/pulumi/pull/19345)

- \[sdkgen/nodejs] Limit
[@&#8203;types](https://redirect.github.com/types) packages used during
local SDK generation
[#&#8203;20387](https://redirect.github.com/pulumi/pulumi/pull/20387)

-   \[sdk/python] Set ThreadPoolExecutor max_workers to parallelism \* 4
[#&#8203;20362](https://redirect.github.com/pulumi/pulumi/pull/20362)

-   \[sdk/python] Handle `-v` flag passed to policy packs
[#&#8203;20373](https://redirect.github.com/pulumi/pulumi/pull/20373)

-   \[sdk/python] Forward errors raised in callbacks to the caller
[#&#8203;20381](https://redirect.github.com/pulumi/pulumi/pull/20381)

##### Miscellaneous

-   \[cli] Log stack trace when interrupted when using verbose logging
[#&#8203;20364](https://redirect.github.com/pulumi/pulumi/pull/20364)

- \[cli] Print the location of the log file when running with the
verbose flag
[#&#8203;20365](https://redirect.github.com/pulumi/pulumi/pull/20365)

-   \[sdk/python] Remove custom typing stubs
[#&#8203;20384](https://redirect.github.com/pulumi/pulumi/pull/20384)

###
[`v3.191.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31910-2025-08-21)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.190.0...v3.191.0)

##### Features

-   \[cli] Document the `PULUMI_ENABLE_STREAMING_JSON_PREVIEW` envvar.
[#&#8203;20328](https://redirect.github.com/pulumi/pulumi/pull/20328)

##### Bug Fixes

- \[engine] Check providers returning 'version' or '\__internal' in
their inputs
[#&#8203;20313](https://redirect.github.com/pulumi/pulumi/pull/20313)

-   \[engine] Fix a panic with `refresh --run-program`
[#&#8203;20337](https://redirect.github.com/pulumi/pulumi/pull/20337)

- \[engine] Fix an infinite loop from passing unordered resources to the
dependency system when using --refresh

- \[programgen] Emit warnings instead of errors in non-strict mode when
binding resource blocks
[#&#8203;20347](https://redirect.github.com/pulumi/pulumi/pull/20347)

- \[programgen] Simplify range value types when it is derived from
object of objects and warn on unknown properties
[#&#8203;20345](https://redirect.github.com/pulumi/pulumi/pull/20345)

- \[programgen] Warn instead of erroring out when traversing a NoneType
in PCL
[#&#8203;20342](https://redirect.github.com/pulumi/pulumi/pull/20342)

-   \[cli/display] Escape non-graphic characters in URNs
[#&#8203;20295](https://redirect.github.com/pulumi/pulumi/pull/20295)

- \[cli/import] Disambiguate duplicate resource names by their types
when importing
[#&#8203;20348](https://redirect.github.com/pulumi/pulumi/pull/20348)

-   \[cli/new] Don't prompt for ai or template when passing --yes
[#&#8203;20256](https://redirect.github.com/pulumi/pulumi/pull/20256)

##### Miscellaneous

-   \[cli] Log version and CLI metadata
[#&#8203;20334](https://redirect.github.com/pulumi/pulumi/pull/20334)

-   \[cli/package] Pass ParameterizeParameters to SchemaFromSchemaSource
[#&#8203;20324](https://redirect.github.com/pulumi/pulumi/pull/20324)

###
[`v3.190.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31900-2025-08-15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.189.0...v3.190.0)

##### Features

- \[engine] Don't error on `ignoreChanges` paths that are missing old
data, there is nothing to ignore in those cases and we just use the new
data
[#&#8203;20278](https://redirect.github.com/pulumi/pulumi/pull/20278)

##### Bug Fixes

- \[cli] Fix `destroy --exclude-protected --remove` returning an error
for empty stacks that could safely be removed
[#&#8203;20283](https://redirect.github.com/pulumi/pulumi/pull/20283)

- \[cli] Fix `pulumi template publish` failing with relative paths by
normalizing to absolute paths before archive creation
[#&#8203;20301](https://redirect.github.com/pulumi/pulumi/pull/20301)

- \[cli/import] Use mapped name instead of logical name for resource
references during import code generation
[#&#8203;20300](https://redirect.github.com/pulumi/pulumi/pull/20300)

- \[pkg] Make TypeScript code generation use 'declare' keyword instead
of definite assertion operator, to avoid setting all fields to undefined
when targeting environments new enough
[#&#8203;20261](https://redirect.github.com/pulumi/pulumi/pull/20261)

-   \[sdkgen/nodejs] Make TypeScript a full dependency of local SDKs
[#&#8203;20272](https://redirect.github.com/pulumi/pulumi/pull/20272)

##### Miscellaneous

- \[build] Updates protobuf and grpc to v5, bumping dependencies in the
Go, Node.js, and Python SDKs
[#&#8203;19588](https://redirect.github.com/pulumi/pulumi/pull/19588)

-   \[build] Update latest Go version to 1.25
[#&#8203;20284](https://redirect.github.com/pulumi/pulumi/pull/20284)

-   \[sdkgen/nodejs] Target ES2020 for generated SDKs
[#&#8203;20276](https://redirect.github.com/pulumi/pulumi/pull/20276)

###
[`v3.189.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31890-2025-08-12)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.188.0...v3.189.0)

##### Features

-   \[sdk] Remove CacheMS from CLIVersionResponse
[#&#8203;20264](https://redirect.github.com/pulumi/pulumi/pull/20264)

-   \[sdk/go] Calculate PluginInfo.Size on demand
[#&#8203;20241](https://redirect.github.com/pulumi/pulumi/pull/20241)

- \[auto/python] Surface `json` option to `pulumi preview` calls in
Python when using the `pulumi.automation` package.
[#&#8203;20233](https://redirect.github.com/pulumi/pulumi/pull/20233)

##### Bug Fixes

- \[cli/package] Fix incorrect console URLs being displayed after
publishing a policy
[#&#8203;20255](https://redirect.github.com/pulumi/pulumi/pull/20255)

-   \[engine] Fix race when reading plugin stdout
[#&#8203;20242](https://redirect.github.com/pulumi/pulumi/pull/20242)

-   \[sdk/nodejs] Fix component providers when using pnpm
[#&#8203;20253](https://redirect.github.com/pulumi/pulumi/pull/20253)

##### Miscellaneous

- \[pkg] Make TypeScript code generation use nullish coalesce operator
for required property checks, as well as state and args accessing
whenever sensible

- \[sdk/nodejs] Fix swapped stderr/stdout callback comments in
PreviewOptions interface
[#&#8203;20250](https://redirect.github.com/pulumi/pulumi/pull/20250)

-   \[sdkgen] Don’t create empty maps for language specific overrides
[#&#8203;20237](https://redirect.github.com/pulumi/pulumi/pull/20237)

###
[`v3.188.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31880-2025-08-07)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.187.0...v3.188.0)

##### Features

- \[cli] Add `--remove-backups` flag to `pulumi stack rm` for DIY
backends
[#&#8203;20203](https://redirect.github.com/pulumi/pulumi/pull/20203)

##### Bug Fixes

-   \[cli] Fix cancellation when running via some CLI wrapper tools
[#&#8203;20195](https://redirect.github.com/pulumi/pulumi/pull/20195)

-   \[cli] Fix concurrent read/write during plugin downloads
[#&#8203;20223](https://redirect.github.com/pulumi/pulumi/pull/20223)

-   \[cli] Restore terminal mode on panic
[#&#8203;20224](https://redirect.github.com/pulumi/pulumi/pull/20224)

-   \[engine] Fix panic in refreshes due to concurrent map writes
[#&#8203;20206](https://redirect.github.com/pulumi/pulumi/pull/20206)

- \[sdkgen] Warn about refs of the form
"#/resources/pulumi:providers:<pkg>"
[#&#8203;20192](https://redirect.github.com/pulumi/pulumi/pull/20192)

-   \[cli/display] Show changed outputs in preview
[#&#8203;20161](https://redirect.github.com/pulumi/pulumi/pull/20161)

- \[cli/engine] Make `--exclude` correctly handle wildcards in all cases
[#&#8203;20158](https://redirect.github.com/pulumi/pulumi/pull/20158)

- \[sdk/go] Fix running against old CLI versions without
SignalAndWaitForShutdown
[#&#8203;20212](https://redirect.github.com/pulumi/pulumi/pull/20212)

-   \[sdk/python] Fix dependency installation in uv workspaces
[#&#8203;20218](https://redirect.github.com/pulumi/pulumi/pull/20218)

##### Miscellaneous

-   \[cli] Update pulumi-dotnet to 3.87.0
[#&#8203;20222](https://redirect.github.com/pulumi/pulumi/pull/20222)

-   \[cli/env] Bump esc to v0.17.0
[#&#8203;20197](https://redirect.github.com/pulumi/pulumi/pull/20197)

###
[`v3.187.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31870-2025-07-31)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.186.0...v3.187.0)

##### Features

-   \[cli] Support for writing v4 checkpoints/deployments
[#&#8203;20159](https://redirect.github.com/pulumi/pulumi/pull/20159)

- \[cli] Add support for qualified registry template names in `pulumi
new`
[#&#8203;20138](https://redirect.github.com/pulumi/pulumi/pull/20138)

- \[cli/import] Enable `pulumi import` to always `--generate-resources`
when converting `--from` state files
[#&#8203;20178](https://redirect.github.com/pulumi/pulumi/pull/20178)

-   \[yaml] Allow config values to be parsed with type `object`
[#&#8203;20132](https://redirect.github.com/pulumi/pulumi/pull/20132)

- \[auto/python] Allow for `on_error` callbacks in commands to capture
stderr incrementally
[#&#8203;20019](https://redirect.github.com/pulumi/pulumi/pull/20019)

-   \[sdk/nodejs] Add option of Bun as a package manager
[#&#8203;18412](https://redirect.github.com/pulumi/pulumi/pull/18412)

-   \[sdk/nodejs] Copy `getRootDirectory` to the pulumi module
[#&#8203;20173](https://redirect.github.com/pulumi/pulumi/pull/20173)

-   \[sdk/python] Copy `get_root_directory` to the pulumi module
[#&#8203;20172](https://redirect.github.com/pulumi/pulumi/pull/20172)

##### Bug Fixes

- \[cli] Fix un-taring registry-backed templates which come in .tar.gz
format
[#&#8203;20135](https://redirect.github.com/pulumi/pulumi/pull/20135)

- \[cli] Stop passing Accept: application/x-tar to registry template
download URLs to avoid signature mismatch
[#&#8203;20133](https://redirect.github.com/pulumi/pulumi/pull/20133)

- \[engine] Fix a panic with `up --refresh --run-program` and resource
replacements
[#&#8203;20147](https://redirect.github.com/pulumi/pulumi/pull/20147)

- \[engine] Untargeted resources in `destroy` now correctly register as
same steps
[#&#8203;20061](https://redirect.github.com/pulumi/pulumi/pull/20061)

- \[cli/engine] Fix hang when waiting for program that would never
complete
[#&#8203;20153](https://redirect.github.com/pulumi/pulumi/pull/20153)

-   \[sdk/nodejs] Fix delete hooks in inline automation API programs
[#&#8203;20143](https://redirect.github.com/pulumi/pulumi/pull/20143)

-   \[sdk/python] Set features inside construct
[#&#8203;20141](https://redirect.github.com/pulumi/pulumi/pull/20141)

##### Miscellaneous

- \[sdk/nodejs] Bump TypeScript target to ES2020 for plugins and policy
packs
[#&#8203;20148](https://redirect.github.com/pulumi/pulumi/pull/20148)

###
[`v3.186.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31860-2025-07-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.185.0...v3.186.0)

##### Features

- \[engine] Send `Cancel` message to language runtime plugins on engine
shutdown
[#&#8203;20007](https://redirect.github.com/pulumi/pulumi/pull/20007)

-   \[engine] Pass stack tags to policy plugins on startup
[#&#8203;20084](https://redirect.github.com/pulumi/pulumi/pull/20084)

- \[yaml] Expose `object` as a possible config type in preparation for
`pulumi-yaml` support
[#&#8203;20129](https://redirect.github.com/pulumi/pulumi/pull/20129)

##### Bug Fixes

- \[cli/engine] --exclude and --exclude-protected flags now work
together correctly for `destroy` commands
[#&#8203;20120](https://redirect.github.com/pulumi/pulumi/pull/20120)

-   \[engine] Fix a datarace in the engine event system
[#&#8203;20105](https://redirect.github.com/pulumi/pulumi/pull/20105)

- \[engine] Fix a panic in the engine when running `up --refresh
--run-program` and finding a deleted resource

- \[sdk/nodejs] Avoid "Cannot convert object to primitive value" error
when running into type errors
[#&#8203;20092](https://redirect.github.com/pulumi/pulumi/pull/20092)

- \[sdk/nodejs] Don’t use automatic ESM mode when `—import` or
`—require` is set
[#&#8203;20091](https://redirect.github.com/pulumi/pulumi/pull/20091)

-   \[sdk/nodejs] Fix callback server hang & delete hooks in Node.js
[#&#8203;20109](https://redirect.github.com/pulumi/pulumi/pull/20109)

-   \[sdk/nodejs] Don’t report leaked promises when we exit abnormally
[#&#8203;20128](https://redirect.github.com/pulumi/pulumi/pull/20128)

- \[cli/package] Force new style Go modules to be written out when using
`package add`
[#&#8203;20011](https://redirect.github.com/pulumi/pulumi/pull/20011)

-   \[sdk/python] Run uv sync on uv command
[#&#8203;20117](https://redirect.github.com/pulumi/pulumi/pull/20117)

##### Miscellaneous

-   \[yaml] Update yaml to 1.21.3
[#&#8203;20118](https://redirect.github.com/pulumi/pulumi/pull/20118)

###
[`v3.185.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#31850-2025-07-21)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.184.0...v3.185.0)

##### Features

- \[cli/{install,package}] Allow using `pulumi package add` with
registry identifiers
[#&#8203;19928](https://redirect.github.com/pulumi/pulumi/pull/19928)

##### Bug Fixes

- \[engine] Fix a snapshot integrity issue with `destroy --run-program`
and resource reads
[#&#8203;20078](https://redirect.github.com/pulumi/pulumi/pull/20078)

-   \[sdkgen/python] Remove unnecessary `import copy`
[#&#8203;20089](https://redirect.github.com/pulumi/pulumi/pull/20089)

-   \[sdkgen/python] Support properties named "builtins"
[#&#8203;20085](https://redirect.github.com/pulumi/pulumi/pull/20085)

</details>

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.20.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.20.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.19.0...v0.20.0)

##### Improvements

-   Added deletion protection for environments:
- Use `esc env settings set
[<org-name>/][<project-name>/]<environment-name> deletion-protected
true` to enable deletion protection
- Use `esc env settings get
[<org-name>/][<project-name>/]<environment-name> [deletion-protected]`
to check the current status
- When enabled, environments cannot be deleted until protection is
disabled
    -   Deletion protection is disabled by default for new environments

##### Bug Fixes

- Environment declarations are now returned even in the face of syntax
errors.

##### Breaking changes

###
[`v0.19.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.19.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.18.0...v0.19.0)

##### Improvements

- Added support for Open Approvals
[#&#8203;592](https://redirect.github.com/pulumi/esc/pull/592)

##### Bug Fixes

##### Breaking changes

###
[`v0.18.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.18.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.17.0...v0.18.0)

##### Improvements

- Added support for `fn::concat` built-in function to concatenate
arrays.
    [#&#8203;582](https://redirect.github.com/pulumi/esc/pull/582)

##### Bug Fixes

##### Breaking changes

</details>

<details>
<summary>pulumi/esc-action (pulumi/esc-action)</summary>

###
[`v1.5.0`](https://redirect.github.com/pulumi/esc-action/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/pulumi/esc-action/compare/v1.4.0...v1.5.0)

- Fix line parsing when "=" is present
[https://github.com/pulumi/esc-action/pull/30](https://redirect.github.com/pulumi/esc-action/pull/30)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMjY0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImltcGFjdC9uby1jaGFuZ2Vsb2ctcmVxdWlyZWQiXX0=-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2025-11-20 21:38:09 +00:00
pulumi-renovate[bot]
f1ff9e765f Update vulnerable dependencies [SECURITY] (#671)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/containerd/containerd/v2](https://redirect.github.com/containerd/containerd)
| indirect | patch | `v2.0.3` -> `v2.0.7` |
|
[github.com/go-viper/mapstructure/v2](https://redirect.github.com/go-viper/mapstructure)
| indirect | minor | `v2.0.0` -> `v2.4.0` |
| [github.com/ulikunitz/xz](https://redirect.github.com/ulikunitz/xz) |
indirect | patch | `v0.5.12` -> `v0.5.15` |
| golang.org/x/crypto | indirect | minor | `v0.39.0` -> `v0.45.0` |

### GitHub Vulnerability Alerts

####
[CVE-2024-40635](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg)

### Impact
A bug was found in containerd where containers launched with a User set
as a `UID:GID` larger than the maximum 32-bit signed integer can cause
an overflow condition where the container ultimately runs as root (UID
0). This could cause unexpected behavior for environments that require
containers to run as a non-root user.

### Patches
This bug has been fixed in the following containerd versions: 

* 2.0.4 (Fixed in
1a43cb6a10)
* 1.7.27 (Fixed in
05044ec0a9)
* 1.6.38 (Fixed in
cf158e884c)

Users should update to these versions to resolve the issue.

### Workarounds
Ensure that only trusted images are used and that only trusted users
have permissions to import images.

### Credits
The containerd project would like to thank [Benjamin
Koltermann](https://redirect.github.com/p4ck3t0) and
[emxll](https://redirect.github.com/emxll) for responsibly disclosing
this issue in accordance with the [containerd security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

### References
* https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-40635

### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:
* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)
* Email us at [security@containerd.io](mailto:security@containerd.io)

####
[CVE-2025-47291](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff)

# Impact

A bug was found in the containerd's CRI implementation where containerd
doesn't put usernamespaced containers under the Kubernetes' cgroup
hierarchy, therefore some Kubernetes limits are not honored. This may
cause a denial of service of the Kubernetes node.

# Patches

This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should
update to these versions to resolve the issue.

# Workarounds

Disable usernamespaced pods in Kubernetes temporarily.

# Credits

The containerd project would like to thank Rodrigo Campos Catelin and
Piotr Rogowski for responsibly disclosing this issue in accordance with
the [containerd security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

#  For more information
If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at security@containerd.io

To report a security issue in containerd:
* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)
* Email us at [security@containerd.io](mailto:security@containerd.io)

####
[CVE-2024-25621](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-pwhc-rpq9-4c8w)

### Impact

An overly broad default permission vulnerability was found in
containerd.

- `/var/lib/containerd` was created with the permission bits 0o711,
while it should be created with 0o700
- Allowed local users on the host to potentially access the metadata
store and the content store
- `/run/containerd/io.containerd.grpc.v1.cri` was created with 0o755,
while it should be created with 0o700
- Allowed local users on the host to potentially access the contents of
Kubernetes local volumes. The contents of volumes might include setuid
binaries, which could allow a local user on the host to elevate
privileges on the host.
- `/run/containerd/io.containerd.sandbox.controller.v1.shim` was created
with 0o711, while it should be created with 0o700

The directory paths may differ depending on the daemon configuration.
When the `temp` directory path is specified in the daemon configuration,
that directory was also created with 0o711, while it should be created
with 0o700.

### Patches

This bug has been fixed in the following containerd versions:

* 2.2.0
* 2.1.5
* 2.0.7
* 1.7.29

Users should update to these versions to resolve the issue.
These updates automatically change the permissions of the existing
directories.

> [!NOTE]
>
> `/run/containerd` and `/run/containerd/io.containerd.runtime.v2.task`
are still created with 0o711.
> This is an expected behavior for supporting userns-remapped
containers.

### Workarounds

The system administrator on the host can manually chmod the directories
to not
have group or world accessible permisisons:

```
chmod 700 /var/lib/containerd
chmod 700 /run/containerd/io.containerd.grpc.v1.cri
chmod 700 /run/containerd/io.containerd.sandbox.controller.v1.shim
```

An alternative mitigation would be to run containerd in [rootless
mode](https://redirect.github.com/containerd/containerd/blob/main/docs/rootless.md).

### Credits

The containerd project would like to thank David Leadbeater for
responsibly disclosing this issue in accordance with the [containerd
security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:

* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)

####
[CVE-2025-64329](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-m6hq-p25p-ffr2)

### Impact

A bug was found in containerd's CRI Attach implementation where a user
can exhaust memory on the host due to goroutine leaks.

Repetitive calls of CRI Attach (e.g., [`kubectl
attach`](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_attach/))
could increase the memory usage of containerd.

### Patches

This bug has been fixed in the following containerd versions:

* 2.2.0
* 2.1.5
* 2.0.7
* 1.7.29

Users should update to these versions to resolve the issue.

### Workarounds

Set up an admission controller to control accesses to `pods/attach`
resources.
e.g., [Validating Admission
Policy](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/).

### Credits

The containerd project would like to thank @&#8203;Wheat2018 for
responsibly disclosing this issue in accordance with the [containerd
security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

### References

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-64329

### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:

* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)

---

### containerd has an integer overflow in User ID handling in
github.com/containerd/containerd
[CVE-2024-40635](https://nvd.nist.gov/vuln/detail/CVE-2024-40635) /
[GHSA-265r-hfxg-fhmg](https://redirect.github.com/advisories/GHSA-265r-hfxg-fhmg)
/ [GO-2025-3528](https://pkg.go.dev/vuln/GO-2025-3528)

<details>
<summary>More information</summary>

#### Details
containerd has an integer overflow in User ID handling in
github.com/containerd/containerd

#### Severity
Unknown

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg)
-
[05044ec0a9)
-
[1a43cb6a10)
-
[cf158e884c)

This data is provided by
[OSV](https://osv.dev/vulnerability/GO-2025-3528) and the [Go
Vulnerability Database](https://redirect.github.com/golang/vulndb)
([CC-BY 4.0](https://redirect.github.com/golang/vulndb#license)).
</details>

---

### containerd has an integer overflow in User ID handling
[CVE-2024-40635](https://nvd.nist.gov/vuln/detail/CVE-2024-40635) /
[GHSA-265r-hfxg-fhmg](https://redirect.github.com/advisories/GHSA-265r-hfxg-fhmg)
/ [GO-2025-3528](https://pkg.go.dev/vuln/GO-2025-3528)

<details>
<summary>More information</summary>

#### Details
##### Impact
A bug was found in containerd where containers launched with a User set
as a `UID:GID` larger than the maximum 32-bit signed integer can cause
an overflow condition where the container ultimately runs as root (UID
0). This could cause unexpected behavior for environments that require
containers to run as a non-root user.

##### Patches
This bug has been fixed in the following containerd versions: 

* 2.0.4 (Fixed in
1a43cb6a10)
* 1.7.27 (Fixed in
05044ec0a9)
* 1.6.38 (Fixed in
cf158e884c)

Users should update to these versions to resolve the issue.

##### Workarounds
Ensure that only trusted images are used and that only trusted users
have permissions to import images.

##### Credits
The containerd project would like to thank [Benjamin
Koltermann](https://redirect.github.com/p4ck3t0) and
[emxll](https://redirect.github.com/emxll) for responsibly disclosing
this issue in accordance with the [containerd security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

##### References
* https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-40635

##### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:
* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)
* Email us at [security@containerd.io](mailto:security@containerd.io)

#### Severity
- CVSS Score: 4.6 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N`

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg)
-
[https://nvd.nist.gov/vuln/detail/CVE-2024-40635](https://nvd.nist.gov/vuln/detail/CVE-2024-40635)
-
[05044ec0a9)
-
[1a43cb6a10)
-
[cf158e884c)
-
[https://github.com/containerd/containerd](https://redirect.github.com/containerd/containerd)
-
[https://lists.debian.org/debian-lts-announce/2025/05/msg00005.html](https://lists.debian.org/debian-lts-announce/2025/05/msg00005.html)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-265r-hfxg-fhmg) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### containerd CRI plugin: Incorrect cgroup hierarchy assignment for
containers running in usernamespaced Kubernetes pods.
[CVE-2025-47291](https://nvd.nist.gov/vuln/detail/CVE-2025-47291) /
[GHSA-cxfp-7pvr-95ff](https://redirect.github.com/advisories/GHSA-cxfp-7pvr-95ff)
/ [GO-2025-3701](https://pkg.go.dev/vuln/GO-2025-3701)

<details>
<summary>More information</summary>

#### Details
##### Impact

A bug was found in the containerd's CRI implementation where containerd
doesn't put usernamespaced containers under the Kubernetes' cgroup
hierarchy, therefore some Kubernetes limits are not honored. This may
cause a denial of service of the Kubernetes node.

##### Patches

This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should
update to these versions to resolve the issue.

##### Workarounds

Disable usernamespaced pods in Kubernetes temporarily.

##### Credits

The containerd project would like to thank Rodrigo Campos Catelin and
Piotr Rogowski for responsibly disclosing this issue in accordance with
the [containerd security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

#####  For more information
If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at security@containerd.io

To report a security issue in containerd:
* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)
* Email us at [security@containerd.io](mailto:security@containerd.io)

#### Severity
- CVSS Score: Unknown
- Vector String:
`CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U`

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff)
-
[https://nvd.nist.gov/vuln/detail/CVE-2025-47291](https://nvd.nist.gov/vuln/detail/CVE-2025-47291)
-
[https://github.com/containerd/containerd](https://redirect.github.com/containerd/containerd)
-
[https://pkg.go.dev/vuln/GO-2025-3701](https://pkg.go.dev/vuln/GO-2025-3701)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-cxfp-7pvr-95ff) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Incorrect cgroup assignment for containers running in usernamespaced
Kubernetes pods in github.com/containerd/containerd
[CVE-2025-47291](https://nvd.nist.gov/vuln/detail/CVE-2025-47291) /
[GHSA-cxfp-7pvr-95ff](https://redirect.github.com/advisories/GHSA-cxfp-7pvr-95ff)
/ [GO-2025-3701](https://pkg.go.dev/vuln/GO-2025-3701)

<details>
<summary>More information</summary>

#### Details
Incorrect cgroup assignment for containers running in usernamespaced
Kubernetes pods in github.com/containerd/containerd

#### Severity
Unknown

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff)

This data is provided by
[OSV](https://osv.dev/vulnerability/GO-2025-3701) and the [Go
Vulnerability Database](https://redirect.github.com/golang/vulndb)
([CC-BY 4.0](https://redirect.github.com/golang/vulndb#license)).
</details>

---

### containerd affected by a local privilege escalation via wide
permissions on CRI directory
[CVE-2024-25621](https://nvd.nist.gov/vuln/detail/CVE-2024-25621) /
[GHSA-pwhc-rpq9-4c8w](https://redirect.github.com/advisories/GHSA-pwhc-rpq9-4c8w)

<details>
<summary>More information</summary>

#### Details
##### Impact

An overly broad default permission vulnerability was found in
containerd.

- `/var/lib/containerd` was created with the permission bits 0o711,
while it should be created with 0o700
- Allowed local users on the host to potentially access the metadata
store and the content store
- `/run/containerd/io.containerd.grpc.v1.cri` was created with 0o755,
while it should be created with 0o700
- Allowed local users on the host to potentially access the contents of
Kubernetes local volumes. The contents of volumes might include setuid
binaries, which could allow a local user on the host to elevate
privileges on the host.
- `/run/containerd/io.containerd.sandbox.controller.v1.shim` was created
with 0o711, while it should be created with 0o700

The directory paths may differ depending on the daemon configuration.
When the `temp` directory path is specified in the daemon configuration,
that directory was also created with 0o711, while it should be created
with 0o700.

##### Patches

This bug has been fixed in the following containerd versions:

* 2.2.0
* 2.1.5
* 2.0.7
* 1.7.29

Users should update to these versions to resolve the issue.
These updates automatically change the permissions of the existing
directories.

> [!NOTE]
>
> `/run/containerd` and `/run/containerd/io.containerd.runtime.v2.task`
are still created with 0o711.
> This is an expected behavior for supporting userns-remapped
containers.

##### Workarounds

The system administrator on the host can manually chmod the directories
to not
have group or world accessible permisisons:

```
chmod 700 /var/lib/containerd
chmod 700 /run/containerd/io.containerd.grpc.v1.cri
chmod 700 /run/containerd/io.containerd.sandbox.controller.v1.shim
```

An alternative mitigation would be to run containerd in [rootless
mode](https://redirect.github.com/containerd/containerd/blob/main/docs/rootless.md).

##### Credits

The containerd project would like to thank David Leadbeater for
responsibly disclosing this issue in accordance with the [containerd
security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

##### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:

* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)

#### Severity
- CVSS Score: 7.3 / 10 (High)
- Vector String: `CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H`

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-pwhc-rpq9-4c8w](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-pwhc-rpq9-4c8w)
-
[https://nvd.nist.gov/vuln/detail/CVE-2024-25621](https://nvd.nist.gov/vuln/detail/CVE-2024-25621)
-
[7c59e8e9e9)
-
[https://github.com/containerd/containerd](https://redirect.github.com/containerd/containerd)
-
[https://github.com/containerd/containerd/blob/main/docs/rootless.md](https://redirect.github.com/containerd/containerd/blob/main/docs/rootless.md)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-pwhc-rpq9-4c8w) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### containerd CRI server: Host memory exhaustion through Attach
goroutine leak
[CVE-2025-64329](https://nvd.nist.gov/vuln/detail/CVE-2025-64329) /
[GHSA-m6hq-p25p-ffr2](https://redirect.github.com/advisories/GHSA-m6hq-p25p-ffr2)

<details>
<summary>More information</summary>

#### Details
##### Impact

A bug was found in containerd's CRI Attach implementation where a user
can exhaust memory on the host due to goroutine leaks.

Repetitive calls of CRI Attach (e.g., [`kubectl
attach`](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_attach/))
could increase the memory usage of containerd.

##### Patches

This bug has been fixed in the following containerd versions:

* 2.2.0
* 2.1.5
* 2.0.7
* 1.7.29

Users should update to these versions to resolve the issue.

##### Workarounds

Set up an admission controller to control accesses to `pods/attach`
resources.
e.g., [Validating Admission
Policy](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/).

##### Credits

The containerd project would like to thank @&#8203;Wheat2018 for
responsibly disclosing this issue in accordance with the [containerd
security
policy](https://redirect.github.com/containerd/project/blob/main/SECURITY.md).

##### References

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-64329

##### For more information

If you have any questions or comments about this advisory:

* Open an issue in
[containerd](https://redirect.github.com/containerd/containerd/issues/new/choose)
* Email us at [security@containerd.io](mailto:security@containerd.io)

To report a security issue in containerd:

* [Report a new
vulnerability](https://redirect.github.com/containerd/containerd/security/advisories/new)

#### Severity
- CVSS Score: Unknown
- Vector String:
`CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N`

#### References
-
[https://github.com/containerd/containerd/security/advisories/GHSA-m6hq-p25p-ffr2](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-m6hq-p25p-ffr2)
-
[https://nvd.nist.gov/vuln/detail/CVE-2025-64329](https://nvd.nist.gov/vuln/detail/CVE-2025-64329)
-
[083b53cd6f)
-
[https://github.com/containerd/containerd](https://redirect.github.com/containerd/containerd)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-m6hq-p25p-ffr2) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

####
[GHSA-fv92-fjc5-jj9h](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h)

### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value:


1a66224d5e/mapstructure.go (L679-L686)


1a66224d5e/mapstructure.go (L726-L730)


1a66224d5e/mapstructure.go (L783-L787)

& more.

### PoC

To reproduce with OpenBao:

```
$ podman run -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"password":{"asdf":"my-sensitive-value"}}' "http://localhost:8300/v1/auth/userpass/users/adsf"
{"errors":["error converting input for field \"password\": '' expected type 'string', got unconvertible type 'map[string]interface {}', value: 'map[asdf:my-sensitive-value]'"]}
```

### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

####
[GHSA-2464-8j7c-4cjm](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm)

### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value via `strconv` helpers:


8c61ec1924/mapstructure.go (L720-L727)


8c61ec1924/mapstructure.go (L791-L798)


8c61ec1924/decode_hooks.go (L180)

& more. These are different code paths than are fixed in the previous
iteration at
https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h.

### PoC

To reproduce with OpenBao:

```
$ podman run --pull=always -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"ttl":"asdf"}' "http://localhost:8200/v1/auth/userpass/users/asdf"

--> server logs:

2025-06-25T21:32:25.101-0500 [ERROR] core: failed to run existence check: error="error converting input for field \"ttl\": time: invalid duration \"asdf\""
```

### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

---

### mapstructure May Leak Sensitive Information in Logs When Processing
Malformed Data

[GHSA-fv92-fjc5-jj9h](https://redirect.github.com/advisories/GHSA-fv92-fjc5-jj9h)
/ [GO-2025-3787](https://pkg.go.dev/vuln/GO-2025-3787)

<details>
<summary>More information</summary>

#### Details
##### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

##### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value:


1a66224d5e/mapstructure.go (L679-L686)


1a66224d5e/mapstructure.go (L726-L730)


1a66224d5e/mapstructure.go (L783-L787)

& more.

##### PoC

To reproduce with OpenBao:

```
$ podman run -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"password":{"asdf":"my-sensitive-value"}}' "http://localhost:8300/v1/auth/userpass/users/adsf"
{"errors":["error converting input for field \"password\": '' expected type 'string', got unconvertible type 'map[string]interface {}', value: 'map[asdf:my-sensitive-value]'"]}
```

##### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N`

#### References
-
[https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h)
-
[https://github.com/go-viper/mapstructure](https://redirect.github.com/go-viper/mapstructure)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-fv92-fjc5-jj9h) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### May leak sensitive information in logs when processing malformed
data in github.com/go-viper/mapstructure

[GHSA-fv92-fjc5-jj9h](https://redirect.github.com/advisories/GHSA-fv92-fjc5-jj9h)
/ [GO-2025-3787](https://pkg.go.dev/vuln/GO-2025-3787)

<details>
<summary>More information</summary>

#### Details
May leak sensitive information in logs when processing malformed data in
github.com/go-viper/mapstructure

#### Severity
Unknown

#### References
-
[https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h)

This data is provided by
[OSV](https://osv.dev/vulnerability/GO-2025-3787) and the [Go
Vulnerability Database](https://redirect.github.com/golang/vulndb)
([CC-BY 4.0](https://redirect.github.com/golang/vulndb#license)).
</details>

---

### Go-viper's mapstructure May Leak Sensitive Information in Logs in
github.com/go-viper/mapstructure

[GHSA-2464-8j7c-4cjm](https://redirect.github.com/advisories/GHSA-2464-8j7c-4cjm)
/ [GO-2025-3900](https://pkg.go.dev/vuln/GO-2025-3900)

<details>
<summary>More information</summary>

#### Details
Go-viper's mapstructure May Leak Sensitive Information in Logs in
github.com/go-viper/mapstructure

#### Severity
Unknown

#### References
-
[https://github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm)
-
[742921c9ba)

This data is provided by
[OSV](https://osv.dev/vulnerability/GO-2025-3900) and the [Go
Vulnerability Database](https://redirect.github.com/golang/vulndb)
([CC-BY 4.0](https://redirect.github.com/golang/vulndb#license)).
</details>

---

### go-viper's mapstructure May Leak Sensitive Information in Logs When
Processing Malformed Data

[GHSA-2464-8j7c-4cjm](https://redirect.github.com/advisories/GHSA-2464-8j7c-4cjm)
/ [GO-2025-3900](https://pkg.go.dev/vuln/GO-2025-3900)

<details>
<summary>More information</summary>

#### Details
##### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

##### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value via `strconv` helpers:


8c61ec1924/mapstructure.go (L720-L727)


8c61ec1924/mapstructure.go (L791-L798)


8c61ec1924/decode_hooks.go (L180)

& more. These are different code paths than are fixed in the previous
iteration at
https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h.

##### PoC

To reproduce with OpenBao:

```
$ podman run --pull=always -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"ttl":"asdf"}' "http://localhost:8200/v1/auth/userpass/users/asdf"

--> server logs:

2025-06-25T21:32:25.101-0500 [ERROR] core: failed to run existence check: error="error converting input for field \"ttl\": time: invalid duration \"asdf\""
```

##### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N`

#### References
-
[https://github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm)
-
[742921c9ba)
-
[https://github.com/go-viper/mapstructure](https://redirect.github.com/go-viper/mapstructure)
-
[https://pkg.go.dev/vuln/GO-2025-3900](https://pkg.go.dev/vuln/GO-2025-3900)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-2464-8j7c-4cjm) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

####
[CVE-2025-58058](https://redirect.github.com/ulikunitz/xz/security/advisories/GHSA-jc7w-c686-c4v9)

### Summary

It is possible to put data in front of an LZMA-encoded byte stream
without detecting the situation while reading the header. This can lead
to increased memory consumption because the current implementation
allocates the full decoding buffer directly after reading the header.
The LZMA header doesn't include a magic number or has a checksum to
detect such an issue according to the
[specification](https://redirect.github.com/jljusten/LZMA-SDK/blob/master/DOC/lzma-specification.txt).

Note that the code recognizes the issue later while reading the stream,
but at this time the memory allocation has already been done.

### Mitigations

The release v0.5.15 includes following mitigations:

- The ReaderConfig DictCap field is now interpreted as a limit for the
dictionary size.
- The default is 2 Gigabytes - 1 byte (2^31-1 bytes).
- Users can check with the [Reader.Header] method what the actual values
are in their LZMA files and set a smaller limit using ReaderConfig.
- The dictionary size will not exceed the larger of the file size and
the minimum dictionary size. This is another measure to prevent huge
memory allocations for the dictionary.
- The code supports stream sizes only up to a pebibyte (1024^5).

Note that the original v0.5.14 version had a compiler error for 32 bit
platforms, which has been fixed by v0.5.15.

### Methods affected

Only software that uses
[lzma.NewReader](https://pkg.go.dev/github.com/ulikunitz/xz/lzma#NewReader)
or
[lzma.ReaderConfig.NewReader](https://pkg.go.dev/github.com/ulikunitz/xz/lzma#ReaderConfig.NewReader)
is affected. There is no issue for software using the xz functionality.

I thank  @&#8203;GregoryBuligin for his report, which is provided below.

### Summary
When unpacking a large number of LZMA archives, even in a single
goroutine, if the first byte of the archive file is 0 (a zero byte added
to the beginning), an error __writeMatch: distance out of range__
occurs. Memory consumption spikes sharply, and the GC clearly cannot
handle this situation.

### Details
Judging by the error __writeMatch: distance out of range__, the problems
occur in the code around this function.

c8314b8f21/lzma/decoderdict.go (L81)

### PoC
Run a function similar to this one in 1 or several goroutines on a
multitude of LZMA archives that have a 0 (a zero byte) added to the
beginning.
```
const ProjectLocalPath = "some/path"
const TmpDir = "tmp"

func UnpackLZMA(lzmaFile string) error {
	file, err := os.Open(lzmaFile)
	if err != nil {
		return err
	}
	defer file.Close()

	reader, err := lzma.NewReader(bufio.NewReader(file))
	if err != nil {
		return err
	}

	tmpFile, err := os.CreateTemp(TmpDir, TmpLZMAPrefix)
	if err != nil {
		return err
	}
	defer func() {
		tmpFile.Close()
		_ = os.Remove(tmpFile.Name())
	}()

	sha256Hasher := sha256.New()
	multiWriter := io.MultiWriter(tmpFile, sha256Hasher)

	if _, err = io.Copy(multiWriter, reader); err != nil {
		return err
	}

	unpackHash := hex.EncodeToString(sha256Hasher.Sum(nil))
	unpackDir := filepath.Join(
		ProjectLocalPath, unpackHash[:2],
	)
	_ = os.MkdirAll(unpackDir, DirPerm)

	unpackPath := filepath.Join(unpackDir, unpackHash)

	return os.Rename(tmpFile.Name(), unpackPath)
}
```

### Impact
Servers with a small amount of RAM that download and unpack a large
number of unverified LZMA archives

---

### github.com/ulikunitz/xz leaks memory when decoding a corrupted
multiple LZMA archives
[CVE-2025-58058](https://nvd.nist.gov/vuln/detail/CVE-2025-58058) /
[GHSA-jc7w-c686-c4v9](https://redirect.github.com/advisories/GHSA-jc7w-c686-c4v9)
/ [GO-2025-3922](https://pkg.go.dev/vuln/GO-2025-3922)

<details>
<summary>More information</summary>

#### Details
##### Summary

It is possible to put data in front of an LZMA-encoded byte stream
without detecting the situation while reading the header. This can lead
to increased memory consumption because the current implementation
allocates the full decoding buffer directly after reading the header.
The LZMA header doesn't include a magic number or has a checksum to
detect such an issue according to the
[specification](https://redirect.github.com/jljusten/LZMA-SDK/blob/master/DOC/lzma-specification.txt).

Note that the code recognizes the issue later while reading the stream,
but at this time the memory allocation has already been done.

##### Mitigations

The release v0.5.15 includes following mitigations:

- The ReaderConfig DictCap field is now interpreted as a limit for the
dictionary size.
- The default is 2 Gigabytes - 1 byte (2^31-1 bytes).
- Users can check with the [Reader.Header] method what the actual values
are in their LZMA files and set a smaller limit using ReaderConfig.
- The dictionary size will not exceed the larger of the file size and
the minimum dictionary size. This is another measure to prevent huge
memory allocations for the dictionary.
- The code supports stream sizes only up to a pebibyte (1024^5).

Note that the original v0.5.14 version had a compiler error for 32 bit
platforms, which has been fixed by v0.5.15.

##### Methods affected

Only software that uses
[lzma.NewReader](https://pkg.go.dev/github.com/ulikunitz/xz/lzma#NewReader)
or
[lzma.ReaderConfig.NewReader](https://pkg.go.dev/github.com/ulikunitz/xz/lzma#ReaderConfig.NewReader)
is affected. There is no issue for software using the xz functionality.

I thank  @&#8203;GregoryBuligin for his report, which is provided below.

##### Summary
When unpacking a large number of LZMA archives, even in a single
goroutine, if the first byte of the archive file is 0 (a zero byte added
to the beginning), an error __writeMatch: distance out of range__
occurs. Memory consumption spikes sharply, and the GC clearly cannot
handle this situation.

##### Details
Judging by the error __writeMatch: distance out of range__, the problems
occur in the code around this function.

c8314b8f21/lzma/decoderdict.go (L81)

##### PoC
Run a function similar to this one in 1 or several goroutines on a
multitude of LZMA archives that have a 0 (a zero byte) added to the
beginning.
```
const ProjectLocalPath = "some/path"
const TmpDir = "tmp"

func UnpackLZMA(lzmaFile string) error {
	file, err := os.Open(lzmaFile)
	if err != nil {
		return err
	}
	defer file.Close()

	reader, err := lzma.NewReader(bufio.NewReader(file))
	if err != nil {
		return err
	}

	tmpFile, err := os.CreateTemp(TmpDir, TmpLZMAPrefix)
	if err != nil {
		return err
	}
	defer func() {
		tmpFile.Close()
		_ = os.Remove(tmpFile.Name())
	}()

	sha256Hasher := sha256.New()
	multiWriter := io.MultiWriter(tmpFile, sha256Hasher)

	if _, err = io.Copy(multiWriter, reader); err != nil {
		return err
	}

	unpackHash := hex.EncodeToString(sha256Hasher.Sum(nil))
	unpackDir := filepath.Join(
		ProjectLocalPath, unpackHash[:2],
	)
	_ = os.MkdirAll(unpackDir, DirPerm)

	unpackPath := filepath.Join(unpackDir, unpackHash)

	return os.Rename(tmpFile.Name(), unpackPath)
}
```

##### Impact
Servers with a small amount of RAM that download and unpack a large
number of unverified LZMA archives

#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L`

#### References
-
[https://github.com/ulikunitz/xz/security/advisories/GHSA-jc7w-c686-c4v9](https://redirect.github.com/ulikunitz/xz/security/advisories/GHSA-jc7w-c686-c4v9)
-
[https://nvd.nist.gov/vuln/detail/CVE-2025-58058](https://nvd.nist.gov/vuln/detail/CVE-2025-58058)
-
[88ddf1d0d9)
-
[https://github.com/ulikunitz/xz](https://redirect.github.com/ulikunitz/xz)

This data is provided by
[OSV](https://osv.dev/vulnerability/GHSA-jc7w-c686-c4v9) and the [GitHub
Advisory Database](https://redirect.github.com/github/advisory-database)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Memory leaks when decoding a corrupted multiple LZMA archives in
github.com/ulikunitz/xz
[CVE-2025-58058](https://nvd.nist.gov/vuln/detail/CVE-2025-58058) /
[GHSA-jc7w-c686-c4v9](https://redirect.github.com/advisories/GHSA-jc7w-c686-c4v9)
/ [GO-2025-3922](https://pkg.go.dev/vuln/GO-2025-3922)

<details>
<summary>More information</summary>

#### Details
Memory leaks when decoding a corrupted multiple LZMA archives in
github.com/ulikunitz/xz

#### Severity
Unknown

#### References
-
[https://github.com/ulikunitz/xz/security/advisories/GHSA-jc7w-c686-c4v9](https://redirect.github.com/ulikunitz/xz/security/advisories/GHSA-jc7w-c686-c4v9)
-
[88ddf1d0d9)

This data is provided by
[OSV](https://osv.dev/vulnerability/GO-2025-3922) and the [Go
Vulnerability Database](https://redirect.github.com/golang/vulndb)
([CC-BY 4.0](https://redirect.github.com/golang/vulndb#license)).
</details>

#### [CVE-2025-58181](https://nvd.nist.gov/vuln/detail/CVE-2025-58181)

SSH servers parsing GSSAPI authentication requests do not validate the
number of mechanisms specified in the request, allowing an attacker to
cause unbounded memory consumption.

#### [CVE-2025-47914](https://nvd.nist.gov/vuln/detail/CVE-2025-47914)

SSH Agent servers do not validate the size of messages when processing
new identity requests, which may cause the program to panic if the
message is malformed due to an out of bounds read.

---

### Release Notes

<details>
<summary>containerd/containerd
(github.com/containerd/containerd/v2)</summary>

###
[`v2.0.7`](https://redirect.github.com/containerd/containerd/releases/tag/v2.0.7):
containerd 2.0.7

[Compare
Source](https://redirect.github.com/containerd/containerd/compare/v2.0.6...v2.0.7)

Welcome to the v2.0.7 release of containerd!

The seventh patch release for containerd 2.0 includes various bug fixes
and updates.

##### Security Updates

-   **containerd**
-
[**GHSA-pwhc-rpq9-4c8w**](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-pwhc-rpq9-4c8w)
-
[**GHSA-m6hq-p25p-ffr2**](https://redirect.github.com/containerd/containerd/security/advisories/GHSA-m6hq-p25p-ffr2)

-   **runc**
-
[**GHSA-qw9x-cqr3-wc7r**](https://redirect.github.com/opencontainers/runc/security/advisories/GHSA-qw9x-cqr3-wc7r)
-
[**GHSA-cgrx-mc8f-2prm**](https://redirect.github.com/opencontainers/runc/security/advisories/GHSA-cgrx-mc8f-2prm)
-
[**GHSA-9493-h29p-rfm2**](https://redirect.github.com/opencontainers/runc/security/advisories/GHSA-9493-h29p-rfm2)

##### Highlights

##### Container Runtime Interface (CRI)

- **Disable event subscriber during task cleanup**
([#&#8203;12406](https://redirect.github.com/containerd/containerd/pull/12406))
- **Add SystemdCgroup to default runtime options**
([#&#8203;12254](https://redirect.github.com/containerd/containerd/pull/12254))
- **Fix userns with container image VOLUME mounts that need copy**
([#&#8203;12241](https://redirect.github.com/containerd/containerd/pull/12241))

##### Image Distribution

- **Add dial timeout field to hosts toml configuration**
([#&#8203;12136](https://redirect.github.com/containerd/containerd/pull/12136))

##### Runtime

- **Update runc binary to v1.3.3**
([#&#8203;12479](https://redirect.github.com/containerd/containerd/pull/12479))
- **Fix lost container logs from quickly closing io**
([#&#8203;12376](https://redirect.github.com/containerd/containerd/pull/12376))
- **Create bootstrap.json with 0644 permission**
([#&#8203;12184](https://redirect.github.com/containerd/containerd/pull/12184))
- **Fix pidfd leak in UnshareAfterEnterUserns**
([#&#8203;12178](https://redirect.github.com/containerd/containerd/pull/12178))

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

##### Contributors

-   Austin Vazquez
-   Phil Estes
-   Rodrigo Campos
-   Wei Fu
-   Akihiro Suda
-   Derek McGowan
-   Maksym Pavlenko
-   ningmingxiao
-   Kirtana Ashok
-   Akhil Mohan
-   Andrew Halaney
-   Jin Dong
-   Jose Fernandez
-   Mike Baynton
-   Philip Laine
-   Swagat Bora
-   wheat2018

##### Changes

<details><summary>56 commits</summary>
<p>

- Prepare release notes for v2.0.7
([#&#8203;12482](https://redirect.github.com/containerd/containerd/pull/12482))
-
[`4931e24f1`](4931e24f16)
Prepare release notes for v2.0.7
-
[`205bc4f2d`](205bc4f2db)
Update mailmap
-
[`5f708b76a`](5f708b76a4)
Merge commit from fork
-
[`8cd112d82`](8cd112d829)
Fix directory permissions
-
[`05290b5bc`](05290b5bc8)
Merge commit from fork
-
[`4d1edf4ad`](4d1edf4add)
fix goroutine leak of container Attach
- Update runc binary to v1.3.3
([#&#8203;12479](https://redirect.github.com/containerd/containerd/pull/12479))
-
[`b46dc6a67`](b46dc6a67c)
runc: Update runc binary to v1.3.3
- ci: bump Go 1.24.9; 1.25.3
([#&#8203;12361](https://redirect.github.com/containerd/containerd/pull/12361))
-
[`5e9c82178`](5e9c821780)
Update GHA runners to use latest images for basic binaries build
-
[`7f59248dc`](7f59248dcd)
Update GHA runners to use latest image for most jobs
-
[`e1373e8a8`](e1373e8a8a)
ci: bump Go 1.24.9, 1.25.3
-
[`e1a910a6a`](e1a910a6a9)
ci: bump Go 1.24.8; 1.25.2
-
[`fd04b7f17`](fd04b7f176)
move exclude-dirs to issues.exclude-dirs
-
[`b49377975`](b493779751)
update golangci-lint to v1.64.2
-
[`6e45022a1`](6e45022a1e)
build(deps): bump golangci/golangci-lint-action from 6.3.2 to 6.5.0
-
[`09ce0f2a1`](09ce0f2a1e)
build(deps): bump golangci/golangci-lint-action from 6.2.0 to 6.3.2
-
[`de63a740b`](de63a740b8)
build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.2.0
- Fix lost container logs from quickly closing io
([#&#8203;12376](https://redirect.github.com/containerd/containerd/pull/12376))
-
[`f953ee8a3`](f953ee8a3c)
bugfix:fix container logs lost because io close too quickly
- CI: update Fedora to 43
([#&#8203;12448](https://redirect.github.com/containerd/containerd/pull/12448))
-
[`f6f15f513`](f6f15f5135)
CI: update Fedora to 43
- Disable event subscriber during task cleanup
([#&#8203;12406](https://redirect.github.com/containerd/containerd/pull/12406))
-
[`2a2329cbd`](2a2329cbd0)
cri/server/podsandbox: disable event subscriber
- CI: skip ubuntu-24.04-arm on private repos
([#&#8203;12428](https://redirect.github.com/containerd/containerd/pull/12428))
-
[`dfb954743`](dfb9547437)
CI: skip ubuntu-24.04-arm on private repos
- Remove additional fuzzers from instrumentation repo
([#&#8203;12420](https://redirect.github.com/containerd/containerd/pull/12420))
-
[`f6b02f6bb`](f6b02f6bb8)
Remove additional fuzzers from CI
- runc:Update runc binary to v1.3.1
([#&#8203;12275](https://redirect.github.com/containerd/containerd/pull/12275))
-
[`75c13ee3f`](75c13ee3fc)
runc:Update runc binary to v1.3.1
- Add SystemdCgroup to default runtime options
([#&#8203;12254](https://redirect.github.com/containerd/containerd/pull/12254))
-
[`427cdd06c`](427cdd06c9)
add SystemdCgroup to default runtime options
- install-runhcs-shim: fetch target commit instead of tags
([#&#8203;12255](https://redirect.github.com/containerd/containerd/pull/12255))
-
[`0b35e19fb`](0b35e19fb1)
install-runhcs-shim: fetch target commit instead of tags
- Fix userns with container image VOLUME mounts that need copy
([#&#8203;12241](https://redirect.github.com/containerd/containerd/pull/12241))
-
[`3212afc2f`](3212afc2f2)
integration: Add test for directives with userns
-
[`b855c6e10`](b855c6e103)
cri: Fix userns with Dockerfile VOLUME mounts that need copy
- Fix overlayfs issues related to user namespace
([#&#8203;12223](https://redirect.github.com/containerd/containerd/pull/12223))
-
[`05c0c99f4`](05c0c99f43)
core/mount: Retry unmounting idmapped directories
-
[`afdede4ce`](afdede4ced)
core/mount: Test cleanup of DoPrepareIDMappedOverlay()
-
[`47205f814`](47205f814d)
core/mount: Properly cleanup on doPrepareIDMappedOverlay errors
-
[`6f4abd970`](6f4abd970a)
core/mount: Don't call nil function on errors
-
[`a2f0d65d7`](a2f0d65d78)
core/mount: Only idmap once per overlayfs, not per layer
-
[`1c32accd7`](1c32accd71)
Make ovl idmap mounts read-only
- ci: bump Go 1.23.12, 1.24.6
([#&#8203;12187](https://redirect.github.com/containerd/containerd/pull/12187))
-
[`9e72e91e6`](9e72e91e63)
ci: bump Go 1.23.12, 1.24.6
- Create bootstrap.json with 0644 permission
([#&#8203;12184](https://redirect.github.com/containerd/containerd/pull/12184))
-
[`009622e04`](009622e042)
fix: create bootstrap.json with 0644 permission
- Fix pidfd leak in UnshareAfterEnterUserns
([#&#8203;12178](https://redirect.github.com/containerd/containerd/pull/12178))
    -   [`5bec0a332`](https://redirec

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2025-11-20 20:33:06 +00:00
Pulumi Bot
c7ab0e0f35 Update GitHub Actions workflows. (#669)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 9575e75e5316d699a77abf48a351abe840e1bed5.
2025-11-20 05:54:04 +00:00
pulumi-renovate[bot]
b1e526630c Update module golang.org/x/crypto to v0.45.0 [SECURITY] (#668)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.39.0` -> `v0.45.0` |

### GitHub Vulnerability Alerts

#### [CVE-2025-58181](https://nvd.nist.gov/vuln/detail/CVE-2025-58181)

SSH servers parsing GSSAPI authentication requests do not validate the
number of mechanisms specified in the request, allowing an attacker to
cause unbounded memory consumption.

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2025-11-20 02:14:14 +00:00
Pulumi Bot
32ecb82eb6 Update GitHub Actions workflows. (#667)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f76cbff100ad8e6e3192b379edb5bcf1f536eb3e.
2025-11-15 05:55:02 +00:00
Pulumi Bot
77b931b32c Update GitHub Actions workflows. (#666)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ed916848970fd62ea0f62c7e6ac674d4d5ca05ef.
2025-11-14 05:58:25 +00:00
Pulumi Bot
487acd799c Update GitHub Actions workflows. (#663)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 962009a157587c5c11d686e51206a2d312bc4618.
2025-11-11 05:53:59 +00:00
Pulumi Bot
8e273d9f68 Update GitHub Actions workflows. (#662)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit 52b77e4c448dd747630cff0918ade69cef3b4f16.
2025-11-10 15:47:40 -08:00
Pulumi Bot
faffc8cc45 Update GitHub Actions workflows. (#633)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 5619381e924fbac90750f41b6a27cadcd11c4c2d.
2025-10-22 05:56:54 +00:00
Alberto Pose
2b1230f252 Introduce ${GOTEST} Makefile variable to override test runner. (#632)
Allow to use other tools like `gotestsum` locally.
2025-10-20 15:20:48 +01:00
Pulumi Bot
eaf5461bbc Update GitHub Actions workflows. (#631)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f0bcdaf5cb0825e542d0a2eb71f05d538135a9bc.
2025-10-18 05:52:38 +00:00
Alberto Pose
38e65a3f81 Remove URL and Token arguments from CacheFromGitHubActions. (#626)
Fixes #75

Arguments URL and Token have been removed but `$ACTIONS_CACHE_URL` and
`$ACTIONS_RUNTIME_TOKEN` env variables could be injected if desired.

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2025-10-17 11:00:40 +01:00
Pulumi Bot
1811524e66 Update GitHub Actions workflows. (#629)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 16969054030269fefacac22b8536d1f80ed8e2d9.
2025-10-16 05:52:39 +00:00
Pulumi Bot
361335bba0 Update GitHub Actions workflows. (#628)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 0fccf404186fee66f0a9bb9b53959a52b4812c5e.
2025-10-14 05:54:14 +00:00
Pulumi Bot
49deed7d9c Update GitHub Actions workflows. (#627)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit b4e68d0418afb9fa72c1e31347a01f7fae952eff.
2025-10-10 05:51:39 +00:00
Alberto Pose
ff8995c434 Move _index.md and installation-configuration.md into the repo. (#622)
Related to: https://github.com/pulumi/registry/pull/8814

Make this provider follow the Pulumi official convention of [using the
`_index.md` and
`installation-configuration.md`](https://www.pulumi.com/docs/iac/build-with-pulumi/publishing-packages/#write-documentation).
2025-10-09 09:34:35 +01:00
Pulumi Bot
c159079132 Update GitHub Actions workflows. (#624)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 45de636c4cb364e6fc2ab50006d5358239005657.
2025-10-09 05:52:11 +00:00
Pulumi Bot
24ebad1ee5 Update GitHub Actions workflows. (#623)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 93823adfede429861d981e43f485afda9292376e.
2025-10-08 05:55:33 +00:00
Alberto Pose
40c723d82f Remove installation of pulumi CLI and golangci-lint from Makefile (#621)
Installation of runtime and tools should now be done through `mise`.

In addition, the following binaries are included with `pulumi` CLI:

* pulumi-language-go
* pulumi-language-nodejs
* pulumi-language-python
* pulumi-language-java
* pulumi-language-dotnet
* pulumi-converter-yaml
2025-10-07 16:18:53 +01:00
Pulumi Bot
36362d0317 Update GitHub Actions workflows. (#620)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 23f84aba12118601865d1a686c2c46a4ec3fa729.
2025-10-03 22:26:52 +00:00
Pulumi Bot
0b684b81fb Update GitHub Actions workflows. (#619)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 58bbf9b943afc66c10382b6fa89dc3e226f18f20.
2025-10-03 05:53:37 +00:00
Pulumi Bot
ebf4290bb2 Update GitHub Actions workflows. (#617)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 72d9a2e28cf75e7d1ba2c5e6324d26546c95e4cb.
2025-10-02 05:55:45 +00:00
Pulumi Bot
c7b2867559 Update GitHub Actions workflows. (#616)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit d2d946e761bab19abc5e5a598d44cf709dae77e9.
2025-10-01 05:54:01 +00:00
Bryce Lampe
5e589f61ec Upgrade go-provider to 1.1.2 (#615)
Fixes https://github.com/pulumi/pulumi-docker-build/issues/579.
2025-09-30 16:40:35 -07:00
Pulumi Bot
5f0c2ede72 Update GitHub Actions workflows. (#613)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit f16439eadce749cfc5fc959f926069e5943f4640.
2025-09-29 22:24:54 +00:00
Pulumi Bot
d27e6d14db Update GitHub Actions workflows. (#612)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit e43a0e1c1f44e3e431240deb0ac363cf172ae9a9.
2025-09-29 15:36:43 -04:00
Cory Hall
6ae16f10ff chore: update modulePath in ci-mgmt (#607)
This is needed for https://github.com/pulumi/ci-mgmt/pull/1730
2025-09-29 12:01:37 -04:00
Pulumi Bot
f17e43bad7 Update GitHub Actions workflows. (#604)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 2b81d6d332c32c7ebc106fb53b745cbbfec266c7.
2025-09-16 05:49:46 +00:00
Pulumi Bot
bce330f598 Update GitHub Actions workflows. (#603)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 0337d8381eace02d1b6fb82d43e3ab543bf5774a.
2025-09-12 23:58:08 +00:00
Pulumi Bot
5107181566 Update GitHub Actions workflows. (#602)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit c390ce58d72b0eb947d844358c3204353b21839c.
2025-09-11 19:03:02 +00:00
Bryce Lampe
0a2dd6e758 Confirming ESC fixes (#599)
Validating https://github.com/pulumi/ci-mgmt/pull/1705.
2025-09-10 14:19:45 -07:00
Pulumi Bot
a0e387d0a8 Update GitHub Actions workflows. (#597)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit 42e0ba87f4de47d7ab085a3916669e193ec1ff4e.

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2025-09-10 19:49:21 +00:00
Bryce Lampe
daa144c232 Use ESC for secrets (#594)
Refs https://github.com/pulumi/ci-mgmt/issues/1481
2025-09-10 09:45:06 -07:00
Pulumi Bot
1203c3b31f Update GitHub Actions workflows. (#595)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit 4125efba3dbbc633190a388a9f8b0408d755089c.
2025-09-10 16:11:45 +00:00
Pulumi Bot
62ff8bf2d2 Update GitHub Actions workflows. (#593)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 2ce6f269d9892f74ed14f645f41e402e7ff8d416.

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2025-09-05 21:49:19 +00:00
Pulumi Bot
3b7e31b388 Automated upgrade: bump pulumi/pulumi to 3.192.0 (#592)
Automated upgrade: bump pulumi/pulumi to 3.192.0

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2025-09-05 14:36:43 -07:00
Pulumi Bot
c46d343c53 Update GitHub Actions workflows. (#586)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ed2094cef48b491325b4ceebfceb6c0a555f1c04.
2025-08-28 05:49:05 +00:00
Pulumi Bot
4166f9da1b Update GitHub Actions workflows. (#585)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 89dd865db8cef8be4f3f0a978cf8007892e51567.
2025-08-27 19:47:54 +00:00
Bryce Lampe
4e934974ee Update p-go-provider to fix version replacement behavior (#584)
Updates p-go-provider to pull in
https://github.com/pulumi/pulumi-go-provider/pull/410. In particular
this fixes an issue where the provider would get replaced on version
changes.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/581
2025-08-27 11:14:21 -07:00
Pulumi Bot
4262717644 Update GitHub Actions workflows. (#582)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 19c542b12a65e3f3ec1d8213111262a9887dcda0.
2025-08-26 05:48:46 +00:00
Pulumi Bot
997794b59f Update GitHub Actions workflows. (#580)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit dfe14f327ab8b4653dc5a4edf60e1f13814519e9.
2025-08-23 05:46:29 +00:00
Pulumi Bot
a168c92f12 Update GitHub Actions workflows. (#577)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit 9b60d6c643780f4a645273cb6a5b3dcce6687d94.
2025-08-15 21:38:53 +00:00
Pulumi Bot
91fdae679d Update GitHub Actions workflows. (#575)
This PR was automatically generated by the
update-workflows-single-bridged-provider workflow in the pulumi/ci-mgmt
repo, from commit 4ac37ece8be37ce71d07d3e42b89c7c306173b9b.
2025-08-15 16:45:42 +00:00
Pulumi Bot
ee4aa2505e Update GitHub Actions workflows. (#574)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f90df7559c86efa5ae3108b58c7d554865f2eb56.
2025-08-15 05:47:34 +00:00
Pulumi Bot
9fa5fcabe5 Update GitHub Actions workflows. (#572)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit b21f824c0283ef293cdf550403adf1d4bbfcfdb1.
2025-08-14 05:48:17 +00:00
102 changed files with 6937 additions and 5680 deletions

View File

@@ -4,23 +4,17 @@ major-version: 0
providerDefaultBranch: main providerDefaultBranch: main
providerVersion: github.com/pulumi/pulumi-docker-build/provider.Version providerVersion: github.com/pulumi/pulumi-docker-build/provider.Version
aws: true aws: true
modulePath: .
gcp: true gcp: true
sdkModuleDir: sdk/go/dockerbuild sdkModuleDir: sdk/go/dockerbuild
parallel: 3 parallel: 3
esc:
enabled: true
envOverride: 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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812 GOOGLE_PROJECT_NUMBER: "895284651812"
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}

4
.config/mise.test.toml Normal file
View File

@@ -0,0 +1,4 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
[tools]
"aqua:gotestyourself/gotestsum" = "1.12.0"

35
.config/mise.toml Normal file
View File

@@ -0,0 +1,35 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
# You can create your own root-level mise.toml file to override/augment this. See https://mise.jdx.dev/configuration.html
[env]
_.vfox-pulumi = { module_path = "." } # Sets GO_VERSION_MISE and PULUMI_VERSION_MISE
PULUMI_HOME = "{{config_root}}/.pulumi"
[tools]
# Runtimes
go = "{{ env.GO_VERSION_MISE }}"
node = '20.19.5'
python = '3.11.8'
"vfox:version-fox/vfox-dotnet" = "8.0.20" # vfox backend doesn't work on Windows, gives "error converting Lua table to PreInstall (no version returned from vfox plugin)" https://github.com/jdx/mise/discussions/5876 https://github.com/jdx/mise/discussions/5550
# Corretto version used as Java SE/OpenJDK version no longer offered
java = 'corretto-11'
# Executable tools
"github:pulumi/pulumi" = "{{ env.PULUMI_VERSION_MISE }}"
"github:pulumi/pulumictl" = '0.0.50'
"github:pulumi/schema-tools" = "0.6.0"
"go:github.com/pulumi/upgrade-provider" = "main"
"aqua:gradle/gradle-distributions" = '7.6.6'
golangci-lint = "2.9.0" # See note about about overrides if you need to customize this.
"npm:yarn" = "1.22.22"
[settings]
experimental = true # Required for Go binaries (e.g. pulumictl).
lockfile = false
http_retries = 3
pin = true # `mise use` should pin versions instead of defaulting to latest.
fetch_remote_versions_cache = "24h" # Mise queries versions even if they're pinned to confirm they exist. Reduce GitHub API calls by doing that less often.
[plugins]
vfox-pulumi = "https://github.com/pulumi/vfox-pulumi"

2
.gitattributes vendored
View File

@@ -1,2 +1,4 @@
sdk/**/* linguist-generated=true sdk/**/* linguist-generated=true
provider/internal/mock*.go linguist-generated=true provider/internal/mock*.go linguist-generated=true
.github/workflows/*.lock.yml linguist-generated=true merge=ours

View File

@@ -0,0 +1,19 @@
name: Download Provider Binary
description: Downloads the provider binary artifact and restores executable permissions
runs:
using: "composite"
steps:
- name: Download provider
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
shell: bash
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ github.workspace}}/bin
- name: Restore Binary Permissions
shell: bash
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print -exec chmod +x {} \;

20
.github/actions/download-sdk/action.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Download SDK
description: Downloads and extracts SDK artifacts for a specific language
inputs:
language:
description: 'The SDK language to download (nodejs, python, dotnet, java)'
required: true
runs:
using: "composite"
steps:
- name: Download SDK
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.language }}-sdk.tar.gz
path: ${{ github.workspace }}/sdk/
- name: UnTar SDK folder
shell: bash
run: tar -zxf ${{ github.workspace }}/sdk/${{ inputs.language }}.tar.gz -C ${{ github.workspace }}/sdk/${{ inputs.language }}

12
.github/actions/esc-action/action.yaml vendored Normal file
View File

@@ -0,0 +1,12 @@
name: "Load secrets"
description: |
This is a temporary action which assists with our migration to ESC. Instead
of surrounding every step that references secrets with an "if ESC" block, we
instead modify those steps to consume their secrets from this step's outputs.
Then, later, we can replace this action with esc-action to actually load
secrets from ESC.
inputs: {}
outputs: {}
runs:
using: "node20"
main: "index.js"

14
.github/actions/esc-action/index.js vendored Normal file
View File

@@ -0,0 +1,14 @@
const fs = require("fs");
const file = process.env["GITHUB_OUTPUT"];
var stream = fs.createWriteStream(file, { flags: "a" });
for (const [name, value] of Object.entries(process.env)) {
try {
stream.write(`${name}<<EEEOOOFFF\n${value}\nEEEOOOFFF\n`); // << syntax accommodates multiline strings.
} catch (err) {
console.log(`error: failed to set output for ${name}: ${err.message}`);
}
}
stream.end();

41
.github/actions/setup-tools/action.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Setup Tools
description: Installs all tools (Go, Node, Python, .NET, Java, Pulumi, etc.) using mise
inputs:
cache:
description: Enable caching
required: false
default: "false"
github_token:
description: GitHub token
required: true
runs:
using: "composite"
steps:
- name: Setup mise
uses: jdx/mise-action@b287efda3dc5f4f3c328507653b6617da783ff84
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.3.7
cache_save: ${{ inputs.cache }}
github_token: ${{ inputs.github_token }}
- name: Setup Go Cache
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with:
cache: ${{ inputs.cache }}
cache-dependency-path: |
provider/*.sum
upstream/*.sum
sdk/go/*.sum
sdk/*.sum
*.sum
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
# we don't set node-version because we install with mise.
# this step is needed to setup npm auth
registry-url: https://registry.npmjs.org

View File

@@ -0,0 +1,177 @@
---
description: GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
disable-model-invocation: true
---
# GitHub Agentic Workflows Agent
This agent helps you work with **GitHub Agentic Workflows (gh-aw)**, a CLI extension for creating AI-powered workflows in natural language using markdown files.
## What This Agent Does
This is a **dispatcher agent** that routes your request to the appropriate specialized prompt based on your task:
- **Creating new workflows**: Routes to `create` prompt
- **Updating existing workflows**: Routes to `update` prompt
- **Debugging workflows**: Routes to `debug` prompt
- **Upgrading workflows**: Routes to `upgrade-agentic-workflows` prompt
- **Creating report-generating workflows**: Routes to `report` prompt — consult this whenever the workflow posts status updates, audits, analyses, or any structured output as issues, discussions, or comments
- **Creating shared components**: Routes to `create-shared-agentic-workflow` prompt
- **Fixing Dependabot PRs**: Routes to `dependabot` prompt — use this when Dependabot opens PRs that modify generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`). Never merge those PRs directly; instead update the source `.md` files and rerun `gh aw compile --dependabot` to bundle all fixes
- **Analyzing test coverage**: Routes to `test-coverage` prompt — consult this whenever the workflow reads, analyzes, or reports on test coverage data from PRs or CI runs
Workflows may optionally include:
- **Project tracking / monitoring** (GitHub Projects updates, status reporting)
- **Orchestration / coordination** (one workflow assigning agents or dispatching and coordinating other workflows)
## Files This Applies To
- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
- Workflow lock files: `.github/workflows/*.lock.yml`
- Shared components: `.github/workflows/shared/*.md`
- Configuration: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/github-agentic-workflows.md
## Problems This Solves
- **Workflow Creation**: Design secure, validated agentic workflows with proper triggers, tools, and permissions
- **Workflow Debugging**: Analyze logs, identify missing tools, investigate failures, and fix configuration issues
- **Version Upgrades**: Migrate workflows to new gh-aw versions, apply codemods, fix breaking changes
- **Component Design**: Create reusable shared workflow components that wrap MCP servers
## How to Use
When you interact with this agent, it will:
1. **Understand your intent** - Determine what kind of task you're trying to accomplish
2. **Route to the right prompt** - Load the specialized prompt file for your task
3. **Execute the task** - Follow the detailed instructions in the loaded prompt
## Available Prompts
### Create New Workflow
**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/create-agentic-workflow.md
**Use cases**:
- "Create a workflow that triages issues"
- "I need a workflow to label pull requests"
- "Design a weekly research automation"
### Update Existing Workflow
**Load when**: User wants to modify, improve, or refactor an existing workflow
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/update-agentic-workflow.md
**Use cases**:
- "Add web-fetch tool to the issue-classifier workflow"
- "Update the PR reviewer to use discussions instead of issues"
- "Improve the prompt for the weekly-research workflow"
### Debug Workflow
**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/debug-agentic-workflow.md
**Use cases**:
- "Why is this workflow failing?"
- "Analyze the logs for workflow X"
- "Investigate missing tool calls in run #12345"
### Upgrade Agentic Workflows
**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/upgrade-agentic-workflows.md
**Use cases**:
- "Upgrade all workflows to the latest version"
- "Fix deprecated fields in workflows"
- "Apply breaking changes from the new release"
### Create a Report-Generating Workflow
**Load when**: The workflow being created or updated produces reports — recurring status updates, audit summaries, analyses, or any structured output posted as a GitHub issue, discussion, or comment
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/report.md
**Use cases**:
- "Create a weekly CI health report"
- "Post a daily security audit to Discussions"
- "Add a status update comment to open PRs"
### Create Shared Agentic Workflow
**Load when**: User wants to create a reusable workflow component or wrap an MCP server
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/create-shared-agentic-workflow.md
**Use cases**:
- "Create a shared component for Notion integration"
- "Wrap the Slack MCP server as a reusable component"
- "Design a shared workflow for database queries"
### Fix Dependabot PRs
**Load when**: User needs to close or fix open Dependabot PRs that update dependencies in generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`)
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/dependabot.md
**Use cases**:
- "Fix the open Dependabot PRs for npm dependencies"
- "Bundle and close the Dependabot PRs for workflow dependencies"
- "Update @playwright/test to fix the Dependabot PR"
### Analyze Test Coverage
**Load when**: The workflow reads, analyzes, or reports test coverage — whether triggered by a PR, a schedule, or a slash command. Always consult this prompt before designing the coverage data strategy.
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/test-coverage.md
**Use cases**:
- "Create a workflow that comments coverage on PRs"
- "Analyze coverage trends over time"
- "Add a coverage gate that blocks PRs below a threshold"
## Instructions
When a user interacts with you:
1. **Identify the task type** from the user's request
2. **Load the appropriate prompt** from the GitHub repository URLs listed above
3. **Follow the loaded prompt's instructions** exactly
4. **If uncertain**, ask clarifying questions to determine the right prompt
## Quick Reference
```bash
# Initialize repository for agentic workflows
gh aw init
# Generate the lock file for a workflow
gh aw compile [workflow-name]
# Debug workflow runs
gh aw logs [workflow-name]
gh aw audit <run-id>
# Upgrade workflows
gh aw fix --write
gh aw compile --validate
```
## Key Features of gh-aw
- **Natural Language Workflows**: Write workflows in markdown with YAML frontmatter
- **AI Engine Support**: Copilot, Claude, Codex, or custom engines
- **MCP Server Integration**: Connect to Model Context Protocol servers for tools
- **Safe Outputs**: Structured communication between AI and GitHub API
- **Strict Mode**: Security-first validation and sandboxing
- **Shared Components**: Reusable workflow building blocks
- **Repo Memory**: Persistent git-backed storage for agents
- **Sandboxed Execution**: All workflows run in the Agent Workflow Firewall (AWF) sandbox, enabling full `bash` and `edit` tools by default
## Important Notes
- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/github-agentic-workflows.md for complete documentation
- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
- Follow security best practices: minimal permissions, explicit network access, no template injection
- **Single-file output**: When creating a workflow, produce exactly **one** workflow `.md` file. Do not create separate documentation files (architecture docs, runbooks, usage guides, etc.). If documentation is needed, add a brief `## Usage` section inside the workflow file itself.

View File

@@ -15,31 +15,13 @@ on:
- "**" - "**"
workflow_dispatch: {} workflow_dispatch: {}
env: 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 PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x" GOVERSION: "1.21.x"
NODEVERSION: "20.x" NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8" PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x" DOTNETVERSION: "8.0.x"
JAVAVERSION: "11" JAVAVERSION: "11"
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -48,34 +30,52 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
jobs: jobs:
prerequisites: prerequisites:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: prerequisites name: prerequisites
permissions:
id-token: write # For ESC secrets.
pull-requests: write # For schema check comment.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} cache: 'true'
cache-dependency-path: "**/*.sum" github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -93,7 +93,7 @@ jobs:
echo 'EOF'; echo 'EOF';
} >> "$GITHUB_ENV" } >> "$GITHUB_ENV"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]' - if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
@@ -123,79 +123,34 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
sdk/go/*/pulumi-plugin.json \
sdk/go/*/internal/pulumiUtilities.go \
sdk/nodejs/package.json
git commit -m 'Commit 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 - run: git status --porcelain
- name: Tar provider binaries - name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
build_sdks: build_sdks:
needs: prerequisites needs: prerequisites
runs-on: pulumi-ubuntu-8core runs-on: pulumi-ubuntu-8core
@@ -209,61 +164,42 @@ jobs:
- go - go
- java - java
name: build_sdks name: build_sdks
permissions:
pull-requests: write # For Renovate SDK updates.
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK - name: Generate SDK
run: make generate_${{ matrix.language }} run: make generate_${{ matrix.language }}
- name: Build SDK - name: Build SDK
@@ -279,78 +215,47 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
sdk/go/*/pulumi-plugin.json \
sdk/go/*/internal/pulumiUtilities.go \
sdk/nodejs/package.json
git commit -m 'Commit 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 - run: git status --porcelain
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30 retention-days: 30
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
tag_release_if_labeled_needs_release: tag_release_if_labeled_needs_release:
name: Tag release if labeled as needs-release name: Tag release if labeled as needs-release
needs: publish needs: publish
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- name: check if this commit needs release - name: check if this commit needs release
if: ${{ env.RELEASE_BOT_ENDPOINT != '' }} if: ${{ env.RELEASE_BOT_ENDPOINT != '' }}
uses: pulumi/action-release-by-pr-label@main uses: pulumi/action-release-by-pr-label@main
@@ -358,10 +263,10 @@ jobs:
command: "release-if-needed" command: "release-if-needed"
repo: ${{ github.repository }} repo: ${{ github.repository }}
commit: ${{ github.sha }} commit: ${{ github.sha }}
slack_channel: ${{ secrets.RELEASE_OPS_SLACK_CHANNEL }} slack_channel: C02MGR8JVST
env: env:
RELEASE_BOT_ENDPOINT: ${{ secrets.RELEASE_BOT_ENDPOINT }} RELEASE_BOT_ENDPOINT: ${{ steps.esc-secrets.outputs.RELEASE_BOT_ENDPOINT }}
RELEASE_BOT_KEY: ${{ secrets.RELEASE_BOT_KEY }} RELEASE_BOT_KEY: ${{ steps.esc-secrets.outputs.RELEASE_BOT_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test: test:
@@ -381,72 +286,45 @@ jobs:
name: test name: test
permissions: permissions:
contents: read contents: read
id-token: write id-token: write # For ESC secrets and Pulumi access token OIDC.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK - name: Download SDK
if: ${{ matrix.language != 'yaml' }} if: ${{ matrix.language != 'yaml' }}
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: ./.github/actions/download-sdk
with: with:
name: ${{ matrix.language }}-sdk.tar.gz language: ${{ matrix.language }}
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 - name: Update path
run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH" run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH"
- name: Install Node dependencies - name: Install Node dependencies
@@ -467,13 +345,13 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false export-environment-variables: false
- name: Export AWS Credentials - name: Export AWS Credentials
uses: pulumi/esc-action@efb0bc8946938f0dfbfa00e829196ec95f0d0ea7 # v1.4.0 uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
env: env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }} PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with: with:
environment: logins/pulumi-ci environment: logins/pulumi-ci
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@b7593ed2efd1c1617e1b0254da33b86225adb2a5 # v2.1.12 uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -481,7 +359,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4 uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -494,34 +372,55 @@ jobs:
set -euo pipefail set -euo pipefail
cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test needs: test
name: publish name: publish
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
@@ -531,84 +430,86 @@ jobs:
haskell: true haskell: true
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1 uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37 # v6.1.0
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-secret-access-key: ${{ steps.esc-secrets.outputs.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200 role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ steps.esc-secrets.outputs.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with: with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish_sdk: publish_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: publish needs: publish
name: publish_sdk name: publish_sdk
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Setup Tools
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -616,7 +517,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -624,7 +525,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -636,48 +537,26 @@ jobs:
- name: Publish SDKs - name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env: env:
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} NUGET_PUBLISH_KEY: ${{ steps.esc-secrets.outputs.NUGET_PUBLISH_KEY }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ steps.esc-secrets.outputs.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
PYPI_USERNAME: __token__ PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} PYPI_PASSWORD: ${{ steps.esc-secrets.outputs.PYPI_API_TOKEN }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY_ID: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_KEY: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} SIGNING_PASSWORD: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_PASSWORD }}
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} PUBLISH_REPO_USERNAME: ${{ steps.esc-secrets.outputs.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} PUBLISH_REPO_PASSWORD: ${{ steps.esc-secrets.outputs.OSSRH_PASSWORD }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
lint: lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
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@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.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@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml
working-directory: provider
name: lint name: lint
if: github.event_name == 'repository_dispatch' || uses: ./.github/workflows/lint.yml
github.event.pull_request.head.repo.full_name == github.repository secrets: inherit

139
.github/workflows/claude.yml vendored Normal file
View File

@@ -0,0 +1,139 @@
name: Claude Code
on:
# Responds to @claude mentions in comments.
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened]
pull_request_review:
types: [submitted]
jobs:
claude:
# Only run when @claude is mentioned by a trusted user (OWNER, MEMBER, or COLLABORATOR)
# Note: the claude-code-action can only be triggered by users with write access to the repository so this is extra
# see https://github.com/anthropics/claude-code-action/blob/main/docs/security.md
if: |
(github.event_name == 'issue_comment' &&
contains(github.event.comment.body, '@claude') &&
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)) ||
(github.event_name == 'pull_request_review_comment' &&
contains(github.event.comment.body, '@claude') &&
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)) ||
(github.event_name == 'pull_request_review' &&
contains(github.event.review.body, '@claude') &&
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.review.author_association)) ||
(github.event_name == 'issues' &&
(contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')) &&
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association))
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
- name: Checkout PR head (if applicable)
if: ${{ github.event.pull_request.number || (github.event.issue.pull_request && github.event.issue.number) }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number || github.event.issue.number }}
run: gh pr checkout "$PR_NUMBER"
- name: Setup mise
uses: jdx/mise-action@b287efda3dc5f4f3c328507653b6617da783ff84
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.3.7
github_token: ${{ secrets.GITHUB_TOKEN }}
# only saving the cache in the prerequisites job
cache_save: false
- name: Set git identity
run: |-
git config --global user.name "claude[bot]"
git config --global user.email "bot@pulumi.com"
shell: bash
- name: Prepare local workspace
# this runs install_plugins and upstream
run: make prepare_local_workspace
- name: Run Claude Code Review
# Comment must contain '@claude review'
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude review')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude review')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude review'))
id: claude-review
uses: anthropics/claude-code-action@ef50f123a3a9be95b60040d042717517407c7256 # v1
with:
anthropic_api_key: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number || github.event.issue.number }}
Review this pull request using the provider-code-review skill for guidelines.
The PR branch is already checked out in the current working directory.
Use `gh pr comment` for top-level feedback.
Use `mcp__github_inline_comment__create_inline_comment` to highlight specific code issues.
Only post GitHub comments - don't submit review text as messages.
# Taken from https://github.com/anthropics/claude-code/blob/main/plugins/code-review/commands/code-review.md
claude_args: |
--allowedTools "Skill,Bash(gh issue view *),Bash(gh search *),Bash(gh issue list *),Bash(gh pr comment *),Bash(gh pr diff *),Bash(gh pr view *),Bash(gh pr list *),mcp__github_inline_comment__create_inline_comment"
- name: Run Claude Code
# Comment must contain '@claude', but not '@claude review'
if: |
!contains(github.event.comment.body, '@claude review') &&
!contains(github.event.review.body, '@claude review')
id: claude-action
uses: anthropics/claude-code-action@ef50f123a3a9be95b60040d042717517407c7256 # v1
with:
anthropic_api_key: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
# This allows claude to read github action logs
additional_permissions: |
actions: read
# Sandbox settings: --allowedTools controls which tools Claude can invoke,
# but the sandbox also enforces OS-level filesystem restrictions. Edit()
# rules in permissions.allow control all bash filesystem writes (mkdir,
# output redirection, etc.), not just the Edit tool. Without these, commands
# like `mkdir .pulumi` or `cmd > file.txt` would be blocked by the sandbox.
settings: |
{
"permissions": {
"allow": ["Edit(./**)", "Edit(/tmp/**)"]
}
}
claude_args: |
--max-turns 50
--allowedTools "Skill,Edit,MultiEdit,Write,Read,Glob,Grep,LS,Bash(upgrade-provider *),Bash(./scripts/upstream.sh *),Bash(git *),Bash(GIT_EDITOR=* git *),Bash(make *),Bash(gh *),Bash(mkdir *),Bash(go mod tidy *),Bash(ls *),Bash(test *),Bash(cat *),Bash(pwd),Bash(head *),Bash(tail *),Bash(tee *),Bash(rg *),Bash(grep *),Bash(sed *),Bash(awk *),Bash(find *)"
# If the claude action fails you don't get any logs on what claude was doing
# Uploading the artifact allows you to download the artifact from the UI
- name: Upload Claude review output on failure
if: failure() && steps.claude-review.outputs.execution_file
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: claude-review-execution-log
path: ${{ steps.claude-review.outputs.execution_file }}
retention-days: 7
- name: Upload Claude output on failure
if: failure() && steps.claude-action.outputs.execution_file
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: claude-execution-log
path: ${{ steps.claude-action.outputs.execution_file }}
retention-days: 7

View File

@@ -1,14 +1,6 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt # WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
env: env:
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -17,16 +9,33 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs: jobs:
command-dispatch-for-testing: command-dispatch-for-testing:
name: command-dispatch-for-testing name: command-dispatch-for-testing
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false
- uses: peter-evans/slash-command-dispatch@13bc09769d122a64f75aa5037256f6f2d78be8c4 # v4 - env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: peter-evans/slash-command-dispatch@5c11dc7efead556e3bdabf664302212f79eb26fa # v5
with: with:
commands: | commands: |
run-acceptance-tests run-acceptance-tests
@@ -35,7 +44,7 @@ jobs:
permission: write permission: write
reaction-token: ${{ secrets.GITHUB_TOKEN }} reaction-token: ${{ secrets.GITHUB_TOKEN }}
repository: pulumi/pulumi-docker-build repository: pulumi/pulumi-docker-build
token: ${{ secrets.PULUMI_BOT_TOKEN }} token: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
name: command-dispatch name: command-dispatch
on: on:
issue_comment: issue_comment:

View File

@@ -1,6 +1,8 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
name: "Comment on stale issues" name: "Comment on stale issues"
on: on:
workflow_dispatch: {}
schedule: schedule:
- cron: "46 4 * * *" # run once per day - cron: "46 4 * * *" # run once per day
@@ -9,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Stale issue job name: Stale issue job
steps: steps:
- uses: aws-actions/stale-issue-cleanup@5650b49bcd757a078f6ca06c373d7807b773f9bc #v7.1.0 - uses: pose/stale-issue-cleanup@d2922f61fc5669f4154408689f9bb2a981996112
with: with:
issue-types: issues # only look at issues (ignore pull-requests) issue-types: issues # only look at issues (ignore pull-requests)

View File

@@ -1,25 +1,23 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt # WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs: jobs:
warn_codegen: warn_codegen:
name: warn_codegen name: warn_codegen
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false
- id: schema_changed - id: schema_changed
name: Check for diff in schema name: Check for diff in schema
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
with: with:
filters: "changed: 'provider/cmd/**/schema.json'" filters: "changed: 'provider/cmd/**/schema.json'"
- id: sdk_changed - id: sdk_changed
if: steps.schema_changed.outputs.changed == 'false' if: steps.schema_changed.outputs.changed == 'false'
name: Check for diff in sdk/** name: Check for diff in sdk/**
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
with: with:
filters: "changed: 'sdk/**'" filters: "changed: 'sdk/**'"
- if: steps.sdk_changed.outputs.changed == 'true' && - if: steps.sdk_changed.outputs.changed == 'true' &&

1222
.github/workflows/docker-build-pr-rereview.lock.yml generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
---
description: Run PR re-review on explicit maintainer slash command.
timeout-minutes: 15
strict: true
on:
slash_command:
name: review-again
events: [pull_request_comment, pull_request_review_comment]
imports:
- shared/review.md
- shared/plugins/code-review/code-review.md
permissions:
contents: read
pull-requests: read
id-token: write
source: pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-rereview.md@734ef41746387a6818fd8ac3e619c9fd81ac6957
---
# Internal PR Re-Review (Slash Command)

1182
.github/workflows/docker-build-pr-review.lock.yml generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
---
description: Automated PR review for trusted internal contributors.
timeout-minutes: 15
strict: true
permissions:
contents: read
pull-requests: read
id-token: write
on:
pull_request:
types: [opened]
workflow_dispatch:
inputs:
pr_number:
description: "Pull request number to review"
required: true
type: string
imports:
- shared/review.md
- shared/plugins/code-review/code-review.md
source: pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-review.md@734ef41746387a6818fd8ac3e619c9fd81ac6957
---
# Internal Trusted PR Reviewer

View File

@@ -0,0 +1,25 @@
permissions: write-all # Equivalent to default permissions plus id-token: write
name: Export secrets to ESC
on: [workflow_dispatch]
jobs:
export-to-esc:
runs-on: ubuntu-latest
name: export GitHub secrets to ESC
steps:
- name: Generate a GitHub token
id: generate-token
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3
with:
app-id: 1256780 # Export Secrets GitHub App
private-key: ${{ secrets.EXPORT_SECRETS_PRIVATE_KEY }}
- name: Export secrets to ESC
uses: pulumi/esc-export-secrets-action@9d6485759b6adff2538ae91f1b77cc96265c9dad # v1
with:
organization: pulumi
org-environment: imports/github-secrets
exclude-secrets: EXPORT_SECRETS_PRIVATE_KEY
github-token: ${{ steps.generate-token.outputs.token }}
oidc-auth: true
oidc-requested-token-type: urn:pulumi:token-type:access_token:organization
env:
GITHUB_SECRETS: ${{ toJSON(secrets) }}

66
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
name: lint
on:
workflow_call:
inputs: {}
env:
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
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs:
lint:
name: lint
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Setup mise
uses: jdx/mise-action@b287efda3dc5f4f3c328507653b6617da783ff84
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.3.7
github_token: ${{ steps.app-auth.outputs.token }}
cache_save: false # A different job handles caching our tools.
- name: prepare workspace
continue-on-error: true
run: make prepare_local_workspace
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: lint
run: make lint

View File

@@ -6,31 +6,13 @@ on:
tags: tags:
- v*.*.*-** - v*.*.*-**
env: 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 PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x" GOVERSION: "1.21.x"
NODEVERSION: "20.x" NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8" PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x" DOTNETVERSION: "8.0.x"
JAVAVERSION: "11" JAVAVERSION: "11"
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -39,35 +21,53 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
IS_PRERELEASE: true IS_PRERELEASE: true
jobs: jobs:
prerequisites: prerequisites:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: prerequisites name: prerequisites
permissions:
id-token: write # For ESC secrets.
pull-requests: write # For schema check comment.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} cache: 'true'
cache-dependency-path: "**/*.sum" github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -85,7 +85,7 @@ jobs:
echo 'EOF'; echo 'EOF';
} >> "$GITHUB_ENV" } >> "$GITHUB_ENV"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]' - if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
@@ -115,79 +115,34 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
sdk/go/*/pulumi-plugin.json \
sdk/go/*/internal/pulumiUtilities.go \
sdk/nodejs/package.json
git commit -m 'Commit 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 - run: git status --porcelain
- name: Tar provider binaries - name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
build_sdks: build_sdks:
needs: prerequisites needs: prerequisites
runs-on: pulumi-ubuntu-8core runs-on: pulumi-ubuntu-8core
@@ -201,61 +156,42 @@ jobs:
- go - go
- java - java
name: build_sdks name: build_sdks
permissions:
pull-requests: write # For Renovate SDK updates.
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK - name: Generate SDK
run: make generate_${{ matrix.language }} run: make generate_${{ matrix.language }}
- name: Build SDK - name: Build SDK
@@ -271,71 +207,24 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit ${{ matrix.language }} SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
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 - run: git status --porcelain
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
test: test:
runs-on: pulumi-ubuntu-8core runs-on: pulumi-ubuntu-8core
needs: needs:
@@ -353,72 +242,45 @@ jobs:
name: test name: test
permissions: permissions:
contents: read contents: read
id-token: write id-token: write # For ESC secrets and Pulumi access token OIDC.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK - name: Download SDK
if: ${{ matrix.language != 'yaml' }} if: ${{ matrix.language != 'yaml' }}
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: ./.github/actions/download-sdk
with: with:
name: ${{ matrix.language }}-sdk.tar.gz language: ${{ matrix.language }}
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 - name: Update path
run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH" run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH"
- name: Install Node dependencies - name: Install Node dependencies
@@ -439,13 +301,13 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false export-environment-variables: false
- name: Export AWS Credentials - name: Export AWS Credentials
uses: pulumi/esc-action@efb0bc8946938f0dfbfa00e829196ec95f0d0ea7 # v1.4.0 uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
env: env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }} PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with: with:
environment: logins/pulumi-ci environment: logins/pulumi-ci
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@b7593ed2efd1c1617e1b0254da33b86225adb2a5 # v2.1.12 uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -453,7 +315,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4 uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -466,34 +328,55 @@ jobs:
set -euo pipefail set -euo pipefail
cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test needs: test
name: publish name: publish
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
@@ -503,84 +386,86 @@ jobs:
haskell: true haskell: true
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1 uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37 # v6.1.0
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-secret-access-key: ${{ steps.esc-secrets.outputs.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200 role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ steps.esc-secrets.outputs.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with: with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish_sdk: publish_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: publish needs: publish
name: publish_sdk name: publish_sdk
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Setup Tools
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -588,7 +473,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -596,7 +481,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -608,58 +493,61 @@ jobs:
- name: Publish SDKs - name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env: env:
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} NUGET_PUBLISH_KEY: ${{ steps.esc-secrets.outputs.NUGET_PUBLISH_KEY }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ steps.esc-secrets.outputs.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
PYPI_USERNAME: __token__ PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} PYPI_PASSWORD: ${{ steps.esc-secrets.outputs.PYPI_API_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish_java_sdk: publish_java_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
continue-on-error: true continue-on-error: true
needs: publish needs: publish
name: publish_java_sdk name: publish_java_sdk
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download java SDK - name: Download java SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: java-sdk.tar.gz name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -667,34 +555,36 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java ${{github.workspace}}/sdk/java
- name: Setup Gradle - name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2 uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Publish Java SDK - name: Publish Java SDK
run: gradle -p ./sdk/java publishToSonatype closeAndReleaseSonatypeStagingRepository run: gradle -p ./sdk/java publishToSonatype closeAndReleaseSonatypeStagingRepository
env: env:
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }} PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY_ID: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_KEY: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} SIGNING_PASSWORD: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_PASSWORD }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} PUBLISH_REPO_PASSWORD: ${{ steps.esc-secrets.outputs.OSSRH_PASSWORD }}
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} PUBLISH_REPO_USERNAME: ${{ steps.esc-secrets.outputs.OSSRH_USERNAME }}
publish_go_sdk: publish_go_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: publish-go-sdk name: publish-go-sdk
needs: publish_sdk needs: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download go SDK - name: Download go SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: go-sdk.tar.gz name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/

View File

@@ -3,41 +3,14 @@
name: pull-request name: pull-request
on: on:
pull_request_target: {} pull_request_target: {}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
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_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
jobs: jobs:
comment-on-pr: comment-on-pr:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: comment-on-pr name: comment-on-pr
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- name: Comment PR - name: Comment PR

View File

@@ -7,31 +7,13 @@ on:
- v*.*.* - v*.*.*
- "!v*.*.*-**" - "!v*.*.*-**"
env: 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 PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x" GOVERSION: "1.21.x"
NODEVERSION: "20.x" NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8" PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x" DOTNETVERSION: "8.0.x"
JAVAVERSION: "11" JAVAVERSION: "11"
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -40,34 +22,52 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
jobs: jobs:
prerequisites: prerequisites:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: prerequisites name: prerequisites
permissions:
id-token: write # For ESC secrets.
pull-requests: write # For schema check comment.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} cache: 'true'
cache-dependency-path: "**/*.sum" github_token: ${{ steps.app-auth.outputs.token }}
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -85,7 +85,7 @@ jobs:
echo 'EOF'; echo 'EOF';
} >> "$GITHUB_ENV" } >> "$GITHUB_ENV"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]' - if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
@@ -115,79 +115,34 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
sdk/go/*/pulumi-plugin.json \
sdk/go/*/internal/pulumiUtilities.go \
sdk/nodejs/package.json
git commit -m 'Commit 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 - run: git status --porcelain
- name: Tar provider binaries - name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
build_sdks: build_sdks:
needs: prerequisites needs: prerequisites
runs-on: pulumi-ubuntu-8core runs-on: pulumi-ubuntu-8core
@@ -201,61 +156,42 @@ jobs:
- go - go
- java - java
name: build_sdks name: build_sdks
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK - name: Generate SDK
run: make generate_${{ matrix.language }} run: make generate_${{ matrix.language }}
- name: Build SDK - name: Build SDK
@@ -271,71 +207,24 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
- name: Commit SDK changes for Renovate sdk/java/build.gradle
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/*.*.csproj \
sdk/dotnet/version.txt \
sdk/go/*/pulumi-plugin.json \
sdk/go/*/internal/pulumiUtilities.go \
sdk/nodejs/package.json
git commit -m 'Commit 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 - run: git status --porcelain
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
test: test:
runs-on: pulumi-ubuntu-8core runs-on: pulumi-ubuntu-8core
needs: needs:
@@ -353,72 +242,45 @@ jobs:
name: test name: test
permissions: permissions:
contents: read contents: read
id-token: write id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum" - name: Download Provider Binary
- name: Install pulumictl uses: ./.github/actions/download-provider
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK - name: Download SDK
if: ${{ matrix.language != 'yaml' }} if: ${{ matrix.language != 'yaml' }}
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: ./.github/actions/download-sdk
with: with:
name: ${{ matrix.language }}-sdk.tar.gz language: ${{ matrix.language }}
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 - name: Update path
run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH" run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH"
- name: Install Node dependencies - name: Install Node dependencies
@@ -439,13 +301,13 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false export-environment-variables: false
- name: Export AWS Credentials - name: Export AWS Credentials
uses: pulumi/esc-action@efb0bc8946938f0dfbfa00e829196ec95f0d0ea7 # v1.4.0 uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
env: env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }} PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with: with:
environment: logins/pulumi-ci environment: logins/pulumi-ci
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@b7593ed2efd1c1617e1b0254da33b86225adb2a5 # v2.1.12 uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -453,7 +315,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4 uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -466,34 +328,55 @@ jobs:
set -euo pipefail set -euo pipefail
cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
env:
GTIHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test needs: test
name: publish name: publish
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space - name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with: with:
@@ -503,84 +386,86 @@ jobs:
haskell: true haskell: true
swap-storage: true swap-storage: true
large-packages: false large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Configure AWS Credentials - name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1 uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37 # v6.1.0
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2 aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-secret-access-key: ${{ steps.esc-secrets.outputs.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200 role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} role-to-assume: ${{ steps.esc-secrets.outputs.AWS_UPLOAD_ROLE_ARN }}
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
env: env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }} GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with: with:
args: -p 3 release --clean --timeout 60m0s args: -p 3 release --clean --timeout 60m0s
version: latest version: latest
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing binaries author_name: Failure in publishing binaries
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish_sdk: publish_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: publish needs: publish
name: publish_sdks name: publish_sdks
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo - name: Checkout Scripts Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
path: ci-scripts path: ci-scripts
repository: pulumi/scripts repository: pulumi/scripts
- run: echo "ci-scripts" >> .git/info/exclude - run: echo "ci-scripts" >> .git/info/exclude
- name: Install Go - name: Setup Tools
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK - name: Download python SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: python-sdk.tar.gz name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -588,7 +473,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python ${{github.workspace}}/sdk/python
- name: Download dotnet SDK - name: Download dotnet SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: dotnet-sdk.tar.gz name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -596,7 +481,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet ${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK - name: Download nodejs SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: nodejs-sdk.tar.gz name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -608,58 +493,61 @@ jobs:
- name: Publish SDKs - name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env: env:
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} NUGET_PUBLISH_KEY: ${{ steps.esc-secrets.outputs.NUGET_PUBLISH_KEY }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ steps.esc-secrets.outputs.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all PYPI_PUBLISH_ARTIFACTS: all
PYPI_USERNAME: __token__ PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} PYPI_PASSWORD: ${{ steps.esc-secrets.outputs.PYPI_API_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in publishing SDK author_name: Failure in publishing SDK
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
publish_java_sdk: publish_java_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
continue-on-error: true continue-on-error: true
needs: publish needs: publish
name: publish_java_sdk name: publish_java_sdk
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download java SDK - name: Download java SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: java-sdk.tar.gz name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -667,34 +555,36 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java ${{github.workspace}}/sdk/java
- name: Setup Gradle - name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2 uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
with: with:
gradle-version: "7.6" gradle-version: "7.6"
- name: Publish Java SDK - name: Publish Java SDK
run: gradle -p ./sdk/java publishToSonatype closeAndReleaseSonatypeStagingRepository run: gradle -p ./sdk/java publishToSonatype closeAndReleaseSonatypeStagingRepository
env: env:
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }} PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} SIGNING_KEY_ID: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} SIGNING_KEY: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} SIGNING_PASSWORD: ${{ steps.esc-secrets.outputs.JAVA_SIGNING_PASSWORD }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} PUBLISH_REPO_PASSWORD: ${{ steps.esc-secrets.outputs.OSSRH_PASSWORD }}
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} PUBLISH_REPO_USERNAME: ${{ steps.esc-secrets.outputs.OSSRH_USERNAME }}
publish_go_sdk: publish_go_sdk:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: publish-go-sdk name: publish-go-sdk
needs: publish_sdk needs: publish_sdk
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download go SDK - name: Download go SDK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: go-sdk.tar.gz name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -714,14 +604,36 @@ jobs:
dispatch_docs_build: dispatch_docs_build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: publish_go_sdk needs: publish_go_sdk
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Install pulumictl - name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with: with:
repo: pulumi/pulumictl repo: pulumi/pulumictl
- name: Dispatch Event - name: Dispatch Event
run: pulumictl create docs-build pulumi-${{ env.PROVIDER }} run: pulumictl create docs-build pulumi-${{ env.PROVIDER }}
"${GITHUB_REF#refs/tags/}" "${GITHUB_REF#refs/tags/}"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
name: dispatch_docs_build name: dispatch_docs_build

View File

@@ -11,9 +11,18 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- name: Should release PR - name: Should release PR
uses: pulumi/action-release-by-pr-label@main uses: pulumi/action-release-by-pr-label@main
with: with:
@@ -21,14 +30,14 @@ jobs:
repo: ${{ github.repository }} repo: ${{ github.repository }}
pr: ${{ github.event.client_payload.pull_request.number }} pr: ${{ github.event.client_payload.pull_request.number }}
version: ${{ github.event.client_payload.slash_command.args.all }} version: ${{ github.event.client_payload.slash_command.args.all }}
slack_channel: ${{ secrets.RELEASE_OPS_STAGING_SLACK_CHANNEL }} slack_channel: ${{ steps.esc-secrets.outputs.RELEASE_OPS_STAGING_SLACK_CHANNEL }}
env: env:
RELEASE_BOT_ENDPOINT: ${{ secrets.RELEASE_BOT_ENDPOINT }} RELEASE_BOT_ENDPOINT: ${{ steps.esc-secrets.outputs.RELEASE_BOT_ENDPOINT }}
RELEASE_BOT_KEY: ${{ secrets.RELEASE_BOT_KEY }} RELEASE_BOT_KEY: ${{ steps.esc-secrets.outputs.RELEASE_BOT_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: failure() - if: failure()
name: Notify failure name: Notify failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
@@ -37,7 +46,7 @@ jobs:
"release command failed: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" "release command failed: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- if: success() - if: success()
name: Notify success name: Notify success
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }}

View File

@@ -10,24 +10,13 @@ on:
- CHANGELOG.md - CHANGELOG.md
workflow_dispatch: {} workflow_dispatch: {}
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x" GOVERSION: "1.21.x"
NODEVERSION: "20.x" NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8" PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x" DOTNETVERSION: "8.0.x"
JAVAVERSION: "11" JAVAVERSION: "11"
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -36,54 +25,78 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }} PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }}
jobs: jobs:
comment-notification: comment-notification:
if: github.event_name == 'repository_dispatch'
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: comment-notification name: comment-notification
steps: steps:
- name: Checkout Repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }}
- name: Create URL to the run output - name: Create URL to the run output
id: vars id: vars
run: echo run: echo
"run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" "run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
>> "$GITHUB_OUTPUT" >> "$GITHUB_OUTPUT"
- name: Update with Result - name: Update with Result
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
with: with:
token: ${{ secrets.PULUMI_BOT_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
issue-number: ${{ github.event.client_payload.github.payload.issue.number }} issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}" body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}"
if: github.event_name == 'repository_dispatch'
prerequisites: prerequisites:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: prerequisites name: prerequisites
permissions:
id-token: write # For ESC secrets.
pull-requests: write # For schema check comment.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
persist-credentials: false persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }} ref: ${{ env.PR_COMMIT_SHA }}
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} cache: 'true'
cache-dependency-path: "**/*.sum" github_token: ${{ steps.app-auth.outputs.token }}
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- if: github.event_name == 'pull_request' - if: github.event_name == 'pull_request'
name: Install Schema Tools name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with: with:
repo: pulumi/schema-tools repo: pulumi/schema-tools
- name: Build codegen binaries - name: Build codegen binaries
@@ -101,7 +114,7 @@ jobs:
echo 'EOF'; echo 'EOF';
} >> "$GITHUB_ENV" } >> "$GITHUB_ENV"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]' - if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
name: Comment on PR with Details of Schema Check name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1 uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
@@ -131,14 +144,17 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
sdk/java/build.gradle
# This worktree check is a safeguard against someone forgetting to
# re-build and commit locally, but we handle that commit automatically in
# the case of dependency bumps.
continue-on-error: ${{ contains(github.actor, 'renovate') }}
- name: Commit SDK changes for Renovate - name: Commit SDK changes for Renovate
if: failure() && steps.worktreeClean.outcome == 'failure' && if: steps.worktreeClean.outcome == 'failure' &&
contains(github.actor, 'renovate') && github.event_name == contains(github.actor, 'renovate') && github.event_name ==
'pull_request' 'pull_request'
shell: bash shell: bash
run: > run: >
git diff --quiet -- sdk && echo "no changes to sdk" && exit
git config --global user.email "bot@pulumi.com" git config --global user.email "bot@pulumi.com"
git config --global user.name "pulumi-bot" git config --global user.name "pulumi-bot"
@@ -153,12 +169,11 @@ jobs:
# Apply and add our changes, but don't commit any files we expect to # Apply and add our changes, but don't commit any files we expect to
# always change due to versioning. # always change due to versioning.
git stash pop git stash pop
git add sdk git add sdk provider/cmd/pulumi-resource-docker-build/schema.json
git reset sdk/python/*/pulumi-plugin.json \ git reset sdk/python/*/pulumi-plugin.json \
sdk/python/pyproject.toml \ sdk/python/pyproject.toml \
@@ -171,12 +186,10 @@ jobs:
git commit -m 'Commit SDK for Renovate' git commit -m 'Commit SDK for Renovate'
# Push with pulumi-bot credentials to trigger a re-run of the # Push with pulumi-bot credentials to trigger a re-run of the
# workflow. https://github.com/orgs/community/discussions/25702 # workflow. https://github.com/orgs/community/discussions/25702
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF" git push https://pulumi-bot:${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
env: env:
HEAD_REF: ${{ github.head_ref }} HEAD_REF: ${{ github.head_ref }}
- run: git status --porcelain - run: git status --porcelain
@@ -185,25 +198,27 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}} pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library - name: Test Provider Library
run: make test_provider run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in building provider prerequisites author_name: Failure in building provider prerequisites
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
build_sdks: build_sdks:
@@ -219,54 +234,44 @@ jobs:
- go - go
- java - java
name: build_sdks name: build_sdks
permissions:
contents: read
id-token: write # For ESC secrets.
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
persist-credentials: false persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }} ref: ${{ env.PR_COMMIT_SHA }}
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider - name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -291,14 +296,14 @@ jobs:
sdk/go/**/pulumiUtilities.go sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json sdk/nodejs/package.json
sdk/python/pyproject.toml sdk/python/pyproject.toml
sdk/java/build.gradle
continue-on-error: ${{ contains(github.actor, 'renovate') }}
- name: Commit SDK changes for Renovate - name: Commit SDK changes for Renovate
if: failure() && steps.worktreeClean.outcome == 'failure' && if: steps.worktreeClean.outcome == 'failure' &&
contains(github.actor, 'renovate') && github.event_name == contains(github.actor, 'renovate') && github.event_name ==
'pull_request' 'pull_request'
shell: bash shell: bash
run: > run: >
git diff --quiet -- sdk && echo "no changes to sdk" && exit
git config --global user.email "bot@pulumi.com" git config --global user.email "bot@pulumi.com"
git config --global user.name "pulumi-bot" git config --global user.name "pulumi-bot"
@@ -311,14 +316,12 @@ jobs:
git checkout "origin/$HEAD_REF" git checkout "origin/$HEAD_REF"
# Apply and add our changes, but don't commit any files we expect to # Apply and add our changes, but don't commit any files we expect to
# always change due to versioning. # always change due to versioning.
git stash pop git stash pop
git add sdk git add sdk provider/cmd/pulumi-resource-docker-build/schema.json
git reset sdk/python/*/pulumi-plugin.json \ git reset sdk/python/*/pulumi-plugin.json \
sdk/python/pyproject.toml \ sdk/python/pyproject.toml \
@@ -332,30 +335,29 @@ jobs:
git commit -m 'Commit SDK for Renovate' git commit -m 'Commit SDK for Renovate'
# Push with pulumi-bot credentials to trigger a re-run of the # Push with pulumi-bot credentials to trigger a re-run of the
# workflow. https://github.com/orgs/community/discussions/25702 # workflow. https://github.com/orgs/community/discussions/25702
git push https://pulumi-bot:${{ secrets.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF" git push https://pulumi-bot:${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}@github.com/${{ github.repository }} "HEAD:$HEAD_REF"
env: env:
HEAD_REF: ${{ github.head_ref }} HEAD_REF: ${{ github.head_ref }}
- run: git status --porcelain - run: git status --porcelain
- name: Tar SDK folder - name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30 retention-days: 30
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure while building SDKs author_name: Failure while building SDKs
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
test: test:
@@ -378,52 +380,39 @@ jobs:
id-token: write id-token: write
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
persist-credentials: false persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }} ref: ${{ env.PR_COMMIT_SHA }}
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- id: version - id: version
name: Set Provider Version name: Set Provider Version
uses: pulumi/provider-version-action@f96d032a2758fdda7939e5728eff6c0d980ae894 # v1.6.0 uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1
with: with:
set-env: PROVIDER_VERSION set-env: PROVIDER_VERSION
- name: Install Go env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
go-version: ${{ env.GOVERSION }} github_token: ${{ steps.app-auth.outputs.token }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup Node
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@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
with:
gradle-version: "7.6"
- name: Download provider - name: Download provider
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin path: ${{ github.workspace }}/bin
@@ -435,7 +424,7 @@ jobs:
-exec chmod +x {} \; -exec chmod +x {} \;
- name: Download SDK - name: Download SDK
if: ${{ matrix.language != 'yaml' }} if: ${{ matrix.language != 'yaml' }}
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with: with:
name: ${{ matrix.language }}-sdk.tar.gz name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/ path: ${{ github.workspace}}/sdk/
@@ -463,13 +452,13 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false export-environment-variables: false
- name: Export AWS Credentials - name: Export AWS Credentials
uses: pulumi/esc-action@efb0bc8946938f0dfbfa00e829196ec95f0d0ea7 # v1.4.0 uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
env: env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }} PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with: with:
environment: logins/pulumi-ci environment: logins/pulumi-ci
- name: Authenticate to Google Cloud - name: Authenticate to Google Cloud
uses: google-github-actions/auth@b7593ed2efd1c1617e1b0254da33b86225adb2a5 # v2.1.12 uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with: with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{ }}/locations/global/workloadIdentityPools/${{
@@ -477,7 +466,7 @@ jobs:
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth - name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4 uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with: with:
install_components: gke-gcloud-auth-plugin install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt - name: Install gotestfmt
@@ -490,23 +479,40 @@ jobs:
set -euo pipefail set -euo pipefail
cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . cd examples && go test -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 .
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: failure() && github.event_name == 'push' - if: failure() && github.event_name == 'push'
name: Notify Slack name: Notify Slack
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0 uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3.19.0
with: with:
author_name: Failure in SDK tests author_name: Failure in SDK tests
fields: repo,commit,author,action fields: repo,commit,author,action
status: ${{ job.status }} status: ${{ job.status }}
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ steps.esc-secrets.outputs.SLACK_WEBHOOK_URL }}
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
sentinel: sentinel:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: sentinel name: sentinel
steps: steps:
- name: Checkout Repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }}
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- name: Mark workflow as successful - name: Mark workflow as successful
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76 # v1.1.13 uses: guibranco/github-status-action-v2@3f704867b3ec00272a5f1b550c207789736bbee9 # v1.2.0
with: with:
authToken: ${{ secrets.GITHUB_TOKEN }} authToken: ${{ secrets.GITHUB_TOKEN }}
context: Sentinel context: Sentinel
@@ -515,6 +521,7 @@ jobs:
sha: ${{ github.event.pull_request.head.sha || github.sha }} sha: ${{ github.event.pull_request.head.sha || github.sha }}
permissions: permissions:
statuses: write statuses: write
id-token: write # For ESC secrets.
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
needs: needs:
@@ -522,28 +529,8 @@ jobs:
- prerequisites - prerequisites
- lint - lint
lint: lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
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@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.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@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml
working-directory: provider
name: lint
if: github.event_name == 'repository_dispatch' || if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository github.event.pull_request.head.repo.full_name == github.repository
name: lint
uses: ./.github/workflows/lint.yml
secrets: inherit

View File

@@ -0,0 +1,179 @@
---
description: High-signal PR review for gh-aw workflows using safe outputs
---
Provide a code review for the given pull request.
**Agent assumptions (applies to all agents and subagents):**
- All tools are functional and will work without error. Do not test tools or make exploratory calls. Make sure this is clear to every subagent that is launched.
- Only call a tool if it is required to complete the task. Every tool call should have a clear purpose.
- Use GitHub MCP tools for repository reads. Do not use `gh` CLI commands for repository inspection or for posting review output.
- Use the workflow PR number as the authoritative target.
- Use only gh-aw safe outputs for review side effects:
- `create-pull-request-review-comment` for actionable inline findings on changed lines
- `submit-pull-request-review` for the final review decision
- `noop` when no action should be taken
- Use cache-memory only for short-lived continuity and deduplication hints. Treat live PR state and current review threads as the source of truth.
- Never post free-form issue comments or use any side channel for review output.
- Respect the workflow safe-output limits. Prioritize the highest-signal unique findings and keep the inline review set within the configured maximum.
- Consult `.gitattributes` when relevant and treat files matched there as generated by default. Ignore findings that exist only in generated outputs such as `.lock.yml` files unless the corresponding source-of-truth files show a real behavioral problem.
To do this, follow these steps precisely:
1. Create a short todo list for yourself before starting.
2. Launch a fast subagent to check if any of the following are true:
- The pull request is closed
- The pull request is a draft
- The pull request does not need code review (e.g. automated PR, trivial change that is obviously correct)
- Required PR context cannot be read from the workflow tools
If any condition is true, call `noop` with a brief reason and stop.
Note: Do not skip solely because prior automated review comments exist. Use prior comments for deduplication and stale-thread cleanup instead.
3. Read any prior review memory for this PR from cache-memory before you start detailed analysis.
Use a PR-specific file such as:
- `/tmp/gh-aw/cache-memory/pr-${PR_NUMBER}.json`
If a prior memory file exists, use it only as a hint for:
- Previously reported issues
- Dedupe patterns
- Prior review timestamps
- Risk areas worth re-checking
Do not trust cache-memory over current GitHub state. If memory conflicts with the live PR, changed files, or review threads, trust the live PR and ignore stale memory.
4. Launch a fast subagent to return a list of file paths (not their contents) for all relevant `CLAUDE.md` files including:
- The root CLAUDE.md file, if it exists
- Any CLAUDE.md files in directories containing files modified by the pull request
5. Launch a subagent to summarize:
- The PR title and description
- The changed files
- The main behavioral changes in the diff
- Any obvious risk areas worth checking carefully
6. Fetch existing review comments on the PR before preparing any new findings. Use them to identify:
- Similar issues already flagged
- Threads where a human already acknowledged the feedback
- Comments on code that has changed since the earlier review and may now be stale
7. Launch 4 review subagents in parallel. Each agent should return a list of candidate issues, where each issue includes:
- A concise description
- The reason it was flagged (for example `CLAUDE.md adherence` or `bug`)
- The changed file path
- The changed line or closest changed hunk
- Why the issue is likely real
Agents 1 + 2: CLAUDE.md compliance sonnet agents
Audit changes for `CLAUDE.md` compliance in parallel. When evaluating a file, only consider `CLAUDE.md` files that share a path scope with that file or its parents.
Agent 3: bug-focused review agent
Scan for obvious bugs. Focus only on the diff itself without reading extra context. Flag only significant bugs; ignore nitpicks and likely false positives. Do not flag issues that you cannot validate without looking at context outside of the git diff.
Agent 4: behavior-focused review agent
Look for problems introduced by the new code, including security issues, incorrect logic, regressions, and missing error handling. Only look for issues that fall within changed code.
**CRITICAL: We only want HIGH SIGNAL issues.** Flag issues where:
- The code will fail to compile or parse (syntax errors, type errors, missing imports, unresolved references)
- The code will definitely produce wrong results regardless of inputs (clear logic errors)
- The code introduces a clear security or regression bug in changed lines
- Clear, unambiguous `CLAUDE.md` violations where you can quote the exact rule being broken
Do NOT flag:
- Code style or quality concerns
- Potential issues that depend on specific inputs or state
- Subjective suggestions or improvements
If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time.
Each review subagent should receive the PR title and description so it can evaluate intent.
8. For each candidate issue, launch validation subagents in parallel. Each validator should receive the PR title, description, issue description, affected file, and affected hunk. The validator must confirm that the issue is real with high confidence.
For bug and logic issues, verify the changed code actually causes the stated problem.
For `CLAUDE.md` issues, verify both:
- The cited rule exists
- The rule applies to that file path and is actually violated
9. Filter out any issue that fails validation.
10. Deduplicate and prune the validated issue list. Remove:
- Issues already covered by an existing review comment
- Issues in threads where a human has already acknowledged the feedback
- Issues that were present in an earlier revision but are fixed in the latest code
- Duplicate findings reported by multiple subagents
- Findings that are not on changed lines or cannot be tied to a changed hunk
- Findings that only came from cache-memory and are not confirmed by the current PR state
11. Classify the remaining issues:
- `Blocking`: correctness, security, regression, data loss, or clear required-rule violations
- `Non-blocking`: actionable but not merge-blocking concerns
12. Produce a short internal summary of findings for yourself:
- If issues remain, list the highest-signal ones first
- If no issues remain, summarize that no actionable high-signal issues were found
13. If no actionable issues remain, submit exactly one final review with `submit-pull-request-review`:
- Use `APPROVE`
- Briefly state that no issues were found after checking for bugs and `CLAUDE.md` compliance
- Do not create inline comments
- Before stopping, write a compact review memory file for this PR containing:
- review timestamp
- PR number
- files reviewed
- summary of what was checked
- `issues_reported: []`
- Stop after the final review is submitted and memory is updated
14. If actionable issues remain, choose the highest-signal unique issues up to the safe-output comment limit. Create a list of planned inline comments for yourself before posting anything.
15. Post one inline comment per chosen issue using `create-pull-request-review-comment`. For each comment:
- Provide a brief description of the issue
- Explain why it matters
- Reference the exact changed line
- Cite the relevant `CLAUDE.md` rule when applicable
- Keep the comment concise and actionable
- Do not post duplicate comments for the same issue
16. Submit exactly one final review using `submit-pull-request-review`:
- Use `REQUEST_CHANGES` when at least one blocking issue remains
- Use `APPROVE` otherwise, including when only non-blocking inline comments were left
- Do not use `COMMENT` as the final review state
- Keep the summary short and aligned with the issues you posted
17. After the final review is submitted, update the PR-specific cache-memory file with a compact record of this review. Store only short-lived operational state such as:
- review timestamp
- PR number
- files reviewed
- issue fingerprints or short summaries
- whether the final review was `APPROVE` or `REQUEST_CHANGES`
Do not store secrets, tokens, personal data, or large blobs. Keep the file concise so future runs can use it for continuity and dedupe.
Use this list when evaluating issues in Steps 4 and 5 (these are false positives, do NOT flag):
- Pre-existing issues
- Something that appears to be a bug but is actually correct
- Pedantic nitpicks that a senior engineer would not flag
- Issues that a linter will catch (do not run the linter to verify)
- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md
- Issues mentioned in CLAUDE.md but explicitly silenced in the code (e.g., via a lint ignore comment)
- Differences that exist only in files classified as generated by `.gitattributes`, unless they expose a real issue in the source workflow, prompt, or other source-of-truth file
Notes:
- Use GitHub tools for all repository reads. Do not use web fetch.
- Always operate on the workflow PR target rather than guessing from local git state.
- Inline comments should only be created for actionable issues on changed lines.
- Cache-memory is best-effort and may be missing or stale. Use it to improve continuity, never to override current repository state.
- When linking to code in an inline comment, use a full GitHub blob URL with a full SHA and a line range, for example: https://github.com/anthropics/claude-code/blob/c21d3c10bc8e898b7ac1a2d745bdc9bc4e423afe/package.json#L10-L15
- Requires full git sha
- Do not use shell substitution in the URL
- Repo name must match the repo you're code reviewing
- Use `#L[start]-L[end]`
- Provide at least one line of context before and after when possible
- If context checks fail or the PR is not reviewable, call `noop` with a brief explanation instead of exiting silently.

68
.github/workflows/shared/review.md vendored Normal file
View File

@@ -0,0 +1,68 @@
---
permissions:
contents: read
pull-requests: read
id-token: write
engine:
id: claude
env:
ANTHROPIC_API_KEY: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY || '__GH_AW_ACTIVATION_PLACEHOLDER__' }}
steps:
- env:
ESC_ACTION_ENVIRONMENT: imports/github-secrets
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- name: Validate ESC secret output
env:
ANTHROPIC_API_KEY_FROM_ESC: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
run: |
test -n "$ANTHROPIC_API_KEY_FROM_ESC" || {
echo "ESC did not return ANTHROPIC_API_KEY";
exit 1;
}
tools:
cache-memory: true
github:
lockdown: false
toolsets: [pull_requests, repos]
safe-outputs:
create-pull-request-review-comment:
max: 12
side: "RIGHT"
target: "${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}"
target-repo: "${{ github.repository }}"
submit-pull-request-review:
max: 1
target: "${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}"
noop:
max: 1
messages:
footer: "> Reviewed by [{workflow_name}]({run_url})"
run-started: "Started automated PR review for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}."
run-success: "Finished automated PR review for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}."
run-failure: "Automated PR review failed for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }} ({status})."
---
Review pull request #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }} in repository `${{ github.repository }}`.
Workflow-specific rules:
- Use `${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}` as the authoritative PR target.
- Treat the imported review prompt as the source of the review procedure.
- Use only gh-aw safe outputs for side effects:
- `create-pull-request-review-comment` for actionable inline findings on changed lines
- `submit-pull-request-review` for the final review
- `noop` when the PR is not reviewable or required context is missing
- Submit exactly one final review:
- `REQUEST_CHANGES` when at least one blocking issue exists.
- `APPROVE` otherwise, including when only non-blocking observations exist.
- Do not submit `COMMENT` as the final review state.
- Do not post free-form issue comments outside safe outputs.
- Respect the configured inline comment limit and prioritize the highest-signal unique findings.
- Use cache-memory only as a best-effort continuity aid; live PR state and current review threads are authoritative.
- Ignore discovery steps intended for runs without PR context.

View File

@@ -8,22 +8,12 @@ on:
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x" GOVERSION: "1.21.x"
NODEVERSION: "20.x" NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8" PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x" DOTNETVERSION: "8.0.x"
JAVAVERSION: "11" JAVAVERSION: "11"
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
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_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -32,38 +22,39 @@ env:
GOOGLE_REGION: us-central1 GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs: jobs:
weekly-pulumi-update: weekly-pulumi-update:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: write-all
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
lfs: true lfs: true
- name: Install Go - env:
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-auth
with: with:
go-version: ${{ env.GOVERSION }} app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
cache-dependency-path: "**/*.sum" private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
- name: Install pulumictl owner: ${{ github.repository_owner }}
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 - name: Setup Tools
uses: ./.github/actions/setup-tools
with: with:
repo: pulumi/pulumictl github_token: ${{ steps.app-auth.outputs.token }}
- name: Install Pulumi CLI
uses: pulumi/actions@df5a93ad715135263c732ba288301bd044c383c0 # v6.3.0
- name: Setup DotNet
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Node
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@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Update Pulumi/Pulumi - name: Update Pulumi/Pulumi
id: gomod id: gomod
run: >- run: >-
@@ -73,10 +64,10 @@ jobs:
git checkout -b update-pulumi/${{ github.run_id }}-${{ github.run_number }} git checkout -b update-pulumi/${{ github.run_id }}-${{ github.run_number }}
find . -name go.mod -execdir sh -c 'go get github.com/pulumi/pulumi/pkg/v3 github.com/pulumi/pulumi/sdk/v3; go mod tidy' \;
gh repo view pulumi/pulumi --json latestRelease --jq .latestRelease.tagName | sed 's/^v//' > .pulumi.version gh repo view pulumi/pulumi --json latestRelease --jq .latestRelease.tagName | sed 's/^v//' > .pulumi.version
VERSION=$(cat .pulumi.version) find . -name go.mod -execdir sh -c 'go get github.com/pulumi/pulumi/pkg/v3@v${VERSION} github.com/pulumi/pulumi/sdk/v3@v${VERSION}; go mod tidy' \;
git update-index -q --refresh git update-index -q --refresh
if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi
@@ -118,9 +109,7 @@ jobs:
msg="Automated upgrade: bump pulumi/pulumi to ${ver}" 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"
gh pr create -t "$msg" -b "$msg" --head "$(git branch --show-current)"
env: env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
name: weekly-pulumi-update name: weekly-pulumi-update

1
.gitignore vendored
View File

@@ -7,6 +7,7 @@
**/.ionide **/.ionide
**/.vscode **/.vscode
*.swp *.swp
.pulumi
Pulumi.*.yaml Pulumi.*.yaml
yarn.lock yarn.lock
ci-scripts ci-scripts

View File

@@ -1,104 +1,53 @@
run: # WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
timeout: 10m
version: "2"
linters: linters:
enable-all: false
enable: enable:
- depguard - goconst
- errcheck
- exhaustive
- copyloopvar
- gci
- gocritic
- gofumpt
- goheader
- gosec - gosec
- govet
- importas
- ineffassign
- lll - lll
- misspell - misspell
- nakedret - nakedret
- nolintlint
- paralleltest
- perfsprint
- prealloc
- revive - revive
- unconvert - unconvert
- unused exclusions:
generated: lax
linters-settings: presets:
depguard: - comments
- common-false-positives
- legacy
- std-error-handling
paths:
- schema.go
- pulumiManifest.go
- pkg/vendored
- third_party$
- builtin$
- examples$
rules: rules:
protobuf: - linters:
deny: - revive
- pkg: "github.com/golang/protobuf" path: pkg/
desc: Use google.golang.org/protobuf instead text: "var-naming" # https://github.com/pulumi/ci-mgmt/issues/2100
gci: formatters:
sections: enable:
- standard # Standard section: captures all standard library packages. - gci
- blank # Blank section: contains all blank imports. - gofmt
- default # Default section: contains all imports that could not be matched to another section type. settings:
- prefix(github.com/pulumi/) # Custom section: groups all imports with the github.com/pulumi/ prefix. gci:
- prefix(github.com/pulumi/pulumi-dockerbuild/) # Custom section: local imports sections:
custom-order: true - standard # Standard section: captures all standard library packages.
gocritic: - blank # Blank section: contains all blank imports.
enable-all: true - default # Default section: contains all imports that could not be matched to another section type.
disabled-checks: - prefix(github.com/pulumi/) # Custom section: groups all imports with the github.com/pulumi/ prefix.
- hugeParam - prefix(github.com/pulumi/pulumi-docker-build) # Custom section: local imports
- importShadow custom-order: true
goheader: exclusions:
template: |- generated: lax
Copyright 2024, Pulumi Corporation. paths:
- schema.go
Licensed under the Apache License, Version 2.0 (the "License"); - pulumiManifest.go
you may not use this file except in compliance with the License. - pkg/vendored
You may obtain a copy of the License at - third_party$
- builtin$
http://www.apache.org/licenses/LICENSE-2.0 - examples$
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
govet:
enable:
- nilness
# Reject comparisons of reflect.Value with DeepEqual or '=='.
- reflectvaluecompare
# Reject sort.Slice calls with a non-slice argument.
- sortslice
# Detect write to struct/arrays by-value that aren't read again.
- unusedwrite
nakedret:
# Make an issue if func has more lines of code than this setting, and it has naked returns.
# Default: 30
max-func-lines: 60
nolintlint:
# Some linter exclusions are added to generated or templated files
# pre-emptively.
# Don't complain about these.
allow-unused: true
issues:
exclude-use-default: false
exclude-rules:
# Don't warn on unused parameters.
# Parameter names are useful; replacing them with '_' is undesirable.
- linters: [revive]
text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _'
# staticcheck already has smarter checks for empty blocks.
# revive's empty-block linter has false positives.
# For example, as of writing this, the following is not allowed.
# for foo() { }
- linters: [revive]
text: "empty-block: this block is empty, you can remove it"
# We *frequently* use the term 'new' in the context of properties
# (new and old properties),
# and we rarely use the 'new' built-in function.
# It's fine to ignore these cases.
- linters: [revive]
text: "redefines-builtin-id: redefinition of the built-in function new"

View File

@@ -1,5 +1,4 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt # WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
project_name: pulumi-docker-build project_name: pulumi-docker-build
builds: builds:
- id: build-provider - id: build-provider

View File

@@ -1 +1 @@
3.187.0 3.192.0

View File

@@ -1,9 +1,25 @@
## Unreleased ## Unreleased
## Changed
- Arguments `CacheFromGitHubActions.URL` and `CacheFromGitHubActions.Token` have been removed. If the previous behaviour is desired, set the `ACTIONS_CACHE_URL` and `ACTIONS_RUNTIME_TOKEN` environment variables. (https://github.com/pulumi/pulumi-docker-build/issues/75)
## 0.0.14 (2025-09-30)
### Fixed
- A warning is no longer emitted for the reserved `__internal` key. (https://github.com/pulumi/pulumi-docker-build/issues/579)
## 0.0.13 (2025-08-27)
### Changed ### Changed
- Docker Build Cloud and `exec` errors are more helpful. (https://github.com/pulumi/pulumi-docker-build/issues/549) - Docker Build Cloud and `exec` errors are more helpful. (https://github.com/pulumi/pulumi-docker-build/issues/549)
### Fixed
- The provider is no longer replaced on version changes. (https://github.com/pulumi/pulumi-docker-build/issues/581)
## 0.0.12 (2025-05-16) ## 0.0.12 (2025-05-16)
### Changed ### Changed

View File

@@ -17,8 +17,9 @@ WORKING_DIR := $(shell pwd)
EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml
TESTPARALLELISM := 4 TESTPARALLELISM := 4
PULUMI := bin/pulumi PULUMI := pulumi
GOGLANGCILINT := bin/golangci-lint GOGLANGCILINT := golangci-lint
GOTEST := go test
# Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable # Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable
# Local & branch builds will just used this fixed default version unless specified # Local & branch builds will just used this fixed default version unless specified
@@ -46,10 +47,10 @@ provider_debug::
(cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -gcflags="all=-N -l" -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER)) (cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -gcflags="all=-N -l" -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
test_provider:: # Required by CI test_provider:: # Required by CI
go test -short -v -coverprofile="coverage.txt" -coverpkg=./provider/... -timeout 2h -parallel ${TESTPARALLELISM} ./provider/... ${GOTEST} -short -v -coverprofile="coverage.txt" -coverpkg=./provider/... -timeout 2h -parallel ${TESTPARALLELISM} ./provider/...
test_examples: install_nodejs_sdk install_dotnet_sdk test_examples: install_nodejs_sdk install_dotnet_sdk
go test -short -v -cover -tags=all -timeout 2h -parallel ${TESTPARALLELISM} ./examples/... ${GOTEST} -short -v -cover -tags=all -timeout 2h -parallel ${TESTPARALLELISM} ./examples/...
test_all:: test_provider test_examples test_all:: test_provider test_examples
@@ -63,38 +64,26 @@ examples/yaml:
rm -rf ${WORKING_DIR}/examples/yaml/app rm -rf ${WORKING_DIR}/examples/yaml/app
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app
examples/go: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/go: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,go) $(call example,go)
@git checkout examples/go/go.mod @git checkout examples/go/go.mod
examples/nodejs: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/nodejs: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,nodejs) $(call example,nodejs)
@git checkout examples/nodejs/package.json @git checkout examples/nodejs/package.json
examples/python: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/python: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,python) $(call example,python)
@git checkout examples/python/requirements.txt @git checkout examples/python/requirements.txt
examples/dotnet: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/dotnet: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,dotnet) $(call example,dotnet)
@git checkout examples/dotnet/provider-docker-build.csproj @git checkout examples/dotnet/provider-docker-build.csproj
examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml examples/java: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,java) $(call example,java)
@git checkout examples/java/pom.xml @git checkout examples/java/pom.xml
${PULUMI}: go.sum
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/pkg/v3/cmd/pulumi
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-java/pkg/cmd/pulumi-language-java
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/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@8b37f14
define pulumi_login define pulumi_login
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \ export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
pulumi login --local; pulumi login --local;
@@ -102,7 +91,7 @@ endef
define example define example
rm -rf ${WORKING_DIR}/examples/$(1) rm -rf ${WORKING_DIR}/examples/$(1)
$(PULUMI) convert \ pulumi convert \
--cwd ${WORKING_DIR}/examples/yaml \ --cwd ${WORKING_DIR}/examples/yaml \
--logtostderr \ --logtostderr \
--generate-only \ --generate-only \
@@ -140,7 +129,7 @@ build:: provider sdk/dotnet sdk/go sdk/nodejs sdk/python sdk/java ${SCHEMA_PATH}
only_build:: build only_build:: build
.PHONY: lint .PHONY: lint
lint: ${GOGLANGCILINT} lint:
${GOGLANGCILINT} run --fix -c .golangci.yml ${GOGLANGCILINT} run --fix -c .golangci.yml
install:: install_nodejs_sdk install_dotnet_sdk install:: install_nodejs_sdk install_dotnet_sdk
@@ -193,6 +182,7 @@ bin/${PROVIDER}: $(shell find ./provider -name '*.go') go.mod
(cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER)) (cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
bin/pulumi-gen-${PACK}: # Required by CI bin/pulumi-gen-${PACK}: # Required by CI
@mkdir -p bin
touch bin/pulumi-gen-${PACK} touch bin/pulumi-gen-${PACK}
go.mod: $(shell find . -name '*.go') go.mod: $(shell find . -name '*.go')
@@ -205,7 +195,7 @@ sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
.PHONY: sdk/* .PHONY: sdk/*
sdk/python: TMPDIR := $(shell mktemp -d) sdk/python: TMPDIR := $(shell mktemp -d)
sdk/python: $(PULUMI) bin/${PROVIDER} sdk/python: bin/${PROVIDER}
rm -rf sdk/python rm -rf sdk/python
$(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language python -o ${TMPDIR} $(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language python -o ${TMPDIR}
cp README.md ${TMPDIR}/python/ cp README.md ${TMPDIR}/python/
@@ -218,7 +208,7 @@ sdk/python: $(PULUMI) bin/${PROVIDER}
mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/. mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/.
sdk/nodejs: TMPDIR := $(shell mktemp -d) sdk/nodejs: TMPDIR := $(shell mktemp -d)
sdk/nodejs: $(PULUMI) bin/${PROVIDER} sdk/nodejs: bin/${PROVIDER}
rm -rf sdk/nodejs rm -rf sdk/nodejs
$(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language nodejs -o ${TMPDIR} $(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language nodejs -o ${TMPDIR}
cp README.md LICENSE ${TMPDIR}/nodejs cp README.md LICENSE ${TMPDIR}/nodejs
@@ -230,7 +220,7 @@ sdk/nodejs: $(PULUMI) bin/${PROVIDER}
sdk/go: TMPDIR := $(shell mktemp -d) sdk/go: TMPDIR := $(shell mktemp -d)
sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)" sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)"
sdk/go: $(PULUMI) bin/${PROVIDER} sdk/go: bin/${PROVIDER}
rm -rf sdk/go rm -rf sdk/go
PATH=$(PATH) $(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language go -o ${TMPDIR} PATH=$(PATH) $(PULUMI) package gen-sdk ./bin/$(PROVIDER) --language go -o ${TMPDIR}
cp go.mod ${TMPDIR}/go/dockerbuild/go.mod cp go.mod ${TMPDIR}/go/dockerbuild/go.mod
@@ -240,7 +230,7 @@ sdk/go: $(PULUMI) bin/${PROVIDER}
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
sdk/dotnet: TMPDIR := $(shell mktemp -d) sdk/dotnet: TMPDIR := $(shell mktemp -d)
sdk/dotnet: $(PULUMI) bin/${PROVIDER} sdk/dotnet: bin/${PROVIDER}
rm -rf sdk/dotnet rm -rf sdk/dotnet
$(PULUMI) package gen-sdk ./bin/${PROVIDER} --language dotnet -o ${TMPDIR} $(PULUMI) package gen-sdk ./bin/${PROVIDER} --language dotnet -o ${TMPDIR}
cd ${TMPDIR}/dotnet/ && \ cd ${TMPDIR}/dotnet/ && \
@@ -250,7 +240,7 @@ sdk/dotnet: $(PULUMI) bin/${PROVIDER}
sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)") sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)")
sdk/java: TMPDIR := $(shell mktemp -d) sdk/java: TMPDIR := $(shell mktemp -d)
sdk/java: $(PULUMI) bin/${PROVIDER} sdk/java: bin/${PROVIDER}
rm -rf sdk/java rm -rf sdk/java
$(PULUMI) package gen-sdk --language java ./bin/${PROVIDER} -o ${TMPDIR} $(PULUMI) package gen-sdk --language java ./bin/${PROVIDER} -o ${TMPDIR}
cd ${TMPDIR}/java/ && gradle --console=plain build cd ${TMPDIR}/java/ && gradle --console=plain build
@@ -260,29 +250,32 @@ docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -na
go generate docs/generate.go go generate docs/generate.go
@touch docs @touch docs
# Set these variables to enable signing of the windows binary # Set these variables to enable signing of the windows binary with Azure Trusted Signing.
AZURE_SIGNING_CLIENT_ID ?= AZURE_SIGNING_CLIENT_ID ?=
AZURE_SIGNING_CLIENT_SECRET ?= AZURE_SIGNING_CLIENT_SECRET ?=
AZURE_SIGNING_TENANT_ID ?= AZURE_SIGNING_TENANT_ID ?=
AZURE_SIGNING_KEY_VAULT_URI ?= AZURE_SIGNING_ACCOUNT_ENDPOINT ?=
AZURE_SIGNING_ACCOUNT_NAME ?=
AZURE_SIGNING_CERT_PROFILE_NAME ?=
SKIP_SIGNING ?= SKIP_SIGNING ?=
bin/jsign-6.0.jar: bin/jsign-7.4.jar:
wget https://github.com/ebourg/jsign/releases/download/6.0/jsign-6.0.jar --output-document=bin/jsign-6.0.jar @mkdir -p bin
wget https://github.com/ebourg/jsign/releases/download/7.4/jsign-7.4.jar --output-document=bin/jsign-7.4.jar
sign-goreleaser-exe-amd64: GORELEASER_ARCH := amd64_v1 sign-goreleaser-exe-amd64: GORELEASER_ARCH := amd64_v1
sign-goreleaser-exe-arm64: GORELEASER_ARCH := arm64 sign-goreleaser-exe-arm64: GORELEASER_ARCH := arm64
# Set the shell to bash to allow for the use of bash syntax. # Set the shell to bash to allow for the use of bash syntax.
sign-goreleaser-exe-%: SHELL:=/bin/bash sign-goreleaser-exe-%: SHELL:=/bin/bash
sign-goreleaser-exe-%: bin/jsign-6.0.jar sign-goreleaser-exe-%: bin/jsign-7.4.jar
@# Only sign windows binary if fully configured. @# Only sign windows binary if fully configured.
@# Test variables set by joining with | between and looking for || showing at least one variable is empty. @# 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. @# Move the binary to a temporary location and sign it there to avoid the target being up-to-date if signing fails.
@set -e; \ @set -e; \
if [[ "${SKIP_SIGNING}" != "true" ]]; then \ if [[ "${SKIP_SIGNING}" != "true" ]]; then \
if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_KEY_VAULT_URI}|" == *"||"* ]]; then \ if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_ACCOUNT_ENDPOINT}|${AZURE_SIGNING_ACCOUNT_NAME}|${AZURE_SIGNING_CERT_PROFILE_NAME}|" == *"||"* ]]; 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 "Can't sign windows binaries as required configuration not set: AZURE_SIGNING_CLIENT_ID, AZURE_SIGNING_CLIENT_SECRET, AZURE_SIGNING_TENANT_ID, AZURE_SIGNING_ACCOUNT_ENDPOINT, AZURE_SIGNING_ACCOUNT_NAME, AZURE_SIGNING_CERT_PROFILE_NAME"; \
echo "To rebuild with signing delete the unsigned windows exe file and rebuild with the fixed configuration"; \ echo "To rebuild with signing delete the unsigned windows exe file and rebuild with the fixed configuration"; \
if [[ "${CI}" == "true" ]]; then exit 1; fi; \ if [[ "${CI}" == "true" ]]; then exit 1; fi; \
else \ else \
@@ -293,12 +286,15 @@ sign-goreleaser-exe-%: bin/jsign-6.0.jar
--password "${AZURE_SIGNING_CLIENT_SECRET}" \ --password "${AZURE_SIGNING_CLIENT_SECRET}" \
--tenant "${AZURE_SIGNING_TENANT_ID}" \ --tenant "${AZURE_SIGNING_TENANT_ID}" \
--output none; \ --output none; \
ACCESS_TOKEN=$$(az account get-access-token --resource "https://vault.azure.net" | jq -r .accessToken); \ ACCESS_TOKEN=$$(az account get-access-token --resource "https://codesigning.azure.net" | jq -r .accessToken); \
java -jar bin/jsign-6.0.jar \ ENDPOINT_HOST="$${AZURE_SIGNING_ACCOUNT_ENDPOINT#https://}"; \
--storetype AZUREKEYVAULT \ ENDPOINT_HOST="$${ENDPOINT_HOST#http://}"; \
--keystore "PulumiCodeSigning" \ ENDPOINT_HOST="$${ENDPOINT_HOST%/}"; \
--url "${AZURE_SIGNING_KEY_VAULT_URI}" \ java -jar bin/jsign-7.4.jar \
--storetype TRUSTEDSIGNING \
--keystore "$${ENDPOINT_HOST}" \
--storepass "$${ACCESS_TOKEN}" \ --storepass "$${ACCESS_TOKEN}" \
--alias "${AZURE_SIGNING_ACCOUNT_NAME}/${AZURE_SIGNING_CERT_PROFILE_NAME}" \
$${file}.unsigned; \ $${file}.unsigned; \
mv $${file}.unsigned $${file}; \ mv $${file}.unsigned $${file}; \
az logout; \ az logout; \

View File

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

428
docs/_index.md Normal file
View File

@@ -0,0 +1,428 @@
---
title: Docker Build
meta_desc: Provides an overview of the Docker Build Provider for Pulumi.
layout: package
---
The Docker Build provider leverages [buildx and BuildKit](https://docs.docker.com/build/architecture/) to build modern Docker images with Pulumi.
Not to be confused with the earlier
[Docker](../docker) provider, which is still
appropriate for managing resources unrelated to building images.
| Provider | Use cases |
| ---------------- | ----------------------------------------------------------------------- |
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
## Example
If your Pulumi program has a directory called `app` alongside it, containing a
file named "Dockerfile" (which can be as simple as `FROM alpine` for the
purpose of example), then the code below shows how to build a multi-platform
image, publish it to a remote AWS ECR registry, and use an [inline
cache](https://docs.docker.com/build/cache/backends/inline/) to speed up
subsequent builds.
{{< chooser language "typescript,python,csharp,go,yaml,java" >}}
{{% choosable language typescript %}}
```typescript
import * as aws from "@pulumi/aws";
import * as docker_build from "@pulumi/docker-build";
// Create an ECR repository for pushing.
const ecrRepository = new aws.ecr.Repository("ecr-repository", {});
// Grab auth credentials for ECR.
const authToken = aws.ecr.getAuthorizationTokenOutput({
registryId: ecrRepository.registryId,
});
// Build and push an image to ECR with inline caching.
const myImage = new docker_build.Image("my-image", {
// Tag our image with our ECR repository's address.
tags: [pulumi.interpolate`${ecrRepository.repositoryUrl}:latest`],
context: {
location: "./app",
},
// Use the pushed image as a cache source.
cacheFrom: [{
registry: {
ref: pulumi.interpolate`${ecrRepository.repositoryUrl}:latest`,
},
}],
// Include an inline cache with our pushed image.
cacheTo: [{
inline: {},
}],
// Build a multi-platform image manifest for ARM and AMD.
platforms: [
"linux/amd64",
"linux/arm64",
],
// Push the final result to ECR.
push: true,
// Provide our ECR credentials.
registries: [{
address: ecrRepository.repositoryUrl,
password: authToken.password,
username: authToken.userName,
}],
});
// Export a ref for the pushed images so we can deploy it.
export const ref = myImage.ref;
```
{{% /choosable %}}
{{% choosable language python %}}
```python
import pulumi
import pulumi_aws as aws
import pulumi_docker_build as docker_build
# Create an ECR repository for pushing.
ecr_repository = aws.ecr.Repository("ecr-repository")
# Grab auth credentials for ECR.
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
# Build and push an image to ECR with inline caching.
my_image = docker_build.Image("my-image",
# Tag our image with our ECR repository's address.
tags=[ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:latest")],
context=docker_build.BuildContextArgs(
location="./app",
),
# Use the pushed image as a cache source.
cache_from=[docker_build.CacheFromArgs(
registry=docker_build.CacheFromRegistryArgs(
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:latest"),
),
)],
# Include an inline cache with our pushed image.
cache_to=[docker_build.CacheToArgs(
inline=docker_build.CacheToInlineArgs(),
)],
# Build a multi-platform image manifest for ARM and AMD.
platforms=[
docker_build.Platform.LINUX_AMD64,
docker_build.Platform.LINUX_ARM64,
],
# Push the final result to ECR.
push=True,
# Provide our ECR credentials.
registries=[docker_build.RegistryArgs(
address=ecr_repository.repository_url,
password=auth_token.password,
username=auth_token.user_name,
)],
)
# Export a ref for the pushed images so we can deploy it.
pulumi.export("ref", my_image.ref)
```
{{% /choosable %}}
{{% choosable language csharp %}}
```csharp
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using DockerBuild = Pulumi.DockerBuild;
return await Deployment.RunAsync(() =>
{
// Create an ECR repository for pushing.
var ecrRepository = new Aws.Ecr.Repository("ecr-repository");
// Grab auth credentials for ECR.
var authToken = Aws.Ecr.GetAuthorizationToken.Invoke(new()
{
RegistryId = ecrRepository.RegistryId,
});
// Build and push an image to ECR with inline caching.
var myImage = new DockerBuild.Image("my-image", new()
{
// Tag our image with our ECR repository's address.
Tags = new[]
{
ecrRepository.RepositoryUrl.Apply(repositoryUrl => $"{repositoryUrl}:latest"),
},
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "./app",
},
// Use the pushed image as a cache source.
CacheFrom = new[]
{
new DockerBuild.Inputs.CacheFromArgs
{
Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
{
Ref = ecrRepository.RepositoryUrl.Apply(repositoryUrl => $"{repositoryUrl}:latest"),
},
},
},
// Include an inline cache with our pushed image.
CacheTo = new[]
{
new DockerBuild.Inputs.CacheToArgs
{
Inline = null,
},
},
// Build a multi-platform image manifest for ARM and AMD.
Platforms = new[]
{
DockerBuild.Platform.Linux_amd64,
DockerBuild.Platform.Linux_arm64,
},
// Push the final result to ECR.
Push = true,
// Provide our ECR credentials.
Registries = new[]
{
new DockerBuild.Inputs.RegistryArgs
{
Address = ecrRepository.RepositoryUrl,
Password = authToken.Apply(getAuthorizationTokenResult => getAuthorizationTokenResult.Password),
Username = authToken.Apply(getAuthorizationTokenResult => getAuthorizationTokenResult.UserName),
},
},
});
// Export a ref for the pushed images so we can deploy it.
return new Dictionary<string, object?>
{
["ref"] = myImage.Ref,
};
});
```
{{% /choosable %}}
{{% choosable language go %}}
```go
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create an ECR repository for pushing.
ecrRepository, err := ecr.NewRepository(ctx, "ecr-repository", nil)
if err != nil {
return err
}
// Grab auth credentials for ECR.
authToken := ecr.GetAuthorizationTokenOutput(ctx, ecr.GetAuthorizationTokenOutputArgs{
RegistryId: ecrRepository.RegistryId,
}, nil)
// Build and push an image to ECR with inline caching.
myImage, err := dockerbuild.NewImage(ctx, "my-image", &dockerbuild.ImageArgs{
// Tag our image with our ECR repository's address.
Tags: pulumi.StringArray{
ecrRepository.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) {
return fmt.Sprintf("%v:latest", repositoryUrl), nil
}).(pulumi.StringOutput),
},
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("./app"),
},
// Use the pushed image as a cache source.
CacheFrom: dockerbuild.CacheFromArray{
&dockerbuild.CacheFromArgs{
Registry: &dockerbuild.CacheFromRegistryArgs{
Ref: ecrRepository.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) {
return fmt.Sprintf("%v:latest", repositoryUrl), nil
}).(pulumi.StringOutput),
},
},
},
// Include an inline cache with our pushed image.
CacheTo: dockerbuild.CacheToArray{
&dockerbuild.CacheToArgs{
Inline: nil,
},
},
// Build a multi-platform image manifest for ARM and AMD.
Platforms: dockerbuild.PlatformArray{
dockerbuild.Platform_Linux_amd64,
dockerbuild.Platform_Linux_arm64,
},
// Push the final result to ECR.
Push: pulumi.Bool(true),
// Provide our ECR credentials.
Registries: dockerbuild.RegistryArray{
&dockerbuild.RegistryArgs{
Address: ecrRepository.RepositoryUrl,
Password: authToken.ApplyT(func(authToken ecr.GetAuthorizationTokenResult) (*string, error) {
return &authToken.Password, nil
}).(pulumi.StringPtrOutput),
Username: authToken.ApplyT(func(authToken ecr.GetAuthorizationTokenResult) (*string, error) {
return &authToken.UserName, nil
}).(pulumi.StringPtrOutput),
},
},
})
if err != nil {
return err
}
// Export a ref for the pushed images so we can deploy it.
ctx.Export("ref", myImage.Ref)
return nil
})
}
```
{{% /choosable %}}
{{% choosable language yaml %}}
```yaml
description: Push to AWS ECR with caching
name: ecr
outputs:
ref: ${my-image.ref}
resources:
# Create an ECR repository for pushing.
ecr-repository:
type: aws:ecr:Repository
# Build and push an image to ECR with inline caching.
my-image:
type: docker-build:Image
properties:
# Tag our image with our ECR repository's address.
tags:
- ${ecr-repository.repositoryUrl}:latest
context:
location: ./app
# Use the pushed image as a cache source.
cacheFrom:
- registry:
ref: ${ecr-repository.repositoryUrl}:latest
# Include an inline cache with our pushed image.
cacheTo:
- inline: {}
# Build a multi-platform image manifest for ARM and AMD.
platforms:
- linux/amd64
- linux/arm64
# Push the final result to ECR.
push: true
# Provide our ECR credentials.
registries:
- address: ${ecr-repository.repositoryUrl}
password: ${auth-token.password}
username: ${auth-token.userName}
runtime: yaml
variables:
auth-token:
# Grab auth credentials for ECR.
fn::aws:ecr:getAuthorizationToken:
registryId: ${ecr-repository.registryId}
```
{{% /choosable %}}
{{% choosable language java %}}
```java
package myapp;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecr.Repository;
import com.pulumi.aws.ecr.EcrFunctions;
import com.pulumi.aws.ecr.inputs.GetAuthorizationTokenArgs;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.CacheFromArgs;
import com.pulumi.dockerbuild.inputs.CacheFromRegistryArgs;
import com.pulumi.dockerbuild.inputs.CacheToArgs;
import com.pulumi.dockerbuild.inputs.CacheToInlineArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create an ECR repository for pushing.
var ecrRepository = new Repository("ecrRepository");
// Grab auth credentials for ECR.
final var authToken = EcrFunctions.getAuthorizationToken(GetAuthorizationTokenArgs.builder()
.registryId(ecrRepository.registryId())
.build());
// Build and push an image to ECR with inline caching.
var myImage = new Image("myImage", ImageArgs.builder()
// Tag our image with our ECR repository's address.
.tags(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
.context(BuildContextArgs.builder()
.location("./app")
.build())
// Use the pushed image as a cache source.
.cacheFrom(CacheFromArgs.builder()
.registry(CacheFromRegistryArgs.builder()
.ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
.build())
.build())
// Include an inline cache with our pushed image.
.cacheTo(CacheToArgs.builder()
.inline()
.build())
// Build a multi-platform image manifest for ARM and AMD.
.platforms(
"linux/amd64",
"linux/arm64")
// Push the final result to ECR.
.push(true)
// Provide our ECR credentials.
.registries(RegistryArgs.builder()
.address(ecrRepository.repositoryUrl())
.password(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.password())))
.username(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.userName())))
.build())
.build());
ctx.export("ref", myImage.ref());
}
}
```
{{% /choosable %}}
{{< /chooser >}}

View File

@@ -0,0 +1,33 @@
---
title: Docker-Build Installation & Configuration
meta_desc: Provides an overview on how to configure the Pulumi Docker-Build Provider.
layout: package
---
The Pulumi Docker-build provider builds modern Docker images with [buildx](https://docs.docker.com/reference/cli/docker/buildx/) and [BuildKit](https://docs.docker.com/build/buildkit/).
## Installation
The Docker-Build provider is available as a package in all Pulumi languages:
* JavaScript/TypeScript: [`@pulumi/docker-build`](https://www.npmjs.com/package/@pulumi/docker-build)
* Python: [`pulumi-docker-build`](https://pypi.org/project/pulumi-docker-build/)
* Go: [`github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild`](https://github.com/pulumi/pulumi-docker-build)
* .NET: [`Pulumi.DockerBuild`](https://www.nuget.org/packages/Pulumi.DockerBuild)
* Java: [`com.pulumi/docker-build`](https://central.sonatype.com/artifact/com.pulumi/docker-build)
## Configuring The Provider
### Host
The `DOCKER_HOST` environment variable can be used to specify a custom build daemon's location.
```bash
$ export DOCKER_HOST=tcp://127.0.0.1:2376/
```
This can also be specified in your stack's configuration:
```bash
$ pulumi config set docker-build:host tcp://127.0.0.1:2376/
```

View File

@@ -10,8 +10,9 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
) )
func TestDotNetExample(t *testing.T) { func TestDotNetExample(t *testing.T) {

View File

@@ -1,17 +1,16 @@
module provider-docker-build module provider-docker-build
go 1.24.1 go 1.24.7
toolchain go1.24.5 toolchain go1.24.13
require ( require (
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12 github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.15
github.com/pulumi/pulumi/sdk/v3 v3.187.0 github.com/pulumi/pulumi/sdk/v3 v3.209.0
) )
require ( require (
dario.cat/mergo v1.0.1 // indirect dario.cat/mergo v1.0.1 // indirect
github.com/BurntSushi/toml v1.5.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.2.0 // indirect github.com/ProtonMail/go-crypto v1.2.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect
@@ -27,16 +26,16 @@ require (
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.6.1 // indirect github.com/cloudflare/circl v1.6.3 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/djherbis/times v1.6.0 // indirect github.com/djherbis/times v1.6.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // 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-git/go-git/v5 v5.16.5 // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.4 // indirect github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
@@ -58,41 +57,39 @@ require (
github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.14.3 // indirect github.com/pulumi/esc v0.23.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // 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/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.4.0 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect github.com/skeema/knownhosts v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.9.1 // indirect github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/pflag v1.0.6 // indirect github.com/spf13/pflag v1.0.9 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/zclconf/go-cty v1.16.2 // indirect github.com/zclconf/go-cty v1.16.3 // indirect
go.opentelemetry.io/otel v1.36.0 // indirect
go.opentelemetry.io/otel/sdk v1.36.0 // indirect
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.39.0 // indirect golang.org/x/crypto v0.46.0 // indirect
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
golang.org/x/mod v0.25.0 // indirect golang.org/x/mod v0.30.0 // indirect
golang.org/x/net v0.40.0 // indirect golang.org/x/net v0.48.0 // indirect
golang.org/x/sync v0.15.0 // indirect golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.33.0 // indirect golang.org/x/sys v0.39.0 // indirect
golang.org/x/term v0.32.0 // indirect golang.org/x/term v0.38.0 // indirect
golang.org/x/text v0.26.0 // indirect golang.org/x/text v0.32.0 // indirect
golang.org/x/tools v0.33.0 // indirect golang.org/x/tools v0.39.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect
google.golang.org/grpc v1.72.1 // indirect google.golang.org/grpc v1.79.3 // indirect
google.golang.org/protobuf v1.36.6 // indirect google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.5.1 // indirect lukechampine.com/frand v1.5.1 // indirect

View File

@@ -1,7 +1,5 @@
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= 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.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
@@ -23,6 +21,8 @@ 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/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 h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs=
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI= github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
@@ -39,8 +39,8 @@ github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQ
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= 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 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= 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 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
@@ -69,17 +69,17 @@ github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UN
github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= 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 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-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.16.0 h1:k3kuOEpkc0DeY7xlL6NaaNg39xdgQbtH5mwCafHO9AQ= github.com/go-git/go-git/v5 v5.16.5 h1:mdkuqblwr57kVfXri5TTH+nMFLNUxIj9Z7F5ykFbw5s=
github.com/go-git/go-git/v5 v5.16.0/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8= github.com/go-git/go-git/v5 v5.16.5/go.mod h1:QOMLpNf1qxuSY4StA/ArOdfFR2TrKEjJiye2kel2m+M=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= 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/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.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/glog v1.2.5/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 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= 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 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
@@ -146,8 +146,8 @@ 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/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 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pgavlin/fx/v2 v2.0.3 h1:ZBVklTFjxcWvBVPE+ti5qwnmTIQ0Gq6nuj3J5RKDtKk= github.com/pgavlin/fx/v2 v2.0.10 h1:ggyQ6pB+lEQEbEae48Wh/X221eLOamMD7i01ISe88u4=
github.com/pgavlin/fx/v2 v2.0.3/go.mod h1:Cvnwqq0BopdHUJ7CU50h1XPeKrF4ZwdFj1nJLXbAjCE= github.com/pgavlin/fx/v2 v2.0.10/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= 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 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -159,33 +159,31 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.14.3 h1:Zli+9LiSDT/W+Fsfr8tITxCo+5wn969tLrE4KLv44G8= github.com/pulumi/esc v0.23.0 h1:5lOXO+5vvXOEQxXw7cTuYhjg9lVng23f9XNLWDR9EP4=
github.com/pulumi/esc v0.14.3/go.mod h1:XnSxlt5NkmuAj304l/gK4pRErFbtqq6XpfX1tYT9Jbc= github.com/pulumi/esc v0.23.0/go.mod h1:mkghIFn/TvN3XnP4jmCB4U5BG1I4UjGluARi39ckrCE=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12 h1:uzmw+0iic764m0Yvh4I/jRV1x3q49dVh5Ctq9RllsQ8= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.15 h1:K6F/3o44gGj+ljRS4spCGvAXMSwECHITjaCccfjXNyE=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12/go.mod h1:6zFMe786NvFDO03BVJwdw1R/Yms4F6vAU49iBHo8zbQ= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.15/go.mod h1:cZyHs6q34kbQZJYaBjWUJhPsgwUFoL6xyjo7sRqBcv4=
github.com/pulumi/pulumi/sdk/v3 v3.187.0 h1:BflBBeD/qaoKN4Tov11g4aHzJ7pTXBSb8otgmteRer0= github.com/pulumi/pulumi/sdk/v3 v3.209.0 h1:Ti0FohAset2HEgogTxTOWoyvQd2N2+pkTSIn5DW3W7s=
github.com/pulumi/pulumi/sdk/v3 v3.187.0/go.mod h1:BnpKxUc6QlxqoCqobHNZsUuIuY27H6ZFUk0Cp+0JN5U= github.com/pulumi/pulumi/sdk/v3 v3.209.0/go.mod h1:qBMg01woyYVNqNDJXpFL1e5gdN7oQQvCNNNtfq1gsEo=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= 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/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/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=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= 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 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
@@ -193,7 +191,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 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.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.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.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 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/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 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
@@ -208,49 +205,49 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/zclconf/go-cty v1.16.2 h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70= github.com/zclconf/go-cty v1.16.3 h1:osr++gw2T61A8KVYHoQiFbFd1Lh3JOCXc/jFLJXKTxk=
github.com/zclconf/go-cty v1.16.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.16.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -266,34 +263,36 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 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-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.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -303,7 +302,6 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w= lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=

View File

@@ -1,9 +1,10 @@
package main package main
import ( import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
) )
func main() { func main() {

View File

@@ -8,8 +8,9 @@ import (
"path" "path"
"testing" "testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
) )
func TestGoExample(t *testing.T) { func TestGoExample(t *testing.T) {

View File

@@ -8,8 +8,9 @@ import (
"path" "path"
"testing" "testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
) )
func TestJavaExample(t *testing.T) { func TestJavaExample(t *testing.T) {

View File

@@ -5,6 +5,6 @@
}, },
"dependencies": { "dependencies": {
"typescript": "^4.0.0", "typescript": "^4.0.0",
"@pulumi/pulumi": "3.184.0" "@pulumi/pulumi": "3.231.0"
} }
} }

View File

@@ -16,14 +16,15 @@ import (
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ecr" "github.com/aws/aws-sdk-go/service/ecr"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/pulumi/providertest" "github.com/pulumi/providertest"
"github.com/pulumi/providertest/optproviderupgrade" "github.com/pulumi/providertest/optproviderupgrade"
"github.com/pulumi/providertest/pulumitest" "github.com/pulumi/providertest/pulumitest"
"github.com/pulumi/providertest/pulumitest/assertpreview" "github.com/pulumi/providertest/pulumitest/assertpreview"
"github.com/pulumi/providertest/pulumitest/opttest" "github.com/pulumi/providertest/pulumitest/opttest"
"github.com/pulumi/pulumi/pkg/v3/testing/integration" "github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
func TestNodeExample(t *testing.T) { func TestNodeExample(t *testing.T) {
@@ -181,8 +182,9 @@ func TestConfig(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
test := integration.ProgramTestOptions{ test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "tests", "config"), Dir: path.Join(cwd, "tests", "config"),
Dependencies: []string{"@pulumi/docker-build"}, Dependencies: []string{"@pulumi/docker-build"},
SkipEmptyPreviewUpdate: true,
} }
integration.ProgramTest(t, &test) integration.ProgramTest(t, &test)

View File

@@ -8,8 +8,9 @@ import (
"path" "path"
"testing" "testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
) )
func TestPythonExample(t *testing.T) { func TestPythonExample(t *testing.T) {

View File

@@ -4,6 +4,6 @@
"@types/node": "^20.0.0" "@types/node": "^20.0.0"
}, },
"dependencies": { "dependencies": {
"@pulumi/pulumi": "3.184.0" "@pulumi/pulumi": "3.231.0"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,6 @@
"@types/node": "^20.0.0" "@types/node": "^20.0.0"
}, },
"dependencies": { "dependencies": {
"@pulumi/pulumi": "3.184.0" "@pulumi/pulumi": "3.231.0"
} }
} }

View File

@@ -38,3 +38,5 @@ variables:
auth-token: auth-token:
fn::aws:ecr:getAuthorizationToken: fn::aws:ecr:getAuthorizationToken:
registryId: ${ecr-repository.registryId} registryId: ${ecr-repository.registryId}
config:
aws:region: us-west-2

View File

@@ -5,6 +5,6 @@
}, },
"dependencies": { "dependencies": {
"typescript": "^4.0.0", "typescript": "^4.0.0",
"@pulumi/pulumi": "3.184.0" "@pulumi/pulumi": "3.231.0"
} }
} }

View File

@@ -8,15 +8,17 @@ import (
"path" "path"
"testing" "testing"
"github.com/stretchr/testify/require"
"github.com/pulumi/providertest" "github.com/pulumi/providertest"
"github.com/pulumi/providertest/providers" "github.com/pulumi/providertest/providers"
"github.com/pulumi/providertest/pulumitest" "github.com/pulumi/providertest/pulumitest"
"github.com/pulumi/providertest/pulumitest/assertpreview" "github.com/pulumi/providertest/pulumitest/assertpreview"
"github.com/pulumi/providertest/pulumitest/opttest" "github.com/pulumi/providertest/pulumitest/opttest"
"github.com/pulumi/pulumi-docker-build/provider"
"github.com/pulumi/pulumi/pkg/v3/testing/integration" "github.com/pulumi/pulumi/pkg/v3/testing/integration"
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go" pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi-docker-build/provider"
) )
func TestYAMLExample(t *testing.T) { func TestYAMLExample(t *testing.T) {

341
go.mod
View File

@@ -1,6 +1,6 @@
module github.com/pulumi/pulumi-docker-build module github.com/pulumi/pulumi-docker-build
go 1.24.1 go 1.25.8
require ( require (
github.com/aws/aws-sdk-go v1.55.5 github.com/aws/aws-sdk-go v1.55.5
@@ -9,138 +9,92 @@ require (
github.com/docker/buildx v0.22.0 github.com/docker/buildx v0.22.0
github.com/docker/cli v28.0.4+incompatible github.com/docker/cli v28.0.4+incompatible
github.com/docker/docker v28.0.1+incompatible github.com/docker/docker v28.0.1+incompatible
github.com/golangci/golangci-lint v1.59.1
github.com/moby/buildkit v0.20.1 github.com/moby/buildkit v0.20.1
github.com/moby/patternmatcher v0.6.0 github.com/moby/patternmatcher v0.6.0
github.com/muesli/reflow v0.3.0 github.com/muesli/reflow v0.3.0
github.com/otiai10/copy v1.14.0 github.com/otiai10/copy v1.14.0
github.com/pulumi/providertest v0.3.1 github.com/pulumi/providertest v0.6.0
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.0.0-20250806132441-44ca9a522cef github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.103.0
github.com/pulumi/pulumi-go-provider v1.1.0 github.com/pulumi/pulumi-go-provider v1.3.1
github.com/pulumi/pulumi-java/pkg v1.16.0 github.com/pulumi/pulumi-java/pkg v1.22.0
github.com/pulumi/pulumi-yaml v1.21.2 github.com/pulumi/pulumi/pkg/v3 v3.230.0
github.com/pulumi/pulumi/pkg/v3 v3.187.0 github.com/pulumi/pulumi/sdk/v3 v3.230.0
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20250806165243-bee5e4fa4815
github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20250806165243-bee5e4fa4815
github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20250806165243-bee5e4fa4815
github.com/pulumi/pulumi/sdk/v3 v3.187.0
github.com/regclient/regclient v0.7.1 github.com/regclient/regclient v0.7.1
github.com/sirupsen/logrus v1.9.3 github.com/sirupsen/logrus v1.9.3
github.com/spf13/afero v1.14.0 github.com/spf13/afero v1.14.0
github.com/stretchr/testify v1.10.0 github.com/stretchr/testify v1.11.1
github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a
github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4
go.opentelemetry.io/otel/metric v1.36.0 go.opentelemetry.io/otel/metric v1.43.0
go.opentelemetry.io/otel/sdk v1.36.0 go.opentelemetry.io/otel/sdk v1.43.0
go.opentelemetry.io/otel/trace v1.36.0 go.opentelemetry.io/otel/trace v1.43.0
go.uber.org/mock v0.5.2 go.uber.org/mock v0.6.0
golang.org/x/crypto v0.39.0 golang.org/x/crypto v0.49.0
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 golang.org/x/exp v0.0.0-20250718183923-645b1fa84792
google.golang.org/protobuf v1.36.6 google.golang.org/protobuf v1.36.11
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )
require ( 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 v0.112.1 // indirect
cloud.google.com/go/compute/metadata v0.6.0 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect
cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/iam v1.1.6 // indirect
cloud.google.com/go/kms v1.15.7 // indirect cloud.google.com/go/kms v1.15.7 // indirect
cloud.google.com/go/logging v1.9.0 // indirect cloud.google.com/go/logging v1.9.0 // indirect
cloud.google.com/go/longrunning v0.5.5 // indirect cloud.google.com/go/longrunning v0.5.5 // indirect
cloud.google.com/go/storage v1.39.1 // indirect cloud.google.com/go/storage v1.39.1 // indirect
dario.cat/mergo v1.0.1 // 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-20240806141605-e8a1dd7889d6 // 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.17.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // 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.3.3 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 // indirect
github.com/BurntSushi/toml v1.5.0 // indirect github.com/BurntSushi/toml v1.6.0 // indirect
github.com/Crocmagnon/fatcontext v0.2.2 // indirect
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
github.com/ProtonMail/go-crypto v1.2.0 // indirect github.com/ProtonMail/go-crypto v1.2.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect
github.com/alecthomas/chroma v0.10.0 // indirect
github.com/alecthomas/chroma/v2 v2.13.0 // indirect
github.com/alecthomas/go-check-sumtype v0.1.4 // indirect
github.com/alexkohler/nakedret/v2 v2.0.4 // indirect
github.com/alexkohler/prealloc v1.0.0 // indirect
github.com/alingse/asasalint v0.0.11 // indirect
github.com/apparentlymart/go-cidr v1.0.1 // indirect github.com/apparentlymart/go-cidr v1.0.1 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/ashanbrown/forbidigo v1.6.0 // indirect
github.com/ashanbrown/makezero v1.1.1 // indirect
github.com/atotto/clipboard v0.1.4 // indirect github.com/atotto/clipboard v0.1.4 // indirect
github.com/aws/aws-sdk-go-v2 v1.30.3 // indirect github.com/aws/aws-sdk-go-v2 v1.41.5 // 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/config v1.27.27 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.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/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.4.21 // 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.7.21 // 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/ini v1.8.0 // 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.13.7 // 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/presigned-url v1.13.21 // 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/kms v1.30.1 // 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/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/ssooidc v1.26.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // 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/aws/smithy-go v1.24.2 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/aymerick/douceur v0.2.0 // indirect github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/bkielbasa/cyclop v1.2.1 // indirect
github.com/blizzy78/varnamelen v0.8.0 // indirect
github.com/bombsimon/wsl/v4 v4.2.1 // indirect
github.com/breml/bidichk v0.2.7 // indirect
github.com/breml/errchkjson v0.3.6 // indirect
github.com/butuzov/ireturn v0.3.0 // indirect
github.com/butuzov/mirror v1.2.0 // indirect
github.com/catenacyber/perfsprint v0.7.1 // indirect
github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.2 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charithe/durationcheck v0.0.10 // indirect github.com/charmbracelet/bubbles v1.0.0 // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/bubbletea v1.3.4 // indirect github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/colorprofile v0.3.0 // indirect
github.com/charmbracelet/glamour v0.6.0 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect github.com/charmbracelet/x/ansi v0.11.6 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/chavacava/garif v0.1.0 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect github.com/cheggaaa/pb v1.0.29 // indirect
github.com/ckaznocha/intrange v0.1.2 // indirect github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/cloudflare/circl v1.6.1 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/compose-spec/compose-go/v2 v2.4.8 // indirect github.com/compose-spec/compose-go/v2 v2.4.8 // indirect
github.com/containerd/console v1.0.4 // indirect github.com/containerd/console v1.0.4 // indirect
github.com/containerd/containerd/api v1.8.0 // indirect github.com/containerd/containerd/api v1.8.0 // indirect
github.com/containerd/containerd/v2 v2.0.3 // indirect github.com/containerd/containerd/v2 v2.0.7 // indirect
github.com/containerd/continuity v0.4.5 // indirect github.com/containerd/continuity v0.4.5 // indirect
github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect
@@ -148,15 +102,10 @@ require (
github.com/containerd/platforms v1.0.0-rc.1 // indirect github.com/containerd/platforms v1.0.0-rc.1 // indirect
github.com/containerd/ttrpc v1.2.7 // indirect github.com/containerd/ttrpc v1.2.7 // indirect
github.com/containerd/typeurl/v2 v2.2.3 // 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.4.1 // 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.2-0.20180830191138-d8f796af33cc // 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/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/djherbis/times v1.6.0 // indirect
github.com/dlclark/regexp2 v1.11.0 // indirect
github.com/docker/cli-docs-tool v0.9.0 // indirect github.com/docker/cli-docs-tool v0.9.0 // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/docker-credential-helpers v0.8.2 // indirect
@@ -164,78 +113,50 @@ require (
github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-metrics v0.0.1 // indirect
github.com/docker/go-units v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/edsrzf/mmap-go v1.2.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/erikgeiser/promptkit v0.9.0 // indirect
github.com/ettle/strcase v0.2.0 // indirect
github.com/fatih/color v1.17.0 // indirect github.com/fatih/color v1.17.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/firefart/nonamedreturns v1.0.5 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fvbommel/sortorder v1.0.1 // indirect github.com/fvbommel/sortorder v1.0.1 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/fzipp/gocyclo v0.6.0 // indirect github.com/git-pkgs/manifests v0.4.1 // indirect
github.com/ghostiam/protogetter v0.3.6 // indirect github.com/git-pkgs/packageurl-go v0.3.1 // indirect
github.com/go-critic/go-critic v0.11.4 // indirect github.com/git-pkgs/purl v0.1.10 // indirect
github.com/git-pkgs/vers v0.2.4 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // indirect github.com/go-git/go-billy/v5 v5.8.0 // indirect
github.com/go-git/go-git/v5 v5.16.0 // indirect github.com/go-git/go-git/v5 v5.17.2 // indirect
github.com/go-jose/go-jose/v3 v3.0.4 // indirect github.com/go-jose/go-jose/v3 v3.0.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.4 // indirect github.com/go-openapi/swag v0.22.4 // indirect
github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-test/deep v1.1.1 // indirect
github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/go-toolsmith/astequal v1.2.0 // indirect
github.com/go-toolsmith/astfmt v1.1.0 // indirect
github.com/go-toolsmith/astp v1.1.0 // indirect
github.com/go-toolsmith/strparse v1.1.0 // indirect
github.com/go-toolsmith/typep v1.1.0 // indirect
github.com/go-viper/mapstructure/v2 v2.0.0 // indirect
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect github.com/gofrs/flock v0.12.1 // indirect
github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
github.com/golang/glog v1.2.4 // indirect github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/golang/protobuf v1.5.4 // indirect github.com/golang/protobuf v1.5.4 // indirect
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
github.com/golangci/misspell v0.6.0 // indirect
github.com/golangci/modinfo v0.3.4 // indirect
github.com/golangci/plugin-module-register v0.1.1 // indirect
github.com/golangci/revgrep v0.5.3 // indirect
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
github.com/google/s2a-go v0.1.7 // indirect github.com/google/s2a-go v0.1.7 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/google/wire v0.6.0 // indirect github.com/google/wire v0.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.2 // indirect 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.1 // indirect github.com/gorilla/mux v1.8.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect
github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // 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.26.3 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
@@ -246,59 +167,28 @@ require (
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-sockaddr v1.0.6 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/hashicorp/vault/api v1.12.0 // indirect github.com/hashicorp/vault/api v1.12.0 // indirect
github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/iancoleman/strcase v0.3.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/imdario/mergo v0.3.16 // indirect
github.com/in-toto/in-toto-golang v0.5.0 // indirect github.com/in-toto/in-toto-golang v0.5.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/iwdgo/sigintwindows v0.2.2 // indirect github.com/iwdgo/sigintwindows v0.2.2 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jgautheron/goconst v1.7.1 // indirect
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
github.com/jjti/go-spancheck v0.6.1 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jonboulle/clockwork v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect github.com/json-iterator/go v1.1.12 // indirect
github.com/julz/importas v0.1.0 // indirect
github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/kisielk/errcheck v1.7.0 // indirect github.com/klauspost/compress v1.18.0 // indirect
github.com/kkHAIKE/contextcheck v1.1.5 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/kulti/thelper v0.6.3 // indirect
github.com/kunwardeep/paralleltest v1.0.10 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect
github.com/kyoh86/exportloopref v0.1.11 // indirect github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
github.com/lasiar/canonicalheader v1.1.1 // indirect
github.com/ldez/gomoddirectives v0.2.4 // indirect
github.com/ldez/tagliatelle v0.5.0 // indirect
github.com/leonklingele/grouper v1.1.2 // indirect
github.com/lib/pq v1.10.9 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/lufeee/execinquery v1.2.1 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/macabu/inamedparam v0.1.3 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mailru/easyjson v0.7.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect
github.com/maratori/testableexamples v1.0.0 // indirect github.com/mattn/go-isatty v0.0.21 // indirect
github.com/maratori/testpackage v1.1.1 // indirect
github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.23 // indirect
github.com/mattn/go-shellwords v1.0.12 // indirect github.com/mattn/go-shellwords v1.0.12 // indirect
github.com/mgechev/revive v1.3.7 // indirect
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect
@@ -308,7 +198,6 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/locker v1.0.1 // indirect github.com/moby/locker v1.0.1 // indirect
github.com/moby/moby v28.3.3+incompatible // indirect
github.com/moby/spdystream v0.4.0 // indirect github.com/moby/spdystream v0.4.0 // indirect
github.com/moby/sys/mountinfo v0.7.2 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect
github.com/moby/sys/sequential v0.6.0 // indirect github.com/moby/sys/sequential v0.6.0 // indirect
@@ -317,170 +206,105 @@ require (
github.com/moby/sys/userns v0.1.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect
github.com/moby/term v0.5.2 // indirect github.com/moby/term v0.5.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/moricho/tparallel v0.3.1 // indirect
github.com/morikuni/aec v1.0.0 // indirect github.com/morikuni/aec v1.0.0 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect github.com/muesli/termenv v0.16.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/nakabonne/nestif v0.3.1 // indirect
github.com/natefinch/atomic v1.0.1 // indirect github.com/natefinch/atomic v1.0.1 // indirect
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
github.com/nishanths/exhaustive v0.12.0 // indirect
github.com/nishanths/predeclared v0.2.2 // indirect
github.com/nunnatsa/ginkgolinter v0.16.2 // indirect
github.com/nxadm/tail v1.4.11 // indirect github.com/nxadm/tail v1.4.11 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pgavlin/aho-corasick v0.5.1 // indirect
github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e // indirect
github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pgavlin/text v0.0.0-20240821195002-b51d0990e284 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // 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.20.5 // indirect github.com/prometheus/client_golang v1.20.5 // indirect
github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.17.0 // indirect github.com/pulumi/esc v0.23.0 // indirect
github.com/pulumi/inflector v0.2.1 // indirect github.com/pulumi/inflector v0.2.1 // indirect
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect
github.com/quasilyte/gogrep v0.5.0 // indirect
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // 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
github.com/ryanuber/go-glob v1.0.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
github.com/sashamelentyev/usestdlibvars v1.26.0 // indirect
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect
github.com/segmentio/asm v1.2.0 // indirect github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/encoding v0.4.1 // indirect github.com/segmentio/encoding v0.4.1 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.4.0 // indirect
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
github.com/shibumi/go-pathspec v1.3.0 // indirect github.com/shibumi/go-pathspec v1.3.0 // indirect
github.com/shirou/gopsutil/v3 v3.24.5 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
github.com/sivchari/containedctx v1.0.3 // indirect
github.com/sivchari/tenv v1.7.1 // indirect
github.com/skeema/knownhosts v1.3.1 // 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/cast v1.5.0 // indirect
github.com/spf13/cobra v1.9.1 // indirect github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.10 // 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
github.com/stretchr/objx v0.5.2 // indirect
github.com/subosito/gotenv v1.4.1 // indirect
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
github.com/tdakkota/asciicheck v0.2.0 // indirect
github.com/tetafro/godot v1.4.16 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect
github.com/timonwong/loggercheck v0.9.4 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect
github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250211190051-7d4944a45bb6 // 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/units v0.0.0-20180711220420-6950e57a87ea // indirect
github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/ulikunitz/xz v0.5.12 // indirect github.com/ulikunitz/xz v0.5.15 // 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/x448/float16 v0.8.4 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/xen0n/gosmopolitan v1.2.2 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yagipy/maintidx v1.0.0 // indirect github.com/zclconf/go-cty v1.17.0 // indirect
github.com/yeya24/promlinter v0.3.0 // indirect
github.com/ykadowak/zerologlint v0.1.5 // indirect
github.com/yuin/goldmark v1.5.2 // indirect
github.com/yuin/goldmark-emoji v1.0.1 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
github.com/zclconf/go-cty v1.16.3 // indirect
gitlab.com/bosi/decorder v0.4.2 // indirect
go-simpler.org/musttag v0.12.2 // indirect
go-simpler.org/sloglint v0.7.1 // indirect
go.opencensus.io v0.24.0 // indirect go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/collector/featuregate v1.55.0 // indirect
go.opentelemetry.io/collector/pdata v1.55.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.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/httptrace/otelhttptrace v0.56.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect
go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/bridge/opentracing v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.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/otlpmetric/otlpmetrichttp v1.31.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp 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/otel/sdk/metric v1.43.0 // indirect
go.opentelemetry.io/proto/otlp v1.6.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.pennock.tech/tabular v1.1.3 // indirect
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
go.uber.org/multierr v1.11.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 v0.37.0 // indirect
gocloud.dev/secrets/hashivault 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.33.0 // indirect
golang.org/x/mod v0.25.0 // indirect golang.org/x/net v0.52.0 // indirect
golang.org/x/net v0.40.0 // indirect golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect golang.org/x/sync v0.20.0 // indirect
golang.org/x/sync v0.15.0 // indirect golang.org/x/sys v0.43.0 // indirect
golang.org/x/sys v0.33.0 // indirect golang.org/x/term v0.41.0 // indirect
golang.org/x/term v0.32.0 // indirect golang.org/x/text v0.35.0 // indirect
golang.org/x/text v0.26.0 // indirect golang.org/x/time v0.12.0 // indirect
golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.42.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
google.golang.org/api v0.169.0 // indirect google.golang.org/api v0.169.0 // indirect
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect
google.golang.org/grpc v1.72.1 // indirect google.golang.org/grpc v1.80.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect
honnef.co/go/tools v0.4.7 // indirect
k8s.io/api v0.31.2 // indirect k8s.io/api v0.31.2 // indirect
k8s.io/apimachinery v0.31.2 // indirect k8s.io/apimachinery v0.31.2 // indirect
k8s.io/client-go v0.31.2 // indirect k8s.io/client-go v0.31.2 // indirect
@@ -489,7 +313,6 @@ require (
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
lukechampine.com/frand v1.5.1 // indirect lukechampine.com/frand v1.5.1 // indirect
mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/gofumpt v0.6.0 // indirect
mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect

827
go.sum

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,2 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
[tools] [tools]
golangci-lint = "2.7.0"
# Runtimes
go = '1.21'
node = '20'
python = '3.11.8'
dotnet = '8.0'
# Corretto version used as Java SE/OpenJDK version no longer offered
java = 'corretto-11'
# Executable tools
pulumi = 'latest'
"go:github.com/pulumi/pulumictl/cmd/pulumictl" = 'latest'
gradle = '7.6'
[settings]
experimental = true # Required for Go binaries (e.g. pulumictl).

View File

@@ -16,8 +16,9 @@
package main package main
import ( import (
"github.com/pulumi/pulumi-docker-build/provider"
"github.com/pulumi/pulumi/sdk/v3/go/common/util/cmdutil" "github.com/pulumi/pulumi/sdk/v3/go/common/util/cmdutil"
"github.com/pulumi/pulumi-docker-build/provider"
) )
func main() { func main() {

View File

@@ -12,9 +12,6 @@
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": "https://github.com/pulumi/pulumi-docker-build", "repository": "https://github.com/pulumi/pulumi-docker-build",
"publisher": "Pulumi", "publisher": "Pulumi",
"meta": {
"moduleFormat": "(.*)"
},
"language": { "language": {
"csharp": { "csharp": {
"packageReferences": { "packageReferences": {
@@ -155,32 +152,12 @@
] ]
}, },
"docker-build:index:CacheFromGitHubActions": { "docker-build:index:CacheFromGitHubActions": {
"description": "Recommended for use with GitHub Actions workflows.\n\nAn action like `crazy-max/ghaction-github-runtime` is recommended to expose\nappropriate credentials to your GitHub workflow.",
"properties": { "properties": {
"scope": { "scope": {
"type": "string", "type": "string",
"description": "The scope to use for cache keys. Defaults to `buildkit`.\n\nThis should be set if building and caching multiple images in one\nworkflow, otherwise caches will overwrite each other.", "description": "The scope to use for cache keys. Defaults to `buildkit`.\n\nThis should be set if building and caching multiple images in one\nworkflow, otherwise caches will overwrite each other.",
"default": "buildkit" "default": "buildkit"
},
"token": {
"type": "string",
"description": "The GitHub Actions token to use. This is not a personal access tokens\nand is typically generated automatically as part of each job.\n\nDefaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like\n`crazy-max/ghaction-github-runtime` is recommended to expose this\nenvironment variable to your jobs.",
"default": "",
"defaultInfo": {
"environment": [
"ACTIONS_RUNTIME_TOKEN"
]
},
"secret": true
},
"url": {
"type": "string",
"description": "The cache server URL to use for artifacts.\n\nDefaults to `$ACTIONS_CACHE_URL`, although a separate action like\n`crazy-max/ghaction-github-runtime` is recommended to expose this\nenvironment variable to your jobs.",
"default": "",
"defaultInfo": {
"environment": [
"ACTIONS_CACHE_URL"
]
}
} }
}, },
"type": "object" "type": "object"
@@ -284,8 +261,8 @@
}, },
"type": "object", "type": "object",
"required": [ "required": [
"bucket", "region",
"region" "bucket"
] ]
}, },
"docker-build:index:CacheMode": { "docker-build:index:CacheMode": {
@@ -370,6 +347,7 @@
] ]
}, },
"docker-build:index:CacheToGitHubActions": { "docker-build:index:CacheToGitHubActions": {
"description": "Recommended for use with GitHub Actions workflows.\n\nAn action like `crazy-max/ghaction-github-runtime` is recommended to expose\nappropriate credentials to your GitHub workflow.",
"properties": { "properties": {
"ignoreError": { "ignoreError": {
"type": "boolean", "type": "boolean",
@@ -385,27 +363,6 @@
"type": "string", "type": "string",
"description": "The scope to use for cache keys. Defaults to `buildkit`.\n\nThis should be set if building and caching multiple images in one\nworkflow, otherwise caches will overwrite each other.", "description": "The scope to use for cache keys. Defaults to `buildkit`.\n\nThis should be set if building and caching multiple images in one\nworkflow, otherwise caches will overwrite each other.",
"default": "buildkit" "default": "buildkit"
},
"token": {
"type": "string",
"description": "The GitHub Actions token to use. This is not a personal access tokens\nand is typically generated automatically as part of each job.\n\nDefaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like\n`crazy-max/ghaction-github-runtime` is recommended to expose this\nenvironment variable to your jobs.",
"default": "",
"defaultInfo": {
"environment": [
"ACTIONS_RUNTIME_TOKEN"
]
},
"secret": true
},
"url": {
"type": "string",
"description": "The cache server URL to use for artifacts.\n\nDefaults to `$ACTIONS_CACHE_URL`, although a separate action like\n`crazy-max/ghaction-github-runtime` is recommended to expose this\nenvironment variable to your jobs.",
"default": "",
"defaultInfo": {
"environment": [
"ACTIONS_CACHE_URL"
]
}
} }
}, },
"type": "object" "type": "object"
@@ -579,8 +536,8 @@
}, },
"type": "object", "type": "object",
"required": [ "required": [
"bucket", "region",
"region" "bucket"
] ]
}, },
"docker-build:index:CompressionType": { "docker-build:index:CompressionType": {
@@ -1084,9 +1041,14 @@
"DOCKER_HOST" "DOCKER_HOST"
] ]
} }
},
"registries": {
"type": "array",
"items": {
"$ref": "#/types/docker-build:index:Registry"
}
} }
}, },
"type": "object",
"inputProperties": { "inputProperties": {
"host": { "host": {
"type": "string", "type": "string",
@@ -1246,11 +1208,10 @@
"description": "Set the target build stage(s) to build.\n\nIf not specified all targets will be built by default.\n\nEquivalent to Docker's `--target` flag." "description": "Set the target build stage(s) to build.\n\nIf not specified all targets will be built by default.\n\nEquivalent to Docker's `--target` flag."
} }
}, },
"type": "object",
"required": [ "required": [
"contextHash",
"digest",
"push", "push",
"digest",
"contextHash",
"ref" "ref"
], ],
"inputProperties": { "inputProperties": {
@@ -1410,11 +1371,10 @@
"description": "The tag to apply to the index." "description": "The tag to apply to the index."
} }
}, },
"type": "object",
"required": [ "required": [
"ref", "tag",
"sources", "sources",
"tag" "ref"
], ],
"inputProperties": { "inputProperties": {
"push": { "push": {
@@ -1439,8 +1399,8 @@
} }
}, },
"requiredInputs": [ "requiredInputs": [
"sources", "tag",
"tag" "sources"
] ]
} }
} }

View File

@@ -17,6 +17,7 @@ package internal
import ( import (
"errors" "errors"
"fmt" "fmt"
"os"
"strings" "strings"
controllerapi "github.com/docker/buildx/controller/pb" controllerapi "github.com/docker/buildx/controller/pb"
@@ -148,33 +149,20 @@ func (c CacheWithOCI) String() string {
// CacheFromGitHubActions pulls cache manifests from the GitHub actions cache. // CacheFromGitHubActions pulls cache manifests from the GitHub actions cache.
type CacheFromGitHubActions struct { type CacheFromGitHubActions struct {
URL string `pulumi:"url,optional"`
Token string `pulumi:"token,optional" provider:"secret"`
Scope string `pulumi:"scope,optional"` Scope string `pulumi:"scope,optional"`
} }
// Annotate sets docstrings on CacheFromGitHubActions. // Annotate sets docstrings on CacheFromGitHubActions.
func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) { func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) {
a.SetDefault(&c.URL, "", "ACTIONS_CACHE_URL") a.Describe(&c, dedent(`
a.SetDefault(&c.Token, "", "ACTIONS_RUNTIME_TOKEN") Recommended for use with GitHub Actions workflows.
An action like "crazy-max/ghaction-github-runtime" is recommended to expose
appropriate credentials to your GitHub workflow.
`))
a.SetDefault(&c.Scope, "buildkit") a.SetDefault(&c.Scope, "buildkit")
a.Describe(&c.URL, dedent(`
The cache server URL to use for artifacts.
Defaults to "$ACTIONS_CACHE_URL", although a separate action like
"crazy-max/ghaction-github-runtime" is recommended to expose this
environment variable to your jobs.
`))
a.Describe(&c.Token, dedent(`
The GitHub Actions token to use. This is not a personal access tokens
and is typically generated automatically as part of each job.
Defaults to "$ACTIONS_RUNTIME_TOKEN", although a separate action like
"crazy-max/ghaction-github-runtime" is recommended to expose this
environment variable to your jobs.
`))
a.Describe(&c.Scope, dedent(` a.Describe(&c.Scope, dedent(`
The scope to use for cache keys. Defaults to "buildkit". The scope to use for cache keys. Defaults to "buildkit".
@@ -191,11 +179,12 @@ func (c *CacheFromGitHubActions) String() string {
if c.Scope != "" { if c.Scope != "" {
parts = append(parts, "scope="+c.Scope) parts = append(parts, "scope="+c.Scope)
} }
if c.Token != "" { // Preserving backwards compatibility with the old behaviour.
parts = append(parts, "token="+c.Token) if token := os.Getenv("ACTIONS_RUNTIME_TOKEN"); token != "" {
parts = append(parts, "token="+token)
} }
if c.URL != "" { if url := os.Getenv("ACTIONS_CACHE_URL"); url != "" {
parts = append(parts, "url="+c.URL) parts = append(parts, "url="+url)
} }
return strings.Join(parts, ",") return strings.Join(parts, ",")
} }
@@ -459,7 +448,7 @@ func (c CacheFrom) String() string {
return join(c.Local, c.Registry, c.GHA, c.AZBlob, c.S3, c.Raw) return join(c.Local, c.Registry, c.GHA, c.AZBlob, c.S3, c.Raw)
} }
func (c CacheFrom) validate(preview bool) (*controllerapi.CacheOptionsEntry, error) { func (c CacheFrom) validate(_ bool) (*controllerapi.CacheOptionsEntry, error) {
if strings.Count(c.String(), "type=") > 1 { if strings.Count(c.String(), "type=") > 1 {
return nil, errors.New("cacheFrom should only specify one cache type") return nil, errors.New("cacheFrom should only specify one cache type")
} }
@@ -683,7 +672,7 @@ func (c CacheTo) String() string {
return join(c.Inline, c.Local, c.Registry, c.GHA, c.AZBlob, c.S3, c.Raw) return join(c.Inline, c.Local, c.Registry, c.GHA, c.AZBlob, c.S3, c.Raw)
} }
func (c CacheTo) validate(preview bool) (*controllerapi.CacheOptionsEntry, error) { func (c CacheTo) validate(_ bool) (*controllerapi.CacheOptionsEntry, error) {
if strings.Count(c.String(), "type=") > 1 { if strings.Count(c.String(), "type=") > 1 {
return nil, errors.New("cacheTo should only specify one cache type") return nil, errors.New("cacheTo should only specify one cache type")
} }

View File

@@ -24,14 +24,15 @@ import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
) )
//nolint:paralleltest // We don't call t.Parallel here to prevent environment corruption.
func TestCacheString(t *testing.T) { func TestCacheString(t *testing.T) {
t.Parallel()
gzip := Gzip gzip := Gzip
tests := []struct { tests := []struct {
name string name string
given fmt.Stringer arrange func(t *testing.T)
want string given fmt.Stringer
want string
}{ }{
{ {
name: "s3", name: "s3",
@@ -55,7 +56,37 @@ func TestCacheString(t *testing.T) {
{ {
name: "gha", name: "gha",
given: CacheTo{GHA: &CacheToGitHubActions{}}, given: CacheTo{GHA: &CacheToGitHubActions{}},
want: "type=gha", arrange: func(t *testing.T) {
t.Setenv("ACTIONS_CACHE_URL", "")
t.Setenv("ACTIONS_RUNTIME_TOKEN", "")
},
want: "type=gha",
},
{
name: "gha-default-envs",
arrange: func(t *testing.T) {
t.Setenv("ACTIONS_CACHE_URL", "https://example.com")
t.Setenv("ACTIONS_RUNTIME_TOKEN", "token")
},
given: CacheTo{GHA: &CacheToGitHubActions{
CacheFromGitHubActions: CacheFromGitHubActions{
Scope: "scope",
},
}},
want: "type=gha,scope=scope,token=token,url=https://example.com",
},
{
name: "gha-with-scope",
arrange: func(t *testing.T) {
t.Setenv("ACTIONS_CACHE_URL", "")
t.Setenv("ACTIONS_RUNTIME_TOKEN", "")
},
given: CacheTo{GHA: &CacheToGitHubActions{
CacheFromGitHubActions: CacheFromGitHubActions{
Scope: "scope",
},
}},
want: "type=gha,scope=scope",
}, },
{ {
name: "from-local", name: "from-local",
@@ -121,9 +152,12 @@ func TestCacheString(t *testing.T) {
}, },
} }
//nolint:paralleltest // We don't call t.Parallel here to prevent environment corruption.
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
t.Parallel() if tt.arrange != nil {
tt.arrange(t)
}
actual := tt.given.String() actual := tt.given.String()
assert.Equal(t, tt.want, actual) assert.Equal(t, tt.want, actual)

View File

@@ -170,7 +170,7 @@ func hashFile(
if fileMode.IsDir() { if fileMode.IsDir() {
return nil return nil
} }
if !(fileMode.IsRegular() || fileMode.Type() == os.ModeSymlink) { if !fileMode.IsRegular() && fileMode.Type() != os.ModeSymlink {
return nil return nil
} }

View File

@@ -28,6 +28,10 @@ import (
"github.com/pulumi/pulumi-go-provider/infer" "github.com/pulumi/pulumi-go-provider/infer"
) )
const (
trueLiteral = "true"
)
var ( var (
_ fmt.Stringer = (*Export)(nil) _ fmt.Stringer = (*Export)(nil)
_ fmt.Stringer = (*ExportDocker)(nil) _ fmt.Stringer = (*ExportDocker)(nil)
@@ -114,7 +118,7 @@ func (e Export) pushed() bool {
if err != nil { if err != nil {
return false return false
} }
return exp[0].Attrs["push"] == "true" return exp[0].Attrs["push"] == trueLiteral
} }
if e.Registry != nil { if e.Registry != nil {
return e.Registry.Push == nil || *e.Registry.Push return e.Registry.Push == nil || *e.Registry.Push
@@ -182,7 +186,7 @@ func parseExports(inp []string) ([]*controllerapi.ExportEntry, error) {
if out.Type == "registry" { if out.Type == "registry" {
out.Type = client.ExporterImage out.Type = client.ExporterImage
if _, ok := out.Attrs["push"]; !ok { if _, ok := out.Attrs["push"]; !ok {
out.Attrs["push"] = "true" out.Attrs["push"] = trueLiteral
} }
} }

View File

@@ -43,7 +43,7 @@ type host struct {
supportsMultipleExports bool supportsMultipleExports bool
} }
func newHost(ctx context.Context, config *Config) (*host, error) { func newHost(_ context.Context, config *Config) (*host, error) {
docker, err := newDockerCLI(config) docker, err := newDockerCLI(config)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -98,13 +98,13 @@ func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, err
if err != nil && build.ShouldExec() && strings.HasPrefix(opts.Builder, "cloud-") { if err != nil && build.ShouldExec() && strings.HasPrefix(opts.Builder, "cloud-") {
//nolint:revive // Human-readable. //nolint:revive // Human-readable.
err = errors.Join(err, err = errors.Join(err,
errors.New("Make sure you're logged in to Docker (`docker login`) if you're trying to use a cloud builder."), errors.New("Make sure you're logged in to Docker (`docker login`) if you're trying to use a cloud builder"), //nolint:lll,staticcheck
errors.New("Make sure you have the correct buildx plugin installed (https://github.com/docker/buildx-desktop)."), errors.New("Make sure you have the correct buildx plugin installed (https://github.com/docker/buildx-desktop)"), //nolint:lll,staticcheck
) )
} }
if err != nil && build.ShouldExec() { if err != nil && build.ShouldExec() {
//nolint:revive // Human-readable. //nolint:revive // Human-readable.
err = errors.Join(err, errors.New( err = errors.Join(err, errors.New( //nolint:staticcheck
"Make sure your buildx plugin is executable (`docker buildx version`)"), "Make sure your buildx plugin is executable (`docker buildx version`)"),
) )
} }
@@ -176,8 +176,8 @@ func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, err
if err != nil && !build.ShouldExec() { if err != nil && !build.ShouldExec() {
if strings.Contains(err.Error(), "failed to find driver") { if strings.Contains(err.Error(), "failed to find driver") {
//nolint:revive // Human-readable. //nolint:revive // Human-readable.
err = errors.Join(err, errors.New( err = errors.Join(err, errors.New( //nolint:staticcheck
"Use `exec: true` if you're trying to use Docker Build Cloud or other custom drivers.", "Use `exec: true` if you're trying to use Docker Build Cloud or other custom drivers",
)) ))
} }
return nil, fmt.Errorf("loading nodes: %w", err) return nil, fmt.Errorf("loading nodes: %w", err)

View File

@@ -84,7 +84,7 @@ func TestImageLifecycle(t *testing.T) {
Return(nil) Return(nil)
return c return c
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -130,7 +130,7 @@ func TestImageLifecycle(t *testing.T) {
{ {
name: "tags are required when pushing", name: "tags are required when pushing",
client: noClient, client: noClient,
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -159,7 +159,7 @@ func TestImageLifecycle(t *testing.T) {
{ {
name: "invalid exports", name: "invalid exports",
client: noClient, client: noClient,
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -192,7 +192,7 @@ func TestImageLifecycle(t *testing.T) {
) )
return c return c
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -219,7 +219,7 @@ func TestImageLifecycle(t *testing.T) {
) )
return c return c
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -252,7 +252,7 @@ func TestImageLifecycle(t *testing.T) {
c.EXPECT().Delete(gomock.Any(), "default-dockerfile").Return(nil) c.EXPECT().Delete(gomock.Any(), "default-dockerfile").Return(nil)
return c return c
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -294,7 +294,7 @@ func TestImageLifecycle(t *testing.T) {
c.EXPECT().Delete(gomock.Any(), "inline-dockerfile").Return(nil) c.EXPECT().Delete(gomock.Any(), "inline-dockerfile").Return(nil)
return c return c
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"push": property.New(false), "push": property.New(false),
@@ -459,7 +459,7 @@ func TestImageDiff(t *testing.T) {
is.Pull = true is.Pull = true
return is return is
}, },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.Pull = true ia.Pull = true
return ia return ia
}, },
@@ -472,7 +472,7 @@ func TestImageDiff(t *testing.T) {
is.Load = true is.Load = true
return is return is
}, },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.Pull = true ia.Pull = true
ia.Load = true ia.Load = true
return ia return ia
@@ -534,7 +534,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if pull changes", name: "diff if pull changes",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.Pull = true ia.Pull = true
return ia return ia
}, },
@@ -543,7 +543,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if load changes", name: "diff if load changes",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.Load = true ia.Load = true
return ia return ia
}, },
@@ -552,7 +552,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if push changes", name: "diff if push changes",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.Push = true ia.Push = true
return ia return ia
}, },
@@ -561,7 +561,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if buildOnPreview doesn't change", name: "diff if buildOnPreview doesn't change",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
val := true val := true
ia.BuildOnPreview = &val ia.BuildOnPreview = &val
return ia return ia
@@ -571,7 +571,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if buildOnPreview changes", name: "diff if buildOnPreview changes",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
val := false val := false
ia.BuildOnPreview = &val ia.BuildOnPreview = &val
return ia return ia
@@ -581,7 +581,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if ssh changes", name: "diff if ssh changes",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.SSH = []SSH{{ID: "default"}} ia.SSH = []SSH{{ID: "default"}}
return ia return ia
}, },
@@ -590,7 +590,7 @@ func TestImageDiff(t *testing.T) {
{ {
name: "diff if hosts change", name: "diff if hosts change",
state: func(*testing.T, ImageState) ImageState { return baseState }, state: func(*testing.T, ImageState) ImageState { return baseState },
inputs: func(t *testing.T, ia ImageArgs) ImageArgs { inputs: func(_ *testing.T, ia ImageArgs) ImageArgs {
ia.AddHosts = []string{"localhost"} ia.AddHosts = []string{"localhost"}
return ia return ia
}, },
@@ -751,7 +751,7 @@ func TestImageDiff(t *testing.T) {
}, },
{ {
name: "diff if local export doesn't exist", name: "diff if local export doesn't exist",
state: func(t *testing.T, state ImageState) ImageState { state: func(_ *testing.T, state ImageState) ImageState {
state.Exports = []Export{ state.Exports = []Export{
{Local: &ExportLocal{Dest: "not-real"}}, {Local: &ExportLocal{Dest: "not-real"}},
} }
@@ -767,7 +767,7 @@ func TestImageDiff(t *testing.T) {
}, },
{ {
name: "diff if tar export doesn't exist", name: "diff if tar export doesn't exist",
state: func(t *testing.T, state ImageState) ImageState { state: func(_ *testing.T, state ImageState) ImageState {
state.Exports = []Export{ state.Exports = []Export{
{Tar: &ExportTar{ExportLocal: ExportLocal{Dest: "not-real"}}}, {Tar: &ExportTar{ExportLocal: ExportLocal{Dest: "not-real"}}},
} }
@@ -917,8 +917,10 @@ func TestValidateImageArgs(t *testing.T) {
{ {
name: "gha environment", name: "gha environment",
envs: map[string]string{ envs: map[string]string{
"ACTIONS_CACHE_URL": "test-cache-url", "ACTIONS_CACHE_URL": "test-cache-url",
"ACTIONS_RUNTIME_TOKEN": "test-runtime-token", "ACTIONS_RUNTIME_TOKEN": "test-runtime-token",
"ACTIONS_RESULTS_URL": "test-results-url",
"ACTIONS_CACHE_SERVICE_V2": "true",
}, },
args: ImageArgs{ args: ImageArgs{
Context: &BuildContext{Context: Context{Location: "testdata/noop"}}, Context: &BuildContext{Context: Context{Location: "testdata/noop"}},
@@ -930,15 +932,17 @@ func TestValidateImageArgs(t *testing.T) {
wantCacheFrom: &pb.CacheOptionsEntry{ wantCacheFrom: &pb.CacheOptionsEntry{
Type: "gha", Type: "gha",
Attrs: map[string]string{ Attrs: map[string]string{
"token": "test-runtime-token", "token": "test-runtime-token",
"url": "test-cache-url", "url": "test-cache-url",
"url_v2": "test-results-url",
}, },
}, },
wantCacheTo: &pb.CacheOptionsEntry{ wantCacheTo: &pb.CacheOptionsEntry{
Type: "gha", Type: "gha",
Attrs: map[string]string{ Attrs: map[string]string{
"token": "test-runtime-token", "token": "test-runtime-token",
"url": "test-cache-url", "url": "test-cache-url",
"url_v2": "test-results-url",
}, },
}, },
}, },

View File

@@ -32,7 +32,7 @@ import (
func TestIndexLifecycle(t *testing.T) { func TestIndexLifecycle(t *testing.T) {
t.Parallel() t.Parallel()
realClient := func(t *testing.T) clientF { return RealClientF } realClient := func(_ *testing.T) clientF { return RealClientF }
tests := []struct { tests := []struct {
name string name string
@@ -44,7 +44,7 @@ func TestIndexLifecycle(t *testing.T) {
{ {
name: "not pushed", name: "not pushed",
client: realClient, client: realClient,
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"tag": property.New( "tag": property.New(
@@ -63,7 +63,7 @@ func TestIndexLifecycle(t *testing.T) {
name: "pushed", name: "pushed",
skip: os.Getenv("DOCKER_HUB_PASSWORD") == "", skip: os.Getenv("DOCKER_HUB_PASSWORD") == "",
client: realClient, client: realClient,
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"tag": property.New( "tag": property.New(
@@ -85,7 +85,7 @@ func TestIndexLifecycle(t *testing.T) {
}, },
{ {
name: "expired credentials", name: "expired credentials",
client: func(t *testing.T) clientF { client: func(_ *testing.T) clientF {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
c := NewMockClient(ctrl) c := NewMockClient(ctrl)
c.EXPECT().ManifestCreate(gomock.Any(), true, gomock.Any(), gomock.Any()) c.EXPECT().ManifestCreate(gomock.Any(), true, gomock.Any(), gomock.Any())
@@ -93,7 +93,7 @@ func TestIndexLifecycle(t *testing.T) {
c.EXPECT().ManifestDelete(gomock.Any(), gomock.Any()).Return(nil) c.EXPECT().ManifestDelete(gomock.Any(), gomock.Any()).Return(nil)
return mockClientF(c) return mockClientF(c)
}, },
op: func(t *testing.T) integration.Operation { op: func(_ *testing.T) integration.Operation {
return integration.Operation{ return integration.Operation{
Inputs: property.NewMap(map[string]property.Value{ Inputs: property.NewMap(map[string]property.Value{
"tag": property.New( "tag": property.New(
@@ -157,7 +157,7 @@ func TestIndexDiff(t *testing.T) {
{ {
name: "diff if tag changes", name: "diff if tag changes",
state: func(*testing.T, IndexState) IndexState { return baseState }, state: func(*testing.T, IndexState) IndexState { return baseState },
inputs: func(t *testing.T, a IndexArgs) IndexArgs { inputs: func(_ *testing.T, a IndexArgs) IndexArgs {
a.Tag = "new-tag" a.Tag = "new-tag"
return a return a
}, },

View File

@@ -18,11 +18,11 @@ import (
"context" "context"
"fmt" "fmt"
csgen "github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen"
provider "github.com/pulumi/pulumi-go-provider" provider "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi-go-provider/infer" "github.com/pulumi/pulumi-go-provider/infer"
pschema "github.com/pulumi/pulumi-go-provider/middleware/schema" pschema "github.com/pulumi/pulumi-go-provider/middleware/schema"
"github.com/pulumi/pulumi-java/pkg/codegen/java" "github.com/pulumi/pulumi-java/pkg/codegen/java"
csgen "github.com/pulumi/pulumi/pkg/v3/codegen/dotnet"
gogen "github.com/pulumi/pulumi/pkg/v3/codegen/go" gogen "github.com/pulumi/pulumi/pkg/v3/codegen/go"
tsgen "github.com/pulumi/pulumi/pkg/v3/codegen/nodejs" tsgen "github.com/pulumi/pulumi/pkg/v3/codegen/nodejs"
pygen "github.com/pulumi/pulumi/pkg/v3/codegen/python" pygen "github.com/pulumi/pulumi/pkg/v3/codegen/python"

View File

@@ -15,10 +15,11 @@
package provider package provider
import ( import (
"github.com/pulumi/pulumi-docker-build/provider/internal"
gp "github.com/pulumi/pulumi-go-provider" gp "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi/pkg/v3/resource/provider" "github.com/pulumi/pulumi/pkg/v3/resource/provider"
rpc "github.com/pulumi/pulumi/sdk/v3/proto/go" rpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
"github.com/pulumi/pulumi-docker-build/provider/internal"
) )
// Version is initialized by the Go linker to contain the semver of this build. // Version is initialized by the Go linker to contain the semver of this build.

55
scripts/get-versions.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/usr/bin/env bash
set -euo pipefail
# This script can be simplified to use go when https://github.com/jdx/mise/discussions/6374 is fixed
# e.g. go list -m -f '{{.GoVersion}}'
module_path="github.com/pulumi/pulumi/pkg/v3"
go_mod_path="."
gomod="go.mod"
if [[ "$go_mod_path" != "" && "$go_mod_path" != "." ]]; then
gomod="$go_mod_path/$gomod"
fi
if [[ ! -f "$gomod" ]]; then
echo "missing $gomod" >&2
exit 1
fi
raw_version=$(awk -v module="$module_path" '
$1 == module || $2 == module {
for (i = 1; i <= NF; i++) {
if ($i ~ /^v[0-9]/) {
sub(/^v/, "", $i)
print $i
exit
}
}
}
' "$gomod")
if [[ -z "${raw_version:-}" ]]; then
echo "failed to determine Pulumi version from $gomod" >&2
exit 1
fi
echo "PULUMI_VERSION_MISE=$raw_version"
export PULUMI_VERSION_MISE=$raw_version
# Prefer the toolchain directive if present, otherwise fall back to the `go` version line
go_toolchain=$(awk '/^toolchain[[:space:]]+go[0-9]/{ print $2; exit }' "$gomod")
if [[ -n "${go_toolchain:-}" ]]; then
go_version=${go_toolchain#go}
else
go_version=$(awk '/^go[[:space:]]+[0-9]/{ print $2; exit }' "$gomod")
fi
if [[ -z "${go_version:-}" ]]; then
echo "failed to determine Go version from $gomod" >&2
exit 1
fi
echo "GO_VERSION_MISE=$go_version"
export GO_VERSION_MISE=$go_version

1
sdk/dotnet/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1 @@
* linguist-generated

2
sdk/dotnet/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,2 @@
bin
obj

View File

@@ -10,6 +10,12 @@ using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs namespace Pulumi.DockerBuild.Inputs
{ {
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
/// appropriate credentials to your GitHub workflow.
/// </summary>
public sealed class CacheFromGitHubActionsArgs : global::Pulumi.ResourceArgs public sealed class CacheFromGitHubActionsArgs : global::Pulumi.ResourceArgs
{ {
/// <summary> /// <summary>
@@ -21,42 +27,9 @@ namespace Pulumi.DockerBuild.Inputs
[Input("scope")] [Input("scope")]
public Input<string>? Scope { get; set; } public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheFromGitHubActionsArgs() public CacheFromGitHubActionsArgs()
{ {
Scope = "buildkit"; Scope = "buildkit";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
} }
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs(); public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
} }

View File

@@ -10,6 +10,12 @@ using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs namespace Pulumi.DockerBuild.Inputs
{ {
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
/// appropriate credentials to your GitHub workflow.
/// </summary>
public sealed class CacheToGitHubActionsArgs : global::Pulumi.ResourceArgs public sealed class CacheToGitHubActionsArgs : global::Pulumi.ResourceArgs
{ {
/// <summary> /// <summary>
@@ -33,44 +39,11 @@ namespace Pulumi.DockerBuild.Inputs
[Input("scope")] [Input("scope")]
public Input<string>? Scope { get; set; } public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheToGitHubActionsArgs() public CacheToGitHubActionsArgs()
{ {
IgnoreError = false; IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min; Mode = Pulumi.DockerBuild.CacheMode.Min;
Scope = "buildkit"; Scope = "buildkit";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
} }
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs(); public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
} }

View File

@@ -10,6 +10,12 @@ using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs namespace Pulumi.DockerBuild.Outputs
{ {
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
/// appropriate credentials to your GitHub workflow.
/// </summary>
[OutputType] [OutputType]
public sealed class CacheFromGitHubActions public sealed class CacheFromGitHubActions
{ {
@@ -20,35 +26,11 @@ namespace Pulumi.DockerBuild.Outputs
/// workflow, otherwise caches will overwrite each other. /// workflow, otherwise caches will overwrite each other.
/// </summary> /// </summary>
public readonly string? Scope; public readonly string? Scope;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Token;
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Url;
[OutputConstructor] [OutputConstructor]
private CacheFromGitHubActions( private CacheFromGitHubActions(string? scope)
string? scope,
string? token,
string? url)
{ {
Scope = scope; Scope = scope;
Token = token;
Url = url;
} }
} }
} }

View File

@@ -10,6 +10,12 @@ using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Outputs namespace Pulumi.DockerBuild.Outputs
{ {
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
/// appropriate credentials to your GitHub workflow.
/// </summary>
[OutputType] [OutputType]
public sealed class CacheToGitHubActions public sealed class CacheToGitHubActions
{ {
@@ -28,23 +34,6 @@ namespace Pulumi.DockerBuild.Outputs
/// workflow, otherwise caches will overwrite each other. /// workflow, otherwise caches will overwrite each other.
/// </summary> /// </summary>
public readonly string? Scope; public readonly string? Scope;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Token;
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public readonly string? Url;
[OutputConstructor] [OutputConstructor]
private CacheToGitHubActions( private CacheToGitHubActions(
@@ -52,17 +41,11 @@ namespace Pulumi.DockerBuild.Outputs
Pulumi.DockerBuild.CacheMode? mode, Pulumi.DockerBuild.CacheMode? mode,
string? scope, string? scope)
string? token,
string? url)
{ {
IgnoreError = ignoreError; IgnoreError = ignoreError;
Mode = mode; Mode = mode;
Scope = scope; Scope = scope;
Token = token;
Url = url;
} }
} }
} }

1
sdk/go/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1 @@
* linguist-generated

View File

@@ -1,30 +1,33 @@
module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild
go 1.24.1 go 1.25.8
require ( require (
github.com/blang/semver v3.5.1+incompatible github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi/sdk/v3 v3.187.0 github.com/pulumi/pulumi/sdk/v3 v3.230.0
) )
require ( require (
dario.cat/mergo v1.0.1 // indirect dario.cat/mergo v1.0.1 // indirect
github.com/BurntSushi/toml v1.5.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.2.0 // indirect github.com/ProtonMail/go-crypto v1.2.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/charmbracelet/bubbletea v1.3.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/colorprofile v0.3.0 // indirect github.com/charmbracelet/bubbles v1.0.0 // indirect
github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect github.com/charmbracelet/x/ansi v0.11.6 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.6.1 // indirect github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/djherbis/times v1.6.0 // indirect github.com/djherbis/times v1.6.0 // indirect
@@ -33,70 +36,88 @@ require (
github.com/fatih/color v1.17.0 // indirect github.com/fatih/color v1.17.0 // indirect
github.com/frankban/quicktest v1.14.6 // indirect github.com/frankban/quicktest v1.14.6 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // indirect github.com/go-git/go-billy/v5 v5.8.0 // indirect
github.com/go-git/go-git/v5 v5.16.0 // indirect github.com/go-git/go-git/v5 v5.17.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.4 // indirect github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/klauspost/compress v1.18.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.21 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.23 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect github.com/muesli/termenv v0.16.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect github.com/pkg/term v1.1.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.17.0 // indirect github.com/pulumi/esc v0.23.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // 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/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.4.0 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect github.com/skeema/knownhosts v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.9.1 // indirect github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/pflag v1.0.6 // indirect github.com/spf13/pflag v1.0.10 // indirect
github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/objx v0.5.2 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/zclconf/go-cty v1.16.3 // indirect github.com/zclconf/go-cty v1.17.0 // indirect
go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/otel/sdk v1.36.0 // indirect go.opentelemetry.io/collector/featuregate v1.55.0 // indirect
go.opentelemetry.io/collector/pdata v1.55.0 // indirect
go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
go.opentelemetry.io/otel/metric v1.43.0 // indirect
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
go.opentelemetry.io/otel/trace v1.43.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.39.0 // indirect go.uber.org/multierr v1.11.0 // indirect
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/crypto v0.49.0 // indirect
golang.org/x/mod v0.25.0 // indirect golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
golang.org/x/net v0.40.0 // indirect golang.org/x/mod v0.33.0 // indirect
golang.org/x/sync v0.15.0 // indirect golang.org/x/net v0.52.0 // indirect
golang.org/x/sys v0.33.0 // indirect golang.org/x/sync v0.20.0 // indirect
golang.org/x/term v0.32.0 // indirect golang.org/x/sys v0.43.0 // indirect
golang.org/x/text v0.26.0 // indirect golang.org/x/term v0.41.0 // indirect
golang.org/x/tools v0.33.0 // indirect golang.org/x/text v0.35.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect golang.org/x/tools v0.42.0 // indirect
google.golang.org/grpc v1.72.1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d // indirect
google.golang.org/protobuf v1.36.6 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect
google.golang.org/grpc v1.80.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.5.1 // indirect lukechampine.com/frand v1.5.1 // indirect
pgregory.net/rapid v1.1.0 // indirect pgregory.net/rapid v1.2.0 // indirect
) )

View File

@@ -1,7 +1,5 @@
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= 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.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
@@ -23,24 +21,32 @@ 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/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 h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/colorprofile v0.3.0 h1:KtLh9uuu1RCt+Hml4s6Hz+kB1PfV3wi++1h5ia65yKQ= github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
github.com/charmbracelet/colorprofile v0.3.0/go.mod h1:oHJ340RS2nmG1zRGPmhJKJ/jf4FPNNk0P39/wBPA1G0= github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q=
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= 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/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.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8=
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
@@ -66,21 +72,22 @@ github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= 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 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= github.com/go-git/go-billy/v5 v5.8.0 h1:I8hjc3LbBlXTtVuFNJuwYuMiHvQJDq1AT6u4DwDzZG0=
github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= github.com/go-git/go-billy/v5 v5.8.0/go.mod h1:RpvI/rw4Vr5QA+Z60c6d6LXH0rYJo0uD5SqfmrrheCY=
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 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-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.16.0 h1:k3kuOEpkc0DeY7xlL6NaaNg39xdgQbtH5mwCafHO9AQ= github.com/go-git/go-git/v5 v5.17.2 h1:B+nkdlxdYrvyFK4GPXVU8w1U+YkbsgciIR7f2sZJ104=
github.com/go-git/go-git/v5 v5.16.0/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8= github.com/go-git/go-git/v5 v5.17.2/go.mod h1:pW/VmeqkanRFqR6AljLcs7EA7FbZaN5MQqO7oZADXpo=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= 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/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.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/glog v1.2.5/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 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= 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 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
@@ -88,8 +95,11 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= 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/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= 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/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -97,17 +107,23 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/go-version v1.9.0 h1:CeOIz6k+LoN3qX9Z0tyQrPtiB1DFYRPfCIBtaXPSCnA=
github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/go-version v1.9.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE=
github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -115,24 +131,30 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.21 h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.21/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= 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 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
@@ -148,8 +170,8 @@ 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/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 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pgavlin/fx/v2 v2.0.3 h1:ZBVklTFjxcWvBVPE+ti5qwnmTIQ0Gq6nuj3J5RKDtKk= github.com/pgavlin/fx/v2 v2.0.10 h1:ggyQ6pB+lEQEbEae48Wh/X221eLOamMD7i01ISe88u4=
github.com/pgavlin/fx/v2 v2.0.3/go.mod h1:Cvnwqq0BopdHUJ7CU50h1XPeKrF4ZwdFj1nJLXbAjCE= github.com/pgavlin/fx/v2 v2.0.10/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
@@ -162,32 +184,30 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.17.0 h1:oaVOIyFTENlYDuqc3pW75lQT9jb2cd6ie/4/Twxn66w= github.com/pulumi/esc v0.23.0 h1:5lOXO+5vvXOEQxXw7cTuYhjg9lVng23f9XNLWDR9EP4=
github.com/pulumi/esc v0.17.0/go.mod h1:XnSxlt5NkmuAj304l/gK4pRErFbtqq6XpfX1tYT9Jbc= github.com/pulumi/esc v0.23.0/go.mod h1:mkghIFn/TvN3XnP4jmCB4U5BG1I4UjGluARi39ckrCE=
github.com/pulumi/pulumi/sdk/v3 v3.187.0 h1:BflBBeD/qaoKN4Tov11g4aHzJ7pTXBSb8otgmteRer0= github.com/pulumi/pulumi/sdk/v3 v3.230.0 h1:0TtF82Hlor39DLU0QtM7RZPwRaOmjn5UtQKPi1Mxo9M=
github.com/pulumi/pulumi/sdk/v3 v3.187.0/go.mod h1:BnpKxUc6QlxqoCqobHNZsUuIuY27H6ZFUk0Cp+0JN5U= github.com/pulumi/pulumi/sdk/v3 v3.230.0/go.mod h1:u0fgmmPGwV5b4rmfuNABuYfRoqckuaTivufPn4EtfTk=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= 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/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/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=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= 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 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
@@ -195,9 +215,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 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.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.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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
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 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
@@ -210,49 +229,72 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/zclconf/go-cty v1.16.3 h1:osr++gw2T61A8KVYHoQiFbFd1Lh3JOCXc/jFLJXKTxk= github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0=
github.com/zclconf/go-cty v1.16.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= go.opentelemetry.io/collector/featuregate v1.55.0 h1:s/bE8135+8GZpVlQ9qLXQjvprE9KNOGsLhNkqm+EDEU=
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/collector/featuregate v1.55.0/go.mod h1:PS7zY/zaCb28EqciePVwRHVhc3oKortTFXsi3I6ee4g=
go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= go.opentelemetry.io/collector/internal/testutil v0.149.0 h1:OWfUPO3NFKSaJtz/SBZph/2ENHbr/VbzzlBadKUhm8o=
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= go.opentelemetry.io/collector/internal/testutil v0.149.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE=
go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= go.opentelemetry.io/collector/pdata v1.55.0 h1:WBgye8bo8koUyV9Vmp/r2Q3lgDezdsgfKDQAaM1oT2I=
go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= go.opentelemetry.io/collector/pdata v1.55.0/go.mod h1:6jPrbM4tuliCPACDznjFtxnnHisfKfzwrBVoeuESYuk=
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k=
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 h1:RAE+JPfvEmvy+0LzyUA25/SGawPwIUbZ6u0Wug54sLc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0/go.mod h1:AGmbycVGEsRx9mXMZ75CsOyhSP6MFIcj/6dnG+vhVjk=
go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g=
go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk=
go.opentelemetry.io/proto/slim/otlp v1.10.0 h1:iR97Vs/ZDR+y9TfuP9b1XBtdPWeC+OMslIBmhcLU7jM=
go.opentelemetry.io/proto/slim/otlp v1.10.0/go.mod h1:lV9250stpjYLPNA5viFabIgP2QlUGRT1GdTgAf8SIUk=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0 h1:RUF5rO0hAlgiJt1fzQVzcVs3vZVNHIcMLgOgG4rWNcQ=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0/go.mod h1:I89cynRj8y+383o7tEQVg2SVA6SRgDVIouWPUVXjx0U=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0 h1:CQvJSldHRUN6Z8jsUeYv8J0lXRvygALXIzsmAeCcZE0=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0/go.mod h1:xSQ+mEfJe/GjK1LXEyVOoSI1N9JV9ZI923X5kup43W4=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4=
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -267,35 +309,38 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/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-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/sys v0.33.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-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 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-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.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d h1:/aDRtSZJjyLQzm75d+a1wOJaqyKBMvIAfeQmoa3ORiI=
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:etfGUgejTiadZAUaEP14NP97xi1RGeawqkjDARA/UOs=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d h1:wT2n40TBqFY6wiwazVK9/iTWbsQrgk5ZfCSVFLO9LQA=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -305,10 +350,9 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w= lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q= 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.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=

View File

@@ -834,25 +834,16 @@ func (o CacheFromAzureBlobPtrOutput) SecretAccessKey() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput) }).(pulumi.StringPtrOutput)
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActions struct { type CacheFromGitHubActions struct {
// The scope to use for cache keys. Defaults to `buildkit`. // The scope to use for cache keys. Defaults to `buildkit`.
// //
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope *string `pulumi:"scope"` Scope *string `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url *string `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheFromGitHubActions // Defaults sets the appropriate defaults for CacheFromGitHubActions
@@ -865,18 +856,6 @@ func (val *CacheFromGitHubActions) Defaults() *CacheFromGitHubActions {
scope_ := "buildkit" scope_ := "buildkit"
tmp.Scope = &scope_ tmp.Scope = &scope_
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
token_ := d.(string)
tmp.Token = &token_
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
}
return &tmp return &tmp
} }
@@ -891,25 +870,16 @@ type CacheFromGitHubActionsInput interface {
ToCacheFromGitHubActionsOutputWithContext(context.Context) CacheFromGitHubActionsOutput ToCacheFromGitHubActionsOutputWithContext(context.Context) CacheFromGitHubActionsOutput
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActionsArgs struct { type CacheFromGitHubActionsArgs struct {
// The scope to use for cache keys. Defaults to `buildkit`. // The scope to use for cache keys. Defaults to `buildkit`.
// //
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope pulumi.StringPtrInput `pulumi:"scope"` Scope pulumi.StringPtrInput `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token pulumi.StringPtrInput `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url pulumi.StringPtrInput `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheFromGitHubActionsArgs // Defaults sets the appropriate defaults for CacheFromGitHubActionsArgs
@@ -921,16 +891,6 @@ func (val *CacheFromGitHubActionsArgs) Defaults() *CacheFromGitHubActionsArgs {
if tmp.Scope == nil { if tmp.Scope == nil {
tmp.Scope = pulumi.StringPtr("buildkit") tmp.Scope = pulumi.StringPtr("buildkit")
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
tmp.Token = pulumi.StringPtr(d.(string))
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumi.StringPtr(d.(string))
}
}
return &tmp return &tmp
} }
func (CacheFromGitHubActionsArgs) ElementType() reflect.Type { func (CacheFromGitHubActionsArgs) ElementType() reflect.Type {
@@ -998,6 +958,10 @@ func (i *cacheFromGitHubActionsPtrType) ToOutput(ctx context.Context) pulumix.Ou
} }
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActionsOutput struct{ *pulumi.OutputState } type CacheFromGitHubActionsOutput struct{ *pulumi.OutputState }
func (CacheFromGitHubActionsOutput) ElementType() reflect.Type { func (CacheFromGitHubActionsOutput) ElementType() reflect.Type {
@@ -1036,25 +1000,6 @@ func (o CacheFromGitHubActionsOutput) Scope() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheFromGitHubActions) *string { return v.Scope }).(pulumi.StringPtrOutput) return o.ApplyT(func(v CacheFromGitHubActions) *string { return v.Scope }).(pulumi.StringPtrOutput)
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsOutput) Token() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheFromGitHubActions) *string { return v.Token }).(pulumi.StringPtrOutput)
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsOutput) Url() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheFromGitHubActions) *string { return v.Url }).(pulumi.StringPtrOutput)
}
type CacheFromGitHubActionsPtrOutput struct{ *pulumi.OutputState } type CacheFromGitHubActionsPtrOutput struct{ *pulumi.OutputState }
func (CacheFromGitHubActionsPtrOutput) ElementType() reflect.Type { func (CacheFromGitHubActionsPtrOutput) ElementType() reflect.Type {
@@ -1098,35 +1043,6 @@ func (o CacheFromGitHubActionsPtrOutput) Scope() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput) }).(pulumi.StringPtrOutput)
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsPtrOutput) Token() pulumi.StringPtrOutput {
return o.ApplyT(func(v *CacheFromGitHubActions) *string {
if v == nil {
return nil
}
return v.Token
}).(pulumi.StringPtrOutput)
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsPtrOutput) Url() pulumi.StringPtrOutput {
return o.ApplyT(func(v *CacheFromGitHubActions) *string {
if v == nil {
return nil
}
return v.Url
}).(pulumi.StringPtrOutput)
}
type CacheFromLocal struct { type CacheFromLocal struct {
// Digest of manifest to import. // Digest of manifest to import.
Digest *string `pulumi:"digest"` Digest *string `pulumi:"digest"`
@@ -2361,6 +2277,10 @@ func (o CacheToAzureBlobPtrOutput) SecretAccessKey() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput) }).(pulumi.StringPtrOutput)
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActions struct { type CacheToGitHubActions struct {
// Ignore errors caused by failed cache exports. // Ignore errors caused by failed cache exports.
IgnoreError *bool `pulumi:"ignoreError"` IgnoreError *bool `pulumi:"ignoreError"`
@@ -2371,19 +2291,6 @@ type CacheToGitHubActions struct {
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope *string `pulumi:"scope"` Scope *string `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url *string `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheToGitHubActions // Defaults sets the appropriate defaults for CacheToGitHubActions
@@ -2404,18 +2311,6 @@ func (val *CacheToGitHubActions) Defaults() *CacheToGitHubActions {
scope_ := "buildkit" scope_ := "buildkit"
tmp.Scope = &scope_ tmp.Scope = &scope_
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
token_ := d.(string)
tmp.Token = &token_
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
}
return &tmp return &tmp
} }
@@ -2430,6 +2325,10 @@ type CacheToGitHubActionsInput interface {
ToCacheToGitHubActionsOutputWithContext(context.Context) CacheToGitHubActionsOutput ToCacheToGitHubActionsOutputWithContext(context.Context) CacheToGitHubActionsOutput
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActionsArgs struct { type CacheToGitHubActionsArgs struct {
// Ignore errors caused by failed cache exports. // Ignore errors caused by failed cache exports.
IgnoreError pulumi.BoolPtrInput `pulumi:"ignoreError"` IgnoreError pulumi.BoolPtrInput `pulumi:"ignoreError"`
@@ -2440,19 +2339,6 @@ type CacheToGitHubActionsArgs struct {
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope pulumi.StringPtrInput `pulumi:"scope"` Scope pulumi.StringPtrInput `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token pulumi.StringPtrInput `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url pulumi.StringPtrInput `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheToGitHubActionsArgs // Defaults sets the appropriate defaults for CacheToGitHubActionsArgs
@@ -2470,16 +2356,6 @@ func (val *CacheToGitHubActionsArgs) Defaults() *CacheToGitHubActionsArgs {
if tmp.Scope == nil { if tmp.Scope == nil {
tmp.Scope = pulumi.StringPtr("buildkit") tmp.Scope = pulumi.StringPtr("buildkit")
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
tmp.Token = pulumi.StringPtr(d.(string))
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumi.StringPtr(d.(string))
}
}
return &tmp return &tmp
} }
func (CacheToGitHubActionsArgs) ElementType() reflect.Type { func (CacheToGitHubActionsArgs) ElementType() reflect.Type {
@@ -2547,6 +2423,10 @@ func (i *cacheToGitHubActionsPtrType) ToOutput(ctx context.Context) pulumix.Outp
} }
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActionsOutput struct{ *pulumi.OutputState } type CacheToGitHubActionsOutput struct{ *pulumi.OutputState }
func (CacheToGitHubActionsOutput) ElementType() reflect.Type { func (CacheToGitHubActionsOutput) ElementType() reflect.Type {
@@ -2595,25 +2475,6 @@ func (o CacheToGitHubActionsOutput) Scope() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheToGitHubActions) *string { return v.Scope }).(pulumi.StringPtrOutput) return o.ApplyT(func(v CacheToGitHubActions) *string { return v.Scope }).(pulumi.StringPtrOutput)
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsOutput) Token() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheToGitHubActions) *string { return v.Token }).(pulumi.StringPtrOutput)
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsOutput) Url() pulumi.StringPtrOutput {
return o.ApplyT(func(v CacheToGitHubActions) *string { return v.Url }).(pulumi.StringPtrOutput)
}
type CacheToGitHubActionsPtrOutput struct{ *pulumi.OutputState } type CacheToGitHubActionsPtrOutput struct{ *pulumi.OutputState }
func (CacheToGitHubActionsPtrOutput) ElementType() reflect.Type { func (CacheToGitHubActionsPtrOutput) ElementType() reflect.Type {
@@ -2677,35 +2538,6 @@ func (o CacheToGitHubActionsPtrOutput) Scope() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput) }).(pulumi.StringPtrOutput)
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsPtrOutput) Token() pulumi.StringPtrOutput {
return o.ApplyT(func(v *CacheToGitHubActions) *string {
if v == nil {
return nil
}
return v.Token
}).(pulumi.StringPtrOutput)
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsPtrOutput) Url() pulumi.StringPtrOutput {
return o.ApplyT(func(v *CacheToGitHubActions) *string {
if v == nil {
return nil
}
return v.Url
}).(pulumi.StringPtrOutput)
}
// Include an inline cache with the exported image. // Include an inline cache with the exported image.
type CacheToInline struct { type CacheToInline struct {
} }

View File

@@ -393,25 +393,16 @@ func (o CacheFromAzureBlobOutput) SecretAccessKey() pulumix.Output[*string] {
return pulumix.Apply[CacheFromAzureBlob](o, func(v CacheFromAzureBlob) *string { return v.SecretAccessKey }) return pulumix.Apply[CacheFromAzureBlob](o, func(v CacheFromAzureBlob) *string { return v.SecretAccessKey })
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActions struct { type CacheFromGitHubActions struct {
// The scope to use for cache keys. Defaults to `buildkit`. // The scope to use for cache keys. Defaults to `buildkit`.
// //
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope *string `pulumi:"scope"` Scope *string `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url *string `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheFromGitHubActions // Defaults sets the appropriate defaults for CacheFromGitHubActions
@@ -424,40 +415,19 @@ func (val *CacheFromGitHubActions) Defaults() *CacheFromGitHubActions {
scope_ := "buildkit" scope_ := "buildkit"
tmp.Scope = &scope_ tmp.Scope = &scope_
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
token_ := d.(string)
tmp.Token = &token_
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
}
return &tmp return &tmp
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActionsArgs struct { type CacheFromGitHubActionsArgs struct {
// The scope to use for cache keys. Defaults to `buildkit`. // The scope to use for cache keys. Defaults to `buildkit`.
// //
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope pulumix.Input[*string] `pulumi:"scope"` Scope pulumix.Input[*string] `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token pulumix.Input[*string] `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url pulumix.Input[*string] `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheFromGitHubActionsArgs // Defaults sets the appropriate defaults for CacheFromGitHubActionsArgs
@@ -469,16 +439,6 @@ func (val *CacheFromGitHubActionsArgs) Defaults() *CacheFromGitHubActionsArgs {
if tmp.Scope == nil { if tmp.Scope == nil {
tmp.Scope = pulumix.Ptr("buildkit") tmp.Scope = pulumix.Ptr("buildkit")
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
tmp.Token = pulumix.Ptr(d.(string))
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumix.Ptr(d.(string))
}
}
return &tmp return &tmp
} }
func (CacheFromGitHubActionsArgs) ElementType() reflect.Type { func (CacheFromGitHubActionsArgs) ElementType() reflect.Type {
@@ -497,6 +457,10 @@ func (i *CacheFromGitHubActionsArgs) ToOutput(ctx context.Context) pulumix.Outpu
return pulumix.Val(i) return pulumix.Val(i)
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheFromGitHubActionsOutput struct{ *pulumi.OutputState } type CacheFromGitHubActionsOutput struct{ *pulumi.OutputState }
func (CacheFromGitHubActionsOutput) ElementType() reflect.Type { func (CacheFromGitHubActionsOutput) ElementType() reflect.Type {
@@ -525,25 +489,6 @@ func (o CacheFromGitHubActionsOutput) Scope() pulumix.Output[*string] {
return pulumix.Apply[CacheFromGitHubActions](o, func(v CacheFromGitHubActions) *string { return v.Scope }) return pulumix.Apply[CacheFromGitHubActions](o, func(v CacheFromGitHubActions) *string { return v.Scope })
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsOutput) Token() pulumix.Output[*string] {
return pulumix.Apply[CacheFromGitHubActions](o, func(v CacheFromGitHubActions) *string { return v.Token })
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheFromGitHubActionsOutput) Url() pulumix.Output[*string] {
return pulumix.Apply[CacheFromGitHubActions](o, func(v CacheFromGitHubActions) *string { return v.Url })
}
type CacheFromLocal struct { type CacheFromLocal struct {
// Digest of manifest to import. // Digest of manifest to import.
Digest *string `pulumi:"digest"` Digest *string `pulumi:"digest"`
@@ -1134,6 +1079,10 @@ func (o CacheToAzureBlobOutput) SecretAccessKey() pulumix.Output[*string] {
return pulumix.Apply[CacheToAzureBlob](o, func(v CacheToAzureBlob) *string { return v.SecretAccessKey }) return pulumix.Apply[CacheToAzureBlob](o, func(v CacheToAzureBlob) *string { return v.SecretAccessKey })
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActions struct { type CacheToGitHubActions struct {
// Ignore errors caused by failed cache exports. // Ignore errors caused by failed cache exports.
IgnoreError *bool `pulumi:"ignoreError"` IgnoreError *bool `pulumi:"ignoreError"`
@@ -1144,19 +1093,6 @@ type CacheToGitHubActions struct {
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope *string `pulumi:"scope"` Scope *string `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url *string `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheToGitHubActions // Defaults sets the appropriate defaults for CacheToGitHubActions
@@ -1177,21 +1113,13 @@ func (val *CacheToGitHubActions) Defaults() *CacheToGitHubActions {
scope_ := "buildkit" scope_ := "buildkit"
tmp.Scope = &scope_ tmp.Scope = &scope_
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
token_ := d.(string)
tmp.Token = &token_
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
}
return &tmp return &tmp
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActionsArgs struct { type CacheToGitHubActionsArgs struct {
// Ignore errors caused by failed cache exports. // Ignore errors caused by failed cache exports.
IgnoreError pulumix.Input[*bool] `pulumi:"ignoreError"` IgnoreError pulumix.Input[*bool] `pulumi:"ignoreError"`
@@ -1202,19 +1130,6 @@ type CacheToGitHubActionsArgs struct {
// This should be set if building and caching multiple images in one // This should be set if building and caching multiple images in one
// workflow, otherwise caches will overwrite each other. // workflow, otherwise caches will overwrite each other.
Scope pulumix.Input[*string] `pulumi:"scope"` Scope pulumix.Input[*string] `pulumi:"scope"`
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Token pulumix.Input[*string] `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
Url pulumix.Input[*string] `pulumi:"url"`
} }
// Defaults sets the appropriate defaults for CacheToGitHubActionsArgs // Defaults sets the appropriate defaults for CacheToGitHubActionsArgs
@@ -1232,16 +1147,6 @@ func (val *CacheToGitHubActionsArgs) Defaults() *CacheToGitHubActionsArgs {
if tmp.Scope == nil { if tmp.Scope == nil {
tmp.Scope = pulumix.Ptr("buildkit") tmp.Scope = pulumix.Ptr("buildkit")
} }
if tmp.Token == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_TOKEN"); d != nil {
tmp.Token = pulumix.Ptr(d.(string))
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumix.Ptr(d.(string))
}
}
return &tmp return &tmp
} }
func (CacheToGitHubActionsArgs) ElementType() reflect.Type { func (CacheToGitHubActionsArgs) ElementType() reflect.Type {
@@ -1260,6 +1165,10 @@ func (i *CacheToGitHubActionsArgs) ToOutput(ctx context.Context) pulumix.Output[
return pulumix.Val(i) return pulumix.Val(i)
} }
// Recommended for use with GitHub Actions workflows.
//
// An action like `crazy-max/ghaction-github-runtime` is recommended to expose
// appropriate credentials to your GitHub workflow.
type CacheToGitHubActionsOutput struct{ *pulumi.OutputState } type CacheToGitHubActionsOutput struct{ *pulumi.OutputState }
func (CacheToGitHubActionsOutput) ElementType() reflect.Type { func (CacheToGitHubActionsOutput) ElementType() reflect.Type {
@@ -1298,25 +1207,6 @@ func (o CacheToGitHubActionsOutput) Scope() pulumix.Output[*string] {
return pulumix.Apply[CacheToGitHubActions](o, func(v CacheToGitHubActions) *string { return v.Scope }) return pulumix.Apply[CacheToGitHubActions](o, func(v CacheToGitHubActions) *string { return v.Scope })
} }
// The GitHub Actions token to use. This is not a personal access tokens
// and is typically generated automatically as part of each job.
//
// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsOutput) Token() pulumix.Output[*string] {
return pulumix.Apply[CacheToGitHubActions](o, func(v CacheToGitHubActions) *string { return v.Token })
}
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
// `crazy-max/ghaction-github-runtime` is recommended to expose this
// environment variable to your jobs.
func (o CacheToGitHubActionsOutput) Url() pulumix.Output[*string] {
return pulumix.Apply[CacheToGitHubActions](o, func(v CacheToGitHubActions) *string { return v.Url })
}
// Include an inline cache with the exported image. // Include an inline cache with the exported image.
type CacheToInline struct { type CacheToInline struct {
} }

1
sdk/java/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1 @@
* linguist-generated

View File

@@ -11,4 +11,3 @@ pluginManagement {
} }
rootProject.name = "com.pulumi.docker-build" rootProject.name = "com.pulumi.docker-build"
include("lib")

View File

@@ -12,6 +12,13 @@ import java.util.Optional;
import javax.annotation.Nullable; import javax.annotation.Nullable;
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*
*/
public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.ResourceArgs { public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.ResourceArgs {
public static final CacheFromGitHubActionsArgs Empty = new CacheFromGitHubActionsArgs(); public static final CacheFromGitHubActionsArgs Empty = new CacheFromGitHubActionsArgs();
@@ -37,60 +44,10 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
return Optional.ofNullable(this.scope); return Optional.ofNullable(this.scope);
} }
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
@Import(name="token")
private @Nullable Output<String> token;
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<Output<String>> token() {
return Optional.ofNullable(this.token);
}
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
@Import(name="url")
private @Nullable Output<String> url;
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<Output<String>> url() {
return Optional.ofNullable(this.url);
}
private CacheFromGitHubActionsArgs() {} private CacheFromGitHubActionsArgs() {}
private CacheFromGitHubActionsArgs(CacheFromGitHubActionsArgs $) { private CacheFromGitHubActionsArgs(CacheFromGitHubActionsArgs $) {
this.scope = $.scope; this.scope = $.scope;
this.token = $.token;
this.url = $.url;
} }
public static Builder builder() { public static Builder builder() {
@@ -138,70 +95,8 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
return scope(Output.of(scope)); return scope(Output.of(scope));
} }
/**
* @param token The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder token(@Nullable Output<String> token) {
$.token = token;
return this;
}
/**
* @param token The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder token(String token) {
return token(Output.of(token));
}
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder url(@Nullable Output<String> url) {
$.url = url;
return this;
}
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder url(String url) {
return url(Output.of(url));
}
public CacheFromGitHubActionsArgs build() { public CacheFromGitHubActionsArgs build() {
$.scope = Codegen.stringProp("scope").output().arg($.scope).def("buildkit").getNullable(); $.scope = Codegen.stringProp("scope").output().arg($.scope).def("buildkit").getNullable();
$.token = Codegen.stringProp("token").secret().arg($.token).env("ACTIONS_RUNTIME_TOKEN").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_CACHE_URL").def("").getNullable();
return $; return $;
} }
} }

View File

@@ -14,6 +14,13 @@ import java.util.Optional;
import javax.annotation.Nullable; import javax.annotation.Nullable;
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*
*/
public final class CacheToGitHubActionsArgs extends com.pulumi.resources.ResourceArgs { public final class CacheToGitHubActionsArgs extends com.pulumi.resources.ResourceArgs {
public static final CacheToGitHubActionsArgs Empty = new CacheToGitHubActionsArgs(); public static final CacheToGitHubActionsArgs Empty = new CacheToGitHubActionsArgs();
@@ -69,62 +76,12 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
return Optional.ofNullable(this.scope); return Optional.ofNullable(this.scope);
} }
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
@Import(name="token")
private @Nullable Output<String> token;
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<Output<String>> token() {
return Optional.ofNullable(this.token);
}
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
@Import(name="url")
private @Nullable Output<String> url;
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<Output<String>> url() {
return Optional.ofNullable(this.url);
}
private CacheToGitHubActionsArgs() {} private CacheToGitHubActionsArgs() {}
private CacheToGitHubActionsArgs(CacheToGitHubActionsArgs $) { private CacheToGitHubActionsArgs(CacheToGitHubActionsArgs $) {
this.ignoreError = $.ignoreError; this.ignoreError = $.ignoreError;
this.mode = $.mode; this.mode = $.mode;
this.scope = $.scope; this.scope = $.scope;
this.token = $.token;
this.url = $.url;
} }
public static Builder builder() { public static Builder builder() {
@@ -214,72 +171,10 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
return scope(Output.of(scope)); return scope(Output.of(scope));
} }
/**
* @param token The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder token(@Nullable Output<String> token) {
$.token = token;
return this;
}
/**
* @param token The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder token(String token) {
return token(Output.of(token));
}
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder url(@Nullable Output<String> url) {
$.url = url;
return this;
}
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
* @return builder
*
*/
public Builder url(String url) {
return url(Output.of(url));
}
public CacheToGitHubActionsArgs build() { public CacheToGitHubActionsArgs build() {
$.ignoreError = Codegen.booleanProp("ignoreError").output().arg($.ignoreError).def(false).getNullable(); $.ignoreError = Codegen.booleanProp("ignoreError").output().arg($.ignoreError).def(false).getNullable();
$.mode = Codegen.objectProp("mode", CacheMode.class).output().arg($.mode).def(CacheMode.Min).getNullable(); $.mode = Codegen.objectProp("mode", CacheMode.class).output().arg($.mode).def(CacheMode.Min).getNullable();
$.scope = Codegen.stringProp("scope").output().arg($.scope).def("buildkit").getNullable(); $.scope = Codegen.stringProp("scope").output().arg($.scope).def("buildkit").getNullable();
$.token = Codegen.stringProp("token").secret().arg($.token).env("ACTIONS_RUNTIME_TOKEN").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_CACHE_URL").def("").getNullable();
return $; return $;
} }
} }

View File

@@ -19,25 +19,6 @@ public final class CacheFromGitHubActions {
* *
*/ */
private @Nullable String scope; private @Nullable String scope;
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
private @Nullable String token;
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
private @Nullable String url;
private CacheFromGitHubActions() {} private CacheFromGitHubActions() {}
/** /**
@@ -50,29 +31,6 @@ public final class CacheFromGitHubActions {
public Optional<String> scope() { public Optional<String> scope() {
return Optional.ofNullable(this.scope); return Optional.ofNullable(this.scope);
} }
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<String> token() {
return Optional.ofNullable(this.token);
}
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<String> url() {
return Optional.ofNullable(this.url);
}
public static Builder builder() { public static Builder builder() {
return new Builder(); return new Builder();
@@ -84,14 +42,10 @@ public final class CacheFromGitHubActions {
@CustomType.Builder @CustomType.Builder
public static final class Builder { public static final class Builder {
private @Nullable String scope; private @Nullable String scope;
private @Nullable String token;
private @Nullable String url;
public Builder() {} public Builder() {}
public Builder(CacheFromGitHubActions defaults) { public Builder(CacheFromGitHubActions defaults) {
Objects.requireNonNull(defaults); Objects.requireNonNull(defaults);
this.scope = defaults.scope; this.scope = defaults.scope;
this.token = defaults.token;
this.url = defaults.url;
} }
@CustomType.Setter @CustomType.Setter
@@ -100,23 +54,9 @@ public final class CacheFromGitHubActions {
this.scope = scope; this.scope = scope;
return this; return this;
} }
@CustomType.Setter
public Builder token(@Nullable String token) {
this.token = token;
return this;
}
@CustomType.Setter
public Builder url(@Nullable String url) {
this.url = url;
return this;
}
public CacheFromGitHubActions build() { public CacheFromGitHubActions build() {
final var _resultValue = new CacheFromGitHubActions(); final var _resultValue = new CacheFromGitHubActions();
_resultValue.scope = scope; _resultValue.scope = scope;
_resultValue.token = token;
_resultValue.url = url;
return _resultValue; return _resultValue;
} }
} }

View File

@@ -31,25 +31,6 @@ public final class CacheToGitHubActions {
* *
*/ */
private @Nullable String scope; private @Nullable String scope;
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
private @Nullable String token;
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
private @Nullable String url;
private CacheToGitHubActions() {} private CacheToGitHubActions() {}
/** /**
@@ -76,29 +57,6 @@ public final class CacheToGitHubActions {
public Optional<String> scope() { public Optional<String> scope() {
return Optional.ofNullable(this.scope); return Optional.ofNullable(this.scope);
} }
/**
* @return The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<String> token() {
return Optional.ofNullable(this.token);
}
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*
*/
public Optional<String> url() {
return Optional.ofNullable(this.url);
}
public static Builder builder() { public static Builder builder() {
return new Builder(); return new Builder();
@@ -112,16 +70,12 @@ public final class CacheToGitHubActions {
private @Nullable Boolean ignoreError; private @Nullable Boolean ignoreError;
private @Nullable CacheMode mode; private @Nullable CacheMode mode;
private @Nullable String scope; private @Nullable String scope;
private @Nullable String token;
private @Nullable String url;
public Builder() {} public Builder() {}
public Builder(CacheToGitHubActions defaults) { public Builder(CacheToGitHubActions defaults) {
Objects.requireNonNull(defaults); Objects.requireNonNull(defaults);
this.ignoreError = defaults.ignoreError; this.ignoreError = defaults.ignoreError;
this.mode = defaults.mode; this.mode = defaults.mode;
this.scope = defaults.scope; this.scope = defaults.scope;
this.token = defaults.token;
this.url = defaults.url;
} }
@CustomType.Setter @CustomType.Setter
@@ -142,25 +96,11 @@ public final class CacheToGitHubActions {
this.scope = scope; this.scope = scope;
return this; return this;
} }
@CustomType.Setter
public Builder token(@Nullable String token) {
this.token = token;
return this;
}
@CustomType.Setter
public Builder url(@Nullable String url) {
this.url = url;
return this;
}
public CacheToGitHubActions build() { public CacheToGitHubActions build() {
final var _resultValue = new CacheToGitHubActions(); final var _resultValue = new CacheToGitHubActions();
_resultValue.ignoreError = ignoreError; _resultValue.ignoreError = ignoreError;
_resultValue.mode = mode; _resultValue.mode = mode;
_resultValue.scope = scope; _resultValue.scope = scope;
_resultValue.token = token;
_resultValue.url = url;
return _resultValue; return _resultValue;
} }
} }

1
sdk/nodejs/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1 @@
* linguist-generated

2
sdk/nodejs/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules/
bin/

96
sdk/nodejs/image.ts generated
View File

@@ -501,7 +501,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--add-host` flag. * Equivalent to Docker's `--add-host` flag.
*/ */
public readonly addHosts!: pulumi.Output<string[] | undefined>; declare public readonly addHosts: pulumi.Output<string[] | undefined>;
/** /**
* `ARG` names and values to set during the build. * `ARG` names and values to set during the build.
* *
@@ -513,7 +513,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--build-arg` flag. * Equivalent to Docker's `--build-arg` flag.
*/ */
public readonly buildArgs!: pulumi.Output<{[key: string]: string} | undefined>; declare public readonly buildArgs: pulumi.Output<{[key: string]: string} | undefined>;
/** /**
* Setting this to `false` will always skip image builds during previews, * Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews. * and setting it to `true` will always build images during previews.
@@ -527,35 +527,35 @@ export class Image extends pulumi.CustomResource {
* Defaults to `true` as a safeguard against broken images merging as part * Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines. * of CI pipelines.
*/ */
public readonly buildOnPreview!: pulumi.Output<boolean | undefined>; declare public readonly buildOnPreview: pulumi.Output<boolean | undefined>;
/** /**
* Builder configuration. * Builder configuration.
*/ */
public readonly builder!: pulumi.Output<outputs.BuilderConfig | undefined>; declare public readonly builder: pulumi.Output<outputs.BuilderConfig | undefined>;
/** /**
* Cache export configuration. * Cache export configuration.
* *
* Equivalent to Docker's `--cache-from` flag. * Equivalent to Docker's `--cache-from` flag.
*/ */
public readonly cacheFrom!: pulumi.Output<outputs.CacheFrom[] | undefined>; declare public readonly cacheFrom: pulumi.Output<outputs.CacheFrom[] | undefined>;
/** /**
* Cache import configuration. * Cache import configuration.
* *
* Equivalent to Docker's `--cache-to` flag. * Equivalent to Docker's `--cache-to` flag.
*/ */
public readonly cacheTo!: pulumi.Output<outputs.CacheTo[] | undefined>; declare public readonly cacheTo: pulumi.Output<outputs.CacheTo[] | undefined>;
/** /**
* Build context settings. Defaults to the current directory. * Build context settings. Defaults to the current directory.
* *
* Equivalent to Docker's `PATH | URL | -` positional argument. * Equivalent to Docker's `PATH | URL | -` positional argument.
*/ */
public readonly context!: pulumi.Output<outputs.BuildContext | undefined>; declare public readonly context: pulumi.Output<outputs.BuildContext | undefined>;
/** /**
* A preliminary hash of the image's build context. * A preliminary hash of the image's build context.
* *
* Pulumi uses this to determine if an image _may_ need to be re-built. * Pulumi uses this to determine if an image _may_ need to be re-built.
*/ */
public /*out*/ readonly contextHash!: pulumi.Output<string>; declare public /*out*/ readonly contextHash: pulumi.Output<string>;
/** /**
* A SHA256 digest of the image if it was exported to a registry or * A SHA256 digest of the image if it was exported to a registry or
* elsewhere. * elsewhere.
@@ -565,13 +565,13 @@ export class Image extends pulumi.CustomResource {
* Registry images can be referenced precisely as `<tag>@<digest>`. The * Registry images can be referenced precisely as `<tag>@<digest>`. The
* `ref` output provides one such reference as a convenience. * `ref` output provides one such reference as a convenience.
*/ */
public /*out*/ readonly digest!: pulumi.Output<string>; declare public /*out*/ readonly digest: pulumi.Output<string>;
/** /**
* Dockerfile settings. * Dockerfile settings.
* *
* Equivalent to Docker's `--file` flag. * Equivalent to Docker's `--file` flag.
*/ */
public readonly dockerfile!: pulumi.Output<outputs.Dockerfile | undefined>; declare public readonly dockerfile: pulumi.Output<outputs.Dockerfile | undefined>;
/** /**
* Use `exec` mode to build this image. * Use `exec` mode to build this image.
* *
@@ -594,7 +594,7 @@ export class Image extends pulumi.CustomResource {
* are temporarily written to disk in order to provide them to the * are temporarily written to disk in order to provide them to the
* `docker-buildx` binary. * `docker-buildx` binary.
*/ */
public readonly exec!: pulumi.Output<boolean | undefined>; declare public readonly exec: pulumi.Output<boolean | undefined>;
/** /**
* Controls where images are persisted after building. * Controls where images are persisted after building.
* *
@@ -606,13 +606,13 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--output` flag. * Equivalent to Docker's `--output` flag.
*/ */
public readonly exports!: pulumi.Output<outputs.Export[] | undefined>; declare public readonly exports: pulumi.Output<outputs.Export[] | undefined>;
/** /**
* Attach arbitrary key/value metadata to the image. * Attach arbitrary key/value metadata to the image.
* *
* Equivalent to Docker's `--label` flag. * Equivalent to Docker's `--label` flag.
*/ */
public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; declare public readonly labels: pulumi.Output<{[key: string]: string} | undefined>;
/** /**
* When `true` the build will automatically include a `docker` export. * When `true` the build will automatically include a `docker` export.
* *
@@ -620,7 +620,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--load` flag. * Equivalent to Docker's `--load` flag.
*/ */
public readonly load!: pulumi.Output<boolean | undefined>; declare public readonly load: pulumi.Output<boolean | undefined>;
/** /**
* Set the network mode for `RUN` instructions. Defaults to `default`. * Set the network mode for `RUN` instructions. Defaults to `default`.
* *
@@ -628,25 +628,25 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--network` flag. * Equivalent to Docker's `--network` flag.
*/ */
public readonly network!: pulumi.Output<enums.NetworkMode | undefined>; declare public readonly network: pulumi.Output<enums.NetworkMode | undefined>;
/** /**
* Do not import cache manifests when building the image. * Do not import cache manifests when building the image.
* *
* Equivalent to Docker's `--no-cache` flag. * Equivalent to Docker's `--no-cache` flag.
*/ */
public readonly noCache!: pulumi.Output<boolean | undefined>; declare public readonly noCache: pulumi.Output<boolean | undefined>;
/** /**
* Set target platform(s) for the build. Defaults to the host's platform. * Set target platform(s) for the build. Defaults to the host's platform.
* *
* Equivalent to Docker's `--platform` flag. * Equivalent to Docker's `--platform` flag.
*/ */
public readonly platforms!: pulumi.Output<enums.Platform[] | undefined>; declare public readonly platforms: pulumi.Output<enums.Platform[] | undefined>;
/** /**
* Always pull referenced images. * Always pull referenced images.
* *
* Equivalent to Docker's `--pull` flag. * Equivalent to Docker's `--pull` flag.
*/ */
public readonly pull!: pulumi.Output<boolean | undefined>; declare public readonly pull: pulumi.Output<boolean | undefined>;
/** /**
* When `true` the build will automatically include a `registry` export. * When `true` the build will automatically include a `registry` export.
* *
@@ -654,7 +654,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--push` flag. * Equivalent to Docker's `--push` flag.
*/ */
public readonly push!: pulumi.Output<boolean>; declare public readonly push: pulumi.Output<boolean>;
/** /**
* If the image was pushed to any registries then this will contain a * If the image was pushed to any registries then this will contain a
* single fully-qualified tag including the build's digest. * single fully-qualified tag including the build's digest.
@@ -671,7 +671,7 @@ export class Image extends pulumi.CustomResource {
* For more control over tags consumed by downstream resources you should * For more control over tags consumed by downstream resources you should
* use the `digest` output. * use the `digest` output.
*/ */
public /*out*/ readonly ref!: pulumi.Output<string>; declare public /*out*/ readonly ref: pulumi.Output<string>;
/** /**
* Registry credentials. Required if reading or exporting to private * Registry credentials. Required if reading or exporting to private
* repositories. * repositories.
@@ -681,7 +681,7 @@ export class Image extends pulumi.CustomResource {
* *
* Similar to `docker login`. * Similar to `docker login`.
*/ */
public readonly registries!: pulumi.Output<outputs.Registry[] | undefined>; declare public readonly registries: pulumi.Output<outputs.Registry[] | undefined>;
/** /**
* A mapping of secret names to their corresponding values. * A mapping of secret names to their corresponding values.
* *
@@ -693,13 +693,13 @@ export class Image extends pulumi.CustomResource {
* *
* Similar to Docker's `--secret` flag. * Similar to Docker's `--secret` flag.
*/ */
public readonly secrets!: pulumi.Output<{[key: string]: string} | undefined>; declare public readonly secrets: pulumi.Output<{[key: string]: string} | undefined>;
/** /**
* SSH agent socket or keys to expose to the build. * SSH agent socket or keys to expose to the build.
* *
* Equivalent to Docker's `--ssh` flag. * Equivalent to Docker's `--ssh` flag.
*/ */
public readonly ssh!: pulumi.Output<outputs.SSH[] | undefined>; declare public readonly ssh: pulumi.Output<outputs.SSH[] | undefined>;
/** /**
* Name and optionally a tag (format: `name:tag`). * Name and optionally a tag (format: `name:tag`).
* *
@@ -708,7 +708,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--tag` flag. * Equivalent to Docker's `--tag` flag.
*/ */
public readonly tags!: pulumi.Output<string[] | undefined>; declare public readonly tags: pulumi.Output<string[] | undefined>;
/** /**
* Set the target build stage(s) to build. * Set the target build stage(s) to build.
* *
@@ -716,7 +716,7 @@ export class Image extends pulumi.CustomResource {
* *
* Equivalent to Docker's `--target` flag. * Equivalent to Docker's `--target` flag.
*/ */
public readonly target!: pulumi.Output<string | undefined>; declare public readonly target: pulumi.Output<string | undefined>;
/** /**
* Create a Image resource with the given unique name, arguments, and options. * Create a Image resource with the given unique name, arguments, and options.
@@ -729,31 +729,31 @@ export class Image extends pulumi.CustomResource {
let resourceInputs: pulumi.Inputs = {}; let resourceInputs: pulumi.Inputs = {};
opts = opts || {}; opts = opts || {};
if (!opts.id) { if (!opts.id) {
if ((!args || args.push === undefined) && !opts.urn) { if (args?.push === undefined && !opts.urn) {
throw new Error("Missing required property 'push'"); throw new Error("Missing required property 'push'");
} }
resourceInputs["addHosts"] = args ? args.addHosts : undefined; resourceInputs["addHosts"] = args?.addHosts;
resourceInputs["buildArgs"] = args ? args.buildArgs : undefined; resourceInputs["buildArgs"] = args?.buildArgs;
resourceInputs["buildOnPreview"] = (args ? args.buildOnPreview : undefined) ?? true; resourceInputs["buildOnPreview"] = (args?.buildOnPreview) ?? true;
resourceInputs["builder"] = args ? args.builder : undefined; resourceInputs["builder"] = args?.builder;
resourceInputs["cacheFrom"] = args ? args.cacheFrom : undefined; resourceInputs["cacheFrom"] = args?.cacheFrom;
resourceInputs["cacheTo"] = args ? args.cacheTo : undefined; resourceInputs["cacheTo"] = args?.cacheTo;
resourceInputs["context"] = args ? args.context : undefined; resourceInputs["context"] = args?.context;
resourceInputs["dockerfile"] = args ? args.dockerfile : undefined; resourceInputs["dockerfile"] = args?.dockerfile;
resourceInputs["exec"] = args ? args.exec : undefined; resourceInputs["exec"] = args?.exec;
resourceInputs["exports"] = args ? args.exports : undefined; resourceInputs["exports"] = args?.exports;
resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["labels"] = args?.labels;
resourceInputs["load"] = args ? args.load : undefined; resourceInputs["load"] = args?.load;
resourceInputs["network"] = (args ? args.network : undefined) ?? "default"; resourceInputs["network"] = (args?.network) ?? "default";
resourceInputs["noCache"] = args ? args.noCache : undefined; resourceInputs["noCache"] = args?.noCache;
resourceInputs["platforms"] = args ? args.platforms : undefined; resourceInputs["platforms"] = args?.platforms;
resourceInputs["pull"] = args ? args.pull : undefined; resourceInputs["pull"] = args?.pull;
resourceInputs["push"] = args ? args.push : undefined; resourceInputs["push"] = args?.push;
resourceInputs["registries"] = args ? args.registries : undefined; resourceInputs["registries"] = args?.registries;
resourceInputs["secrets"] = args ? args.secrets : undefined; resourceInputs["secrets"] = args?.secrets;
resourceInputs["ssh"] = args ? args.ssh : undefined; resourceInputs["ssh"] = args?.ssh;
resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["tags"] = args?.tags;
resourceInputs["target"] = args ? args.target : undefined; resourceInputs["target"] = args?.target;
resourceInputs["contextHash"] = undefined /*out*/; resourceInputs["contextHash"] = undefined /*out*/;
resourceInputs["digest"] = undefined /*out*/; resourceInputs["digest"] = undefined /*out*/;
resourceInputs["ref"] = undefined /*out*/; resourceInputs["ref"] = undefined /*out*/;

22
sdk/nodejs/index_.ts generated
View File

@@ -113,27 +113,27 @@ export class Index extends pulumi.CustomResource {
* *
* Defaults to `true`. * Defaults to `true`.
*/ */
public readonly push!: pulumi.Output<boolean | undefined>; declare public readonly push: pulumi.Output<boolean | undefined>;
/** /**
* The pushed tag with digest. * The pushed tag with digest.
* *
* Identical to the tag if the index was not pushed. * Identical to the tag if the index was not pushed.
*/ */
public /*out*/ readonly ref!: pulumi.Output<string>; declare public /*out*/ readonly ref: pulumi.Output<string>;
/** /**
* Authentication for the registry where the tagged index will be pushed. * Authentication for the registry where the tagged index will be pushed.
* *
* Credentials can also be included with the provider's configuration. * Credentials can also be included with the provider's configuration.
*/ */
public readonly registry!: pulumi.Output<outputs.Registry | undefined>; declare public readonly registry: pulumi.Output<outputs.Registry | undefined>;
/** /**
* Existing images to include in the index. * Existing images to include in the index.
*/ */
public readonly sources!: pulumi.Output<string[]>; declare public readonly sources: pulumi.Output<string[]>;
/** /**
* The tag to apply to the index. * The tag to apply to the index.
*/ */
public readonly tag!: pulumi.Output<string>; declare public readonly tag: pulumi.Output<string>;
/** /**
* Create a Index resource with the given unique name, arguments, and options. * Create a Index resource with the given unique name, arguments, and options.
@@ -146,16 +146,16 @@ export class Index extends pulumi.CustomResource {
let resourceInputs: pulumi.Inputs = {}; let resourceInputs: pulumi.Inputs = {};
opts = opts || {}; opts = opts || {};
if (!opts.id) { if (!opts.id) {
if ((!args || args.sources === undefined) && !opts.urn) { if (args?.sources === undefined && !opts.urn) {
throw new Error("Missing required property 'sources'"); throw new Error("Missing required property 'sources'");
} }
if ((!args || args.tag === undefined) && !opts.urn) { if (args?.tag === undefined && !opts.urn) {
throw new Error("Missing required property 'tag'"); throw new Error("Missing required property 'tag'");
} }
resourceInputs["push"] = (args ? args.push : undefined) ?? true; resourceInputs["push"] = (args?.push) ?? true;
resourceInputs["registry"] = args ? args.registry : undefined; resourceInputs["registry"] = args?.registry;
resourceInputs["sources"] = args ? args.sources : undefined; resourceInputs["sources"] = args?.sources;
resourceInputs["tag"] = args ? args.tag : undefined; resourceInputs["tag"] = args?.tag;
resourceInputs["ref"] = undefined /*out*/; resourceInputs["ref"] = undefined /*out*/;
} else { } else {
resourceInputs["push"] = undefined /*out*/; resourceInputs["push"] = undefined /*out*/;

View File

@@ -25,7 +25,7 @@ export class Provider extends pulumi.ProviderResource {
/** /**
* The build daemon's address. * The build daemon's address.
*/ */
public readonly host!: pulumi.Output<string | undefined>; declare public readonly host: pulumi.Output<string | undefined>;
/** /**
* Create a Provider resource with the given unique name, arguments, and options. * Create a Provider resource with the given unique name, arguments, and options.
@@ -38,8 +38,8 @@ export class Provider extends pulumi.ProviderResource {
let resourceInputs: pulumi.Inputs = {}; let resourceInputs: pulumi.Inputs = {};
opts = opts || {}; opts = opts || {};
{ {
resourceInputs["host"] = (args ? args.host : undefined) ?? (utilities.getEnv("DOCKER_HOST") || ""); resourceInputs["host"] = (args?.host) ?? (utilities.getEnv("DOCKER_HOST") || "");
resourceInputs["registries"] = pulumi.output(args ? args.registries : undefined).apply(JSON.stringify); resourceInputs["registries"] = pulumi.output(args?.registries).apply(JSON.stringify);
} }
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Provider.__pulumiType, name, resourceInputs, opts); super(Provider.__pulumiType, name, resourceInputs, opts);

View File

@@ -1,16 +1,22 @@
{ {
"compilerOptions": { "compilerOptions": {
// Output
"outDir": "bin", "outDir": "bin",
"target": "es2016",
"module": "commonjs",
"moduleResolution": "node",
"declaration": true, "declaration": true,
"declarationMap": true,
"sourceMap": true, "sourceMap": true,
"stripInternal": true, "stripInternal": true,
"experimentalDecorators": true, // Environment
"target": "ES2022",
"module": "nodenext",
"moduleResolution": "nodenext",
"moduleDetection": "force",
"types": ["node"],
// Type Checking
"strict": true,
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true, "noImplicitReturns": true,
"strict": true "skipLibCheck": true
}, },
"files": [ "files": [
"config/index.ts", "config/index.ts",

View File

@@ -104,6 +104,12 @@ export interface CacheFromAzureBlobArgs {
secretAccessKey?: pulumi.Input<string>; secretAccessKey?: pulumi.Input<string>;
} }
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*/
export interface CacheFromGitHubActionsArgs { export interface CacheFromGitHubActionsArgs {
/** /**
* The scope to use for cache keys. Defaults to `buildkit`. * The scope to use for cache keys. Defaults to `buildkit`.
@@ -112,23 +118,6 @@ export interface CacheFromGitHubActionsArgs {
* workflow, otherwise caches will overwrite each other. * workflow, otherwise caches will overwrite each other.
*/ */
scope?: pulumi.Input<string>; scope?: pulumi.Input<string>;
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
token?: pulumi.Input<string>;
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
url?: pulumi.Input<string>;
} }
/** /**
* cacheFromGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheFromGitHubActionsArgs * cacheFromGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheFromGitHubActionsArgs
@@ -137,8 +126,6 @@ export function cacheFromGitHubActionsArgsProvideDefaults(val: CacheFromGitHubAc
return { return {
...val, ...val,
scope: (val.scope) ?? "buildkit", scope: (val.scope) ?? "buildkit",
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
}; };
} }
@@ -303,6 +290,12 @@ export function cacheToAzureBlobArgsProvideDefaults(val: CacheToAzureBlobArgs):
}; };
} }
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*/
export interface CacheToGitHubActionsArgs { export interface CacheToGitHubActionsArgs {
/** /**
* Ignore errors caused by failed cache exports. * Ignore errors caused by failed cache exports.
@@ -319,23 +312,6 @@ export interface CacheToGitHubActionsArgs {
* workflow, otherwise caches will overwrite each other. * workflow, otherwise caches will overwrite each other.
*/ */
scope?: pulumi.Input<string>; scope?: pulumi.Input<string>;
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
token?: pulumi.Input<string>;
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
url?: pulumi.Input<string>;
} }
/** /**
* cacheToGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheToGitHubActionsArgs * cacheToGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheToGitHubActionsArgs
@@ -346,8 +322,6 @@ export function cacheToGitHubActionsArgsProvideDefaults(val: CacheToGitHubAction
ignoreError: (val.ignoreError) ?? false, ignoreError: (val.ignoreError) ?? false,
mode: (val.mode) ?? "min", mode: (val.mode) ?? "min",
scope: (val.scope) ?? "buildkit", scope: (val.scope) ?? "buildkit",
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
}; };
} }

View File

@@ -104,6 +104,12 @@ export interface CacheFromAzureBlob {
secretAccessKey?: string; secretAccessKey?: string;
} }
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*/
export interface CacheFromGitHubActions { export interface CacheFromGitHubActions {
/** /**
* The scope to use for cache keys. Defaults to `buildkit`. * The scope to use for cache keys. Defaults to `buildkit`.
@@ -112,23 +118,6 @@ export interface CacheFromGitHubActions {
* workflow, otherwise caches will overwrite each other. * workflow, otherwise caches will overwrite each other.
*/ */
scope?: string; scope?: string;
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
token?: string;
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
url?: string;
} }
/** /**
* cacheFromGitHubActionsProvideDefaults sets the appropriate defaults for CacheFromGitHubActions * cacheFromGitHubActionsProvideDefaults sets the appropriate defaults for CacheFromGitHubActions
@@ -137,8 +126,6 @@ export function cacheFromGitHubActionsProvideDefaults(val: CacheFromGitHubAction
return { return {
...val, ...val,
scope: (val.scope) ?? "buildkit", scope: (val.scope) ?? "buildkit",
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
}; };
} }
@@ -303,6 +290,12 @@ export function cacheToAzureBlobProvideDefaults(val: CacheToAzureBlob): CacheToA
}; };
} }
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to expose
* appropriate credentials to your GitHub workflow.
*/
export interface CacheToGitHubActions { export interface CacheToGitHubActions {
/** /**
* Ignore errors caused by failed cache exports. * Ignore errors caused by failed cache exports.
@@ -319,23 +312,6 @@ export interface CacheToGitHubActions {
* workflow, otherwise caches will overwrite each other. * workflow, otherwise caches will overwrite each other.
*/ */
scope?: string; scope?: string;
/**
* The GitHub Actions token to use. This is not a personal access tokens
* and is typically generated automatically as part of each job.
*
* Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
token?: string;
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
* `crazy-max/ghaction-github-runtime` is recommended to expose this
* environment variable to your jobs.
*/
url?: string;
} }
/** /**
* cacheToGitHubActionsProvideDefaults sets the appropriate defaults for CacheToGitHubActions * cacheToGitHubActionsProvideDefaults sets the appropriate defaults for CacheToGitHubActions
@@ -346,8 +322,6 @@ export function cacheToGitHubActionsProvideDefaults(val: CacheToGitHubActions):
ignoreError: (val.ignoreError) ?? false, ignoreError: (val.ignoreError) ?? false,
mode: (val.mode) ?? "min", mode: (val.mode) ?? "min",
scope: (val.scope) ?? "buildkit", scope: (val.scope) ?? "buildkit",
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
}; };
} }

1
sdk/python/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1 @@
* linguist-generated

6
sdk/python/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,6 @@
*.pyc
__pycache__
.mypy_cache
dist
build
*.egg-info

File diff suppressed because it is too large Load Diff

View File

@@ -71,9 +71,6 @@ def _get_semver_version():
# <some module>._utilities. <some module> is the module we want to query the version for. # <some module>._utilities. <some module> is the module we want to query the version for.
root_package, *rest = __name__.split('.') root_package, *rest = __name__.split('.')
# pkg_resources uses setuptools to inspect the set of installed packages. We use it here to ask
# for the currently installed version of the root package (i.e. us) and get its version.
# Unfortunately, PEP440 and semver differ slightly in incompatible ways. The Pulumi engine expects # Unfortunately, PEP440 and semver differ slightly in incompatible ways. The Pulumi engine expects
# to receive a valid semver string when receiving requests from the language host, so it's our # to receive a valid semver string when receiving requests from the language host, so it's our
# responsibility as the library to convert our own PEP440 version into a valid semver string. # responsibility as the library to convert our own PEP440 version into a valid semver string.
@@ -89,7 +86,7 @@ def _get_semver_version():
elif pep440_version.pre_tag == 'rc': elif pep440_version.pre_tag == 'rc':
prerelease = f"rc.{pep440_version.pre}" prerelease = f"rc.{pep440_version.pre}"
elif pep440_version.dev is not None: elif pep440_version.dev is not None:
# PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge # PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge
# between the two, we convert our dev build version into a prerelease tag. This matches what all of our other # between the two, we convert our dev build version into a prerelease tag. This matches what all of our other
# packages do when constructing their own semver string. # packages do when constructing their own semver string.
prerelease = f"dev.{pep440_version.dev}" prerelease = f"dev.{pep440_version.dev}"

View File

@@ -46,6 +46,7 @@ class ImageArgs:
target: Optional[pulumi.Input[_builtins.str]] = None): target: Optional[pulumi.Input[_builtins.str]] = None):
""" """
The set of arguments for constructing a Image resource. The set of arguments for constructing a Image resource.
:param pulumi.Input[_builtins.bool] push: When `true` the build will automatically include a `registry` export. :param pulumi.Input[_builtins.bool] push: When `true` the build will automatically include a `registry` export.
Defaults to `false`. Defaults to `false`.
@@ -918,6 +919,7 @@ class Image(pulumi.CustomResource):
push=False) push=False)
``` ```
:param str resource_name: The name of the resource. :param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] add_hosts: Custom `host:ip` mappings to use during the build. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] add_hosts: Custom `host:ip` mappings to use during the build.
@@ -1356,6 +1358,7 @@ class Image(pulumi.CustomResource):
push=False) push=False)
``` ```
:param str resource_name: The name of the resource. :param str resource_name: The name of the resource.
:param ImageArgs args: The arguments to use to populate this resource's properties. :param ImageArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.ResourceOptions opts: Options for the resource.

View File

@@ -27,6 +27,7 @@ class IndexArgs:
registry: Optional[pulumi.Input['RegistryArgs']] = None): registry: Optional[pulumi.Input['RegistryArgs']] = None):
""" """
The set of arguments for constructing a Index resource. The set of arguments for constructing a Index resource.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sources: Existing images to include in the index. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sources: Existing images to include in the index.
:param pulumi.Input[_builtins.str] tag: The tag to apply to the index. :param pulumi.Input[_builtins.str] tag: The tag to apply to the index.
:param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry. :param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry.
@@ -179,6 +180,7 @@ class Index(pulumi.CustomResource):
pulumi.export("ref", index.ref) pulumi.export("ref", index.ref)
``` ```
:param str resource_name: The name of the resource. :param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry. :param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry.
@@ -266,6 +268,7 @@ class Index(pulumi.CustomResource):
pulumi.export("ref", index.ref) pulumi.export("ref", index.ref)
``` ```
:param str resource_name: The name of the resource. :param str resource_name: The name of the resource.
:param IndexArgs args: The arguments to use to populate this resource's properties. :param IndexArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.ResourceOptions opts: Options for the resource.

View File

@@ -293,39 +293,29 @@ class CacheFromAzureBlob(dict):
@pulumi.output_type @pulumi.output_type
class CacheFromGitHubActions(dict): class CacheFromGitHubActions(dict):
"""
Recommended for use with GitHub Actions workflows.
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
"""
def __init__(__self__, *, def __init__(__self__, *,
scope: Optional[_builtins.str] = None, scope: Optional[_builtins.str] = None):
token: Optional[_builtins.str] = None,
url: Optional[_builtins.str] = None):
""" """
Recommended for use with GitHub Actions workflows.
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
:param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`. :param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`.
This should be set if building and caching multiple images in one This should be set if building and caching multiple images in one
workflow, otherwise caches will overwrite each other. workflow, otherwise caches will overwrite each other.
:param _builtins.str token: The GitHub Actions token to use. This is not a personal access tokens
and is typically generated automatically as part of each job.
Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
:param _builtins.str url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
""" """
if scope is None: if scope is None:
scope = 'buildkit' scope = 'buildkit'
if scope is not None: if scope is not None:
pulumi.set(__self__, "scope", scope) pulumi.set(__self__, "scope", scope)
if token is None:
token = (_utilities.get_env('ACTIONS_RUNTIME_TOKEN') or '')
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@_builtins.property @_builtins.property
@pulumi.getter @pulumi.getter
@@ -338,31 +328,6 @@ class CacheFromGitHubActions(dict):
""" """
return pulumi.get(self, "scope") return pulumi.get(self, "scope")
@_builtins.property
@pulumi.getter
def token(self) -> Optional[_builtins.str]:
"""
The GitHub Actions token to use. This is not a personal access tokens
and is typically generated automatically as part of each job.
Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
"""
return pulumi.get(self, "token")
@_builtins.property
@pulumi.getter
def url(self) -> Optional[_builtins.str]:
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
"""
return pulumi.get(self, "url")
@pulumi.output_type @pulumi.output_type
class CacheFromLocal(dict): class CacheFromLocal(dict):
@@ -784,6 +749,12 @@ class CacheToAzureBlob(dict):
@pulumi.output_type @pulumi.output_type
class CacheToGitHubActions(dict): class CacheToGitHubActions(dict):
"""
Recommended for use with GitHub Actions workflows.
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
"""
@staticmethod @staticmethod
def __key_warning(key: str): def __key_warning(key: str):
suggest = None suggest = None
@@ -804,27 +775,19 @@ class CacheToGitHubActions(dict):
def __init__(__self__, *, def __init__(__self__, *,
ignore_error: Optional[_builtins.bool] = None, ignore_error: Optional[_builtins.bool] = None,
mode: Optional['CacheMode'] = None, mode: Optional['CacheMode'] = None,
scope: Optional[_builtins.str] = None, scope: Optional[_builtins.str] = None):
token: Optional[_builtins.str] = None,
url: Optional[_builtins.str] = None):
""" """
Recommended for use with GitHub Actions workflows.
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
:param _builtins.bool ignore_error: Ignore errors caused by failed cache exports. :param _builtins.bool ignore_error: Ignore errors caused by failed cache exports.
:param 'CacheMode' mode: The cache mode to use. Defaults to `min`. :param 'CacheMode' mode: The cache mode to use. Defaults to `min`.
:param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`. :param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`.
This should be set if building and caching multiple images in one This should be set if building and caching multiple images in one
workflow, otherwise caches will overwrite each other. workflow, otherwise caches will overwrite each other.
:param _builtins.str token: The GitHub Actions token to use. This is not a personal access tokens
and is typically generated automatically as part of each job.
Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
:param _builtins.str url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
""" """
if ignore_error is None: if ignore_error is None:
ignore_error = False ignore_error = False
@@ -838,14 +801,6 @@ class CacheToGitHubActions(dict):
scope = 'buildkit' scope = 'buildkit'
if scope is not None: if scope is not None:
pulumi.set(__self__, "scope", scope) pulumi.set(__self__, "scope", scope)
if token is None:
token = (_utilities.get_env('ACTIONS_RUNTIME_TOKEN') or '')
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@_builtins.property @_builtins.property
@pulumi.getter(name="ignoreError") @pulumi.getter(name="ignoreError")
@@ -874,31 +829,6 @@ class CacheToGitHubActions(dict):
""" """
return pulumi.get(self, "scope") return pulumi.get(self, "scope")
@_builtins.property
@pulumi.getter
def token(self) -> Optional[_builtins.str]:
"""
The GitHub Actions token to use. This is not a personal access tokens
and is typically generated automatically as part of each job.
Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
"""
return pulumi.get(self, "token")
@_builtins.property
@pulumi.getter
def url(self) -> Optional[_builtins.str]:
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
`crazy-max/ghaction-github-runtime` is recommended to expose this
environment variable to your jobs.
"""
return pulumi.get(self, "url")
@pulumi.output_type @pulumi.output_type
class CacheToInline(dict): class CacheToInline(dict):

Some files were not shown because too many files have changed in this diff Show More