Fix GitHub action URL (#80)

Our docs and default value for the GitHub action cache URL were
referring to the
[wrong](https://github.com/tonistiigi/go-actions-cache/blob/master/api.md)
environment variable.

I was under the impression that the underlying library ends up checking
for the correct variable later so this would be only cosmetic, but a
user
[confirmed](https://github.com/pulumi/pulumi-docker-build/issues/77#issuecomment-2135621983)
this does appear to break things.

I brought over an old test I had written while this was still in the
pulumi-docker repo, but unfortunately it doesn't currently test GHA due
to ci-mgmt limitations
https://github.com/pulumi/pulumi-docker-build/issues/82.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/77.
This commit is contained in:
Bryce Lampe
2024-05-29 05:29:58 -07:00
committed by GitHub
parent c9e5913af1
commit f0aaf7095d
22 changed files with 2228 additions and 64 deletions

15
CHANGELOG.md Normal file
View File

@@ -0,0 +1,15 @@
## Unreleased
### Fixed
- Fixed the default value for `ACTIONS_CACHE_URL` when using GitHub action caching. (https://github.com/pulumi/pulumi-docker-build/pull/80)
## 0.0.2 (2024-04-25)
### Fixed
- Upgraded pulumi-go-provider to fix a panic during cancellation.
## 0.0.1 (2024-04-23)
Initial release.

View File

@@ -4,11 +4,19 @@
package examples
import (
"encoding/base64"
"fmt"
"math/rand"
"os"
"path"
"strings"
"testing"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ecr"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -26,3 +34,180 @@ func TestNodeExample(t *testing.T) {
integration.ProgramTest(t, &test)
}
// TestCaching simulates a slow build with --cache-to enabled. We aren't able
// to directly detect cache hits, so we re-run the update and confirm it took
// less time than the image originally took to build.
//
// This is a moderately slow test because we need to "build" (i.e., sleep)
// longer than it would take for cache layer uploads under slow network
// conditions.
func TestCaching(t *testing.T) {
t.Parallel()
sleep := 20.0 // seconds
// Provision ECR outside of our stack, because the cache needs to be shared
// across updates.
ecr, ecrOK := tmpEcr(t)
cwd, err := os.Getwd()
require.NoError(t, err)
localCache := t.TempDir()
tests := []struct {
name string
skip bool
cacheTo string
cacheFrom string
address string
username string
password string
}{
{
name: "local",
cacheTo: fmt.Sprintf("type=local,mode=max,oci-mediatypes=true,dest=%s", localCache),
cacheFrom: fmt.Sprintf("type=local,src=%s", localCache),
},
{
name: "gha",
skip: os.Getenv("ACTIONS_CACHE_URL") == "",
cacheTo: "type=gha,mode=max,scope=cache-test",
cacheFrom: "type=gha,scope=cache-test",
},
{
name: "dockerhub",
skip: os.Getenv("DOCKER_HUB_PASSWORD") == "",
cacheTo: "type=registry,mode=max,ref=docker.io/pulumibot/myapp:cache",
cacheFrom: "type=registry,ref=docker.io/pulumibot/myapp:cache",
address: "docker.io",
username: "pulumibot",
password: os.Getenv("DOCKER_HUB_PASSWORD"),
},
{
name: "ecr",
skip: !ecrOK,
cacheTo: fmt.Sprintf("type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=%s:cache", ecr.address),
cacheFrom: fmt.Sprintf("type=registry,ref=%s:cache", ecr.address),
address: ecr.address,
username: ecr.username,
password: ecr.password,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
if tt.skip {
t.Skip("Missing environment variables")
}
sleepFuzzed := sleep + rand.Float64() // Add some fuzz to bust any prior build caches.
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "tests", "caching"),
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
duration, ok := stack.Outputs["durationSeconds"]
assert.True(t, ok)
assert.Greater(t, duration.(float64), sleepFuzzed)
},
Dependencies: []string{"@pulumi/docker-build"},
Config: map[string]string{
"SLEEP_SECONDS": fmt.Sprint(sleepFuzzed),
"cacheTo": tt.cacheTo,
"cacheFrom": tt.cacheFrom,
"name": tt.name,
"address": tt.address,
"username": tt.username,
},
Secrets: map[string]string{
"password": tt.password,
},
NoParallel: true,
Quick: true,
SkipPreview: true,
SkipRefresh: true,
Verbose: true,
}
// First run should be un-cached.
integration.ProgramTest(t, &test)
// Now run again and confirm our build was faster due to a cache hit.
test.ExtraRuntimeValidation = func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
duration, ok := stack.Outputs["durationSeconds"]
assert.True(t, ok)
assert.Less(t, duration.(float64), sleepFuzzed)
}
test.Config["name"] += "-cached"
integration.ProgramTest(t, &test)
})
}
}
type ECR struct {
address string
username string
password string
}
// tmpEcr creates a new ECR repo and cleans it up after the test concludes.
func tmpEcr(t *testing.T) (ECR, bool) {
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2"),
})
if err != nil {
return ECR{}, false
}
svc := ecr.New(sess)
name := strings.ToLower(t.Name())
// Always attempt to delete pre-existing repos, in case our cleanup didn't
// run.
_, _ = svc.DeleteRepository(&ecr.DeleteRepositoryInput{
Force: aws.Bool(true),
RepositoryName: aws.String(name),
})
params := &ecr.CreateRepositoryInput{
RepositoryName: aws.String(name),
}
resp, err := svc.CreateRepository(params)
if err != nil {
return ECR{}, false
}
repo := resp.Repository
t.Cleanup(func() {
svc.DeleteRepository(&ecr.DeleteRepositoryInput{
Force: aws.Bool(true),
RegistryId: repo.RegistryId,
RepositoryName: repo.RepositoryName,
})
})
// Now grab auth for the repo.
auth, err := svc.GetAuthorizationToken(&ecr.GetAuthorizationTokenInput{})
if err != nil {
return ECR{}, false
}
b64token := auth.AuthorizationData[0].AuthorizationToken
token, err := base64.StdEncoding.DecodeString(*b64token)
if err != nil {
return ECR{}, false
}
parts := strings.SplitN(string(token), ":", 2)
if len(parts) != 2 {
return ECR{}, false
}
username := parts[0]
password := parts[1]
return ECR{
address: *repo.RepositoryUri,
username: username,
password: password,
}, true
}

View File

@@ -0,0 +1,7 @@
FROM --platform=$BUILDPLATFORM golang:1.21.6-alpine3.18 as initial
ARG SLEEP_SECONDS
RUN sleep ${SLEEP_SECONDS} && echo ${SLEEP_SECONDS} > output
FROM alpine:3.18 as final
COPY --from=initial /go/output output
RUN cat output

View File

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

View File

@@ -0,0 +1,40 @@
import * as buildx from "@pulumi/docker-build";
import * as pulumi from "@pulumi/pulumi";
const config = new pulumi.Config();
const start = new Date().getTime();
// docker buildx build \
// -f Dockerfile \
// --cache-to type=local,dest=tmp,mode=max,oci-mediatypes=true \
// --cache-from type=local,src=tmp \
// --build-arg SLEEP-MS=$SLEEP_MS \
// -t not-pushed \
// -f Dockerfile \
// .
const img = new buildx.Image(`buildx-${config.require("name")}`, {
tags: ["not-pushed"],
dockerfile: { location: "Dockerfile" },
push: false,
context: { location: "." },
buildArgs: {
SLEEP_SECONDS: config.require("SLEEP_SECONDS"),
},
cacheTo: [{ raw: config.require("cacheTo") }],
cacheFrom: [{ raw: config.require("cacheFrom") }],
// Set registry auth if it was provided.
registries: config.require("username")
? [
{
address: config.getSecret("address"),
username: config.getSecret("username"),
password: config.getSecret("password"),
},
]
: undefined,
});
export const durationSeconds = img.ref.apply(
(_) => (new Date().getTime() - start) / 1000.0
);

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -155,14 +155,14 @@ type CacheFromGitHubActions struct {
// Annotate sets docstrings on CacheFromGitHubActions.
func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) {
a.SetDefault(&c.URL, "", "ACTIONS_RUNTIME_URL")
a.SetDefault(&c.URL, "", "ACTIONS_CACHE_URL")
a.SetDefault(&c.Token, "", "ACTIONS_RUNTIME_TOKEN")
a.SetDefault(&c.Scope, "", "buildkit")
a.Describe(&c.URL, dedent(`
The cache server URL to use for artifacts.
Defaults to "$ACTIONS_RUNTIME_URL", although a separate action like
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.
`))

View File

@@ -45,7 +45,7 @@ namespace Pulumi.DockerBuild.Inputs
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// 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>
@@ -56,7 +56,7 @@ namespace Pulumi.DockerBuild.Inputs
{
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
}
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
}

View File

@@ -57,7 +57,7 @@ namespace Pulumi.DockerBuild.Inputs
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// 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>
@@ -70,7 +70,7 @@ namespace Pulumi.DockerBuild.Inputs
Mode = Pulumi.DockerBuild.CacheMode.Min;
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
}
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
}

View File

@@ -32,7 +32,7 @@ namespace Pulumi.DockerBuild.Outputs
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// 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>

View File

@@ -40,7 +40,7 @@ namespace Pulumi.DockerBuild.Outputs
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// 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>

View File

@@ -849,7 +849,7 @@ type CacheFromGitHubActions struct {
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -874,7 +874,7 @@ func (val *CacheFromGitHubActions) Defaults() *CacheFromGitHubActions {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
@@ -908,7 +908,7 @@ type CacheFromGitHubActionsArgs struct {
Token pulumi.StringPtrInput `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -931,7 +931,7 @@ func (val *CacheFromGitHubActionsArgs) Defaults() *CacheFromGitHubActionsArgs {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumi.StringPtr(d.(string))
}
}
@@ -1052,7 +1052,7 @@ func (o CacheFromGitHubActionsOutput) Token() pulumi.StringPtrOutput {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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 {
@@ -1119,7 +1119,7 @@ func (o CacheFromGitHubActionsPtrOutput) Token() pulumi.StringPtrOutput {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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 {
@@ -2384,7 +2384,7 @@ type CacheToGitHubActions struct {
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -2417,7 +2417,7 @@ func (val *CacheToGitHubActions) Defaults() *CacheToGitHubActions {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
@@ -2455,7 +2455,7 @@ type CacheToGitHubActionsArgs struct {
Token pulumi.StringPtrInput `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -2484,7 +2484,7 @@ func (val *CacheToGitHubActionsArgs) Defaults() *CacheToGitHubActionsArgs {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumi.StringPtr(d.(string))
}
}
@@ -2615,7 +2615,7 @@ func (o CacheToGitHubActionsOutput) Token() pulumi.StringPtrOutput {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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 {
@@ -2702,7 +2702,7 @@ func (o CacheToGitHubActionsPtrOutput) Token() pulumi.StringPtrOutput {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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 {

View File

@@ -408,7 +408,7 @@ type CacheFromGitHubActions struct {
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -433,7 +433,7 @@ func (val *CacheFromGitHubActions) Defaults() *CacheFromGitHubActions {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
@@ -456,7 +456,7 @@ type CacheFromGitHubActionsArgs struct {
Token pulumix.Input[*string] `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -479,7 +479,7 @@ func (val *CacheFromGitHubActionsArgs) Defaults() *CacheFromGitHubActionsArgs {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumix.Ptr(d.(string))
}
}
@@ -541,7 +541,7 @@ func (o CacheFromGitHubActionsOutput) Token() pulumix.Output[*string] {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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] {
@@ -1157,7 +1157,7 @@ type CacheToGitHubActions struct {
Token *string `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -1190,7 +1190,7 @@ func (val *CacheToGitHubActions) Defaults() *CacheToGitHubActions {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
url_ := d.(string)
tmp.Url = &url_
}
@@ -1217,7 +1217,7 @@ type CacheToGitHubActionsArgs struct {
Token pulumix.Input[*string] `pulumi:"token"`
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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"`
@@ -1246,7 +1246,7 @@ func (val *CacheToGitHubActionsArgs) Defaults() *CacheToGitHubActionsArgs {
}
}
if tmp.Url == nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_RUNTIME_URL"); d != nil {
if d := internal.GetEnvOrDefault("", nil, "ACTIONS_CACHE_URL"); d != nil {
tmp.Url = pulumix.Ptr(d.(string))
}
}
@@ -1318,7 +1318,7 @@ func (o CacheToGitHubActionsOutput) Token() pulumix.Output[*string] {
// The cache server URL to use for artifacts.
//
// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
// 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] {

View File

@@ -65,7 +65,7 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -76,7 +76,7 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -172,7 +172,7 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -187,7 +187,7 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -201,7 +201,7 @@ public final class CacheFromGitHubActionsArgs extends com.pulumi.resources.Resou
public CacheFromGitHubActionsArgs build() {
$.scope = Codegen.stringProp("scope").output().arg($.scope).env("buildkit").def("").getNullable();
$.token = Codegen.stringProp("token").secret().arg($.token).env("ACTIONS_RUNTIME_TOKEN").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_RUNTIME_URL").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_CACHE_URL").def("").getNullable();
return $;
}
}

View File

@@ -97,7 +97,7 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -108,7 +108,7 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -248,7 +248,7 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -263,7 +263,7 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
/**
* @param url The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -279,7 +279,7 @@ public final class CacheToGitHubActionsArgs extends com.pulumi.resources.Resourc
$.mode = Codegen.objectProp("mode", CacheMode.class).output().arg($.mode).def(CacheMode.Min).getNullable();
$.scope = Codegen.stringProp("scope").output().arg($.scope).env("buildkit").def("").getNullable();
$.token = Codegen.stringProp("token").secret().arg($.token).env("ACTIONS_RUNTIME_TOKEN").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_RUNTIME_URL").def("").getNullable();
$.url = Codegen.stringProp("url").output().arg($.url).env("ACTIONS_CACHE_URL").def("").getNullable();
return $;
}
}

View File

@@ -32,7 +32,7 @@ public final class CacheFromGitHubActions {
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -65,7 +65,7 @@ public final class CacheFromGitHubActions {
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*

View File

@@ -44,7 +44,7 @@ public final class CacheToGitHubActions {
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*
@@ -91,7 +91,7 @@ public final class CacheToGitHubActions {
/**
* @return The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*

View File

@@ -124,7 +124,7 @@ export interface CacheFromGitHubActionsArgs {
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*/
@@ -138,7 +138,7 @@ export function cacheFromGitHubActionsArgsProvideDefaults(val: CacheFromGitHubAc
...val,
scope: (val.scope) ?? (utilities.getEnv("buildkit") || ""),
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_RUNTIME_URL") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
};
}
@@ -331,7 +331,7 @@ export interface CacheToGitHubActionsArgs {
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*/
@@ -347,7 +347,7 @@ export function cacheToGitHubActionsArgsProvideDefaults(val: CacheToGitHubAction
mode: (val.mode) ?? "min",
scope: (val.scope) ?? (utilities.getEnv("buildkit") || ""),
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_RUNTIME_URL") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
};
}

View File

@@ -124,7 +124,7 @@ export interface CacheFromGitHubActions {
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*/
@@ -138,7 +138,7 @@ export function cacheFromGitHubActionsProvideDefaults(val: CacheFromGitHubAction
...val,
scope: (val.scope) ?? (utilities.getEnv("buildkit") || ""),
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_RUNTIME_URL") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
};
}
@@ -331,7 +331,7 @@ export interface CacheToGitHubActions {
/**
* The cache server URL to use for artifacts.
*
* Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
* 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.
*/
@@ -347,7 +347,7 @@ export function cacheToGitHubActionsProvideDefaults(val: CacheToGitHubActions):
mode: (val.mode) ?? "min",
scope: (val.scope) ?? (utilities.getEnv("buildkit") || ""),
token: (val.token) ?? (utilities.getEnv("ACTIONS_RUNTIME_TOKEN") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_RUNTIME_URL") || ""),
url: (val.url) ?? (utilities.getEnv("ACTIONS_CACHE_URL") || ""),
};
}

View File

@@ -208,7 +208,7 @@ class CacheFromGitHubActionsArgs:
environment variable to your jobs.
:param pulumi.Input[str] url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -221,7 +221,7 @@ class CacheFromGitHubActionsArgs:
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_RUNTIME_URL') or '')
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@@ -263,7 +263,7 @@ class CacheFromGitHubActionsArgs:
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -749,7 +749,7 @@ class CacheToGitHubActionsArgs:
environment variable to your jobs.
:param pulumi.Input[str] url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -770,7 +770,7 @@ class CacheToGitHubActionsArgs:
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_RUNTIME_URL') or '')
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@@ -836,7 +836,7 @@ class CacheToGitHubActionsArgs:
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""

View File

@@ -305,7 +305,7 @@ class CacheFromGitHubActions(dict):
environment variable to your jobs.
:param str url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -318,7 +318,7 @@ class CacheFromGitHubActions(dict):
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_RUNTIME_URL') or '')
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@@ -352,7 +352,7 @@ class CacheFromGitHubActions(dict):
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -817,7 +817,7 @@ class CacheToGitHubActions(dict):
environment variable to your jobs.
:param str url: The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""
@@ -838,7 +838,7 @@ class CacheToGitHubActions(dict):
if token is not None:
pulumi.set(__self__, "token", token)
if url is None:
url = (_utilities.get_env('ACTIONS_RUNTIME_URL') or '')
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
if url is not None:
pulumi.set(__self__, "url", url)
@@ -888,7 +888,7 @@ class CacheToGitHubActions(dict):
"""
The cache server URL to use for artifacts.
Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
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.
"""