mirror of https://github.com/docker/docs.git
releaser: add dry run mode
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
parent
d7e80d53c1
commit
9ee4e85c70
|
@ -19,6 +19,7 @@ RUN --mount=type=bind,target=. \
|
|||
go build -o /out/releaser .
|
||||
|
||||
FROM base AS aws-s3-update-config
|
||||
ARG DRY_RUN=false
|
||||
ARG AWS_REGION
|
||||
ARG AWS_S3_BUCKET
|
||||
ARG AWS_S3_CONFIG
|
||||
|
@ -30,6 +31,7 @@ RUN --mount=type=bind,target=. \
|
|||
releaser aws s3-update-config
|
||||
|
||||
FROM base AS aws-lambda-invoke
|
||||
ARG DRY_RUN=false
|
||||
ARG AWS_REGION
|
||||
ARG AWS_LAMBDA_FUNCTION
|
||||
RUN --mount=type=bind,from=releaser,source=/out/releaser,target=/usr/bin/releaser \
|
||||
|
@ -39,6 +41,7 @@ RUN --mount=type=bind,from=releaser,source=/out/releaser,target=/usr/bin/release
|
|||
releaser aws lambda-invoke
|
||||
|
||||
FROM base AS aws-cloudfront-update
|
||||
ARG DRY_RUN=false
|
||||
ARG AWS_REGION
|
||||
ARG AWS_LAMBDA_FUNCTION
|
||||
ARG AWS_CLOUDFRONT_ID
|
||||
|
|
|
@ -30,9 +30,15 @@ type AwsS3UpdateConfigCmd struct {
|
|||
Region string `kong:"name='region',env='AWS_REGION'"`
|
||||
S3Bucket string `kong:"name='s3-bucket',env='AWS_S3_BUCKET'"`
|
||||
S3Config string `kong:"name='s3-website-config',env='AWS_S3_CONFIG'"`
|
||||
DryRun bool `kong:"name='dry-run',env='DRY_RUN'"`
|
||||
}
|
||||
|
||||
func (s *AwsS3UpdateConfigCmd) Run() error {
|
||||
if s.DryRun {
|
||||
log.Printf("INFO: Dry run mode enabled. Configuration:\nRegion: %s\nS3Bucket: %s\nS3Config: %s\n", s.Region, s.S3Bucket, s.S3Config)
|
||||
return nil
|
||||
}
|
||||
|
||||
file, err := os.ReadFile(s.S3Config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read s3 config file %s: %w", s.S3Config, err)
|
||||
|
@ -74,9 +80,15 @@ func (s *AwsS3UpdateConfigCmd) Run() error {
|
|||
type AwsLambdaInvokeCmd struct {
|
||||
Region string `kong:"name='region',env='AWS_REGION'"`
|
||||
LambdaFunction string `kong:"name='lambda-function',env='AWS_LAMBDA_FUNCTION'"`
|
||||
DryRun bool `kong:"name='dry-run',env='DRY_RUN'"`
|
||||
}
|
||||
|
||||
func (s *AwsLambdaInvokeCmd) Run() error {
|
||||
if s.DryRun {
|
||||
log.Printf("INFO: Dry run mode enabled. Configuration:\nRegion: %s\nLambdaFunction: %s\n", s.Region, s.LambdaFunction)
|
||||
return nil
|
||||
}
|
||||
|
||||
svc := lambda.New(session.Must(session.NewSessionWithOptions(session.Options{
|
||||
SharedConfigState: session.SharedConfigEnable,
|
||||
})), &aws.Config{
|
||||
|
@ -102,17 +114,24 @@ type AwsCloudfrontUpdateCmd struct {
|
|||
CloudfrontID string `kong:"name='cloudfront-id',env='AWS_CLOUDFRONT_ID'"`
|
||||
RedirectsFile string `kong:"name='redirects-file',env='REDIRECTS_FILE'"`
|
||||
RedirectsPrefixesFile string `kong:"name='redirects-prefixes-file',env='REDIRECTS_PREFIXES_FILE'"`
|
||||
DryRun bool `kong:"name='dry-run',env='DRY_RUN'"`
|
||||
}
|
||||
|
||||
func (s *AwsCloudfrontUpdateCmd) Run() error {
|
||||
var err error
|
||||
ver := time.Now().UTC().Format(time.RFC3339)
|
||||
|
||||
zipdt, err := getLambdaFunctionZip(s.FunctionFile, s.RedirectsFile, s.RedirectsPrefixesFile)
|
||||
zipdt, err := getLambdaFunctionZip(s.FunctionFile, s.RedirectsFile, s.RedirectsPrefixesFile, s.DryRun)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot create lambda function zip: %w", err)
|
||||
}
|
||||
|
||||
if s.DryRun {
|
||||
log.Printf("INFO: Dry run mode enabled. Configuration:\nRegion: %s\nFunction: %s\nFunctionFile: %s\nCloudfrontID: %s\nRedirectsFile: %s\nRedirectsPrefixesFile: %s\n",
|
||||
s.Region, s.Function, s.FunctionFile, s.CloudfrontID, s.RedirectsFile, s.RedirectsPrefixesFile)
|
||||
return nil
|
||||
}
|
||||
|
||||
svc := lambda.New(session.Must(session.NewSessionWithOptions(session.Options{
|
||||
SharedConfigState: session.SharedConfigEnable,
|
||||
})), &aws.Config{
|
||||
|
@ -228,7 +247,7 @@ func (s *AwsCloudfrontUpdateCmd) Run() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func getLambdaFunctionZip(funcFilename, redirectsFile, redirectsPrefixesFile string) ([]byte, error) {
|
||||
func getLambdaFunctionZip(funcFilename, redirectsFile, redirectsPrefixesFile string, dryrun bool) ([]byte, error) {
|
||||
funcdt, err := os.ReadFile(funcFilename)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to read lambda function file %q: %w", funcFilename, err)
|
||||
|
@ -256,6 +275,11 @@ func getLambdaFunctionZip(funcFilename, redirectsFile, redirectsPrefixesFile str
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if dryrun {
|
||||
log.Printf("INFO: Dry run mode enabled. Lambda Function Definition:\n\n%s\n", funcbuf.String())
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
tmpdir, err := os.MkdirTemp("", "lambda-zip")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -10,6 +10,10 @@ variable "DOCS_SITE_DIR" {
|
|||
default = "public"
|
||||
}
|
||||
|
||||
variable "DRY_RUN" {
|
||||
default = null
|
||||
}
|
||||
|
||||
group "default" {
|
||||
targets = ["release"]
|
||||
}
|
||||
|
@ -98,6 +102,7 @@ variable "AWS_LAMBDA_FUNCTION" {
|
|||
|
||||
target "_common-aws" {
|
||||
args = {
|
||||
DRY_RUN = DRY_RUN
|
||||
AWS_REGION = AWS_REGION
|
||||
AWS_S3_BUCKET = AWS_S3_BUCKET
|
||||
AWS_S3_CONFIG = AWS_S3_CONFIG
|
||||
|
|
Loading…
Reference in New Issue