mirror of https://github.com/docker/docs.git
releaser: read config from files instead of variables
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
parent
50262b08f7
commit
d7e80d53c1
|
@ -5,7 +5,7 @@ ARG GO_VERSION=1.19
|
||||||
FROM scratch AS sitedir
|
FROM scratch AS sitedir
|
||||||
|
|
||||||
FROM golang:${GO_VERSION}-alpine AS base
|
FROM golang:${GO_VERSION}-alpine AS base
|
||||||
RUN apk add --no-cache jq openssl
|
RUN apk add --no-cache openssl
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
|
@ -42,13 +42,13 @@ FROM base AS aws-cloudfront-update
|
||||||
ARG AWS_REGION
|
ARG AWS_REGION
|
||||||
ARG AWS_LAMBDA_FUNCTION
|
ARG AWS_LAMBDA_FUNCTION
|
||||||
ARG AWS_CLOUDFRONT_ID
|
ARG AWS_CLOUDFRONT_ID
|
||||||
|
ARG AWS_LAMBDA_FUNCTION_FILE="cloudfront-lambda-redirects.js"
|
||||||
|
ARG REDIRECTS_FILE="/site/redirects.json"
|
||||||
|
ARG REDIRECTS_PREFIXES_FILE="redirects-prefixes.json"
|
||||||
RUN --mount=type=bind,target=. \
|
RUN --mount=type=bind,target=. \
|
||||||
--mount=type=bind,from=sitedir,target=/site \
|
--mount=type=bind,from=sitedir,target=/site \
|
||||||
--mount=type=bind,from=releaser,source=/out/releaser,target=/usr/bin/releaser \
|
--mount=type=bind,from=releaser,source=/out/releaser,target=/usr/bin/releaser \
|
||||||
--mount=type=secret,id=AWS_ACCESS_KEY_ID \
|
--mount=type=secret,id=AWS_ACCESS_KEY_ID \
|
||||||
--mount=type=secret,id=AWS_SECRET_ACCESS_KEY \
|
--mount=type=secret,id=AWS_SECRET_ACCESS_KEY \
|
||||||
--mount=type=secret,id=AWS_SESSION_TOKEN \
|
--mount=type=secret,id=AWS_SESSION_TOKEN \
|
||||||
AWS_LAMBDA_FUNCTION_FILE=cloudfront-lambda-redirects.js \
|
|
||||||
REDIRECTS_JSON=$(jq -c '.' /site/redirects.json) \
|
|
||||||
REDIRECTS_PREFIXES_JSON=$(jq -c '.' redirects-prefixes.json) \
|
|
||||||
releaser aws cloudfront-update
|
releaser aws cloudfront-update
|
||||||
|
|
|
@ -100,15 +100,15 @@ type AwsCloudfrontUpdateCmd struct {
|
||||||
Function string `kong:"name='lambda-function',env='AWS_LAMBDA_FUNCTION'"`
|
Function string `kong:"name='lambda-function',env='AWS_LAMBDA_FUNCTION'"`
|
||||||
FunctionFile string `kong:"name='lambda-function-file',env='AWS_LAMBDA_FUNCTION_FILE'"`
|
FunctionFile string `kong:"name='lambda-function-file',env='AWS_LAMBDA_FUNCTION_FILE'"`
|
||||||
CloudfrontID string `kong:"name='cloudfront-id',env='AWS_CLOUDFRONT_ID'"`
|
CloudfrontID string `kong:"name='cloudfront-id',env='AWS_CLOUDFRONT_ID'"`
|
||||||
RedirectsJSON string `kong:"name='redirects-json',env='REDIRECTS_JSON'"`
|
RedirectsFile string `kong:"name='redirects-file',env='REDIRECTS_FILE'"`
|
||||||
RedirectsPrefixesJSON string `kong:"name='redirects-prefixes-json',env='REDIRECTS_PREFIXES_JSON'"`
|
RedirectsPrefixesFile string `kong:"name='redirects-prefixes-file',env='REDIRECTS_PREFIXES_FILE'"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AwsCloudfrontUpdateCmd) Run() error {
|
func (s *AwsCloudfrontUpdateCmd) Run() error {
|
||||||
var err error
|
var err error
|
||||||
ver := time.Now().UTC().Format(time.RFC3339)
|
ver := time.Now().UTC().Format(time.RFC3339)
|
||||||
|
|
||||||
zipdt, err := getLambdaFunctionZip(s.FunctionFile, s.RedirectsJSON, s.RedirectsPrefixesJSON)
|
zipdt, err := getLambdaFunctionZip(s.FunctionFile, s.RedirectsFile, s.RedirectsPrefixesFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("cannot create lambda function zip: %w", err)
|
return fmt.Errorf("cannot create lambda function zip: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -228,20 +228,30 @@ func (s *AwsCloudfrontUpdateCmd) Run() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLambdaFunctionZip(funcFilename string, redirectsJSON string, redirectsPrefixesJSON string) ([]byte, error) {
|
func getLambdaFunctionZip(funcFilename, redirectsFile, redirectsPrefixesFile string) ([]byte, error) {
|
||||||
funcdt, err := os.ReadFile(funcFilename)
|
funcdt, err := os.ReadFile(funcFilename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to read lambda function file %q: %w", funcFilename, err)
|
return nil, fmt.Errorf("failed to read lambda function file %q: %w", funcFilename, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
redirects, err := os.ReadFile(redirectsFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to read redirects file %q: %w", redirectsFile, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
redirectsPrefixes, err := os.ReadFile(redirectsPrefixesFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to read redirects prefixes file %q: %w", redirectsPrefixesFile, err)
|
||||||
|
}
|
||||||
|
|
||||||
var funcbuf bytes.Buffer
|
var funcbuf bytes.Buffer
|
||||||
functpl := template.Must(template.New("").Parse(string(funcdt)))
|
functpl := template.Must(template.New("").Parse(string(funcdt)))
|
||||||
if err = functpl.Execute(&funcbuf, struct {
|
if err = functpl.Execute(&funcbuf, struct {
|
||||||
RedirectsJSON string
|
RedirectsJSON string
|
||||||
RedirectsPrefixesJSON string
|
RedirectsPrefixesJSON string
|
||||||
}{
|
}{
|
||||||
redirectsJSON,
|
string(redirects),
|
||||||
redirectsPrefixesJSON,
|
string(redirectsPrefixes),
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue