remove circleci/aws-ecr orb and push built image to public registry
This commit is contained in:
parent
a9c0263db6
commit
e3262da915
@ -1,123 +0,0 @@
|
|||||||
version: 2.1
|
|
||||||
orbs:
|
|
||||||
aws-cli: circleci/aws-cli@1.3.2
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-push-image:
|
|
||||||
description: build and push docker images
|
|
||||||
executor: aws-cli/default
|
|
||||||
parameters:
|
|
||||||
profile-name:
|
|
||||||
type: string
|
|
||||||
default: "default"
|
|
||||||
description: AWS profile name to be configured.
|
|
||||||
|
|
||||||
aws-access-key-id:
|
|
||||||
type: env_var_name
|
|
||||||
default: AWS_ACCESS_KEY_ID
|
|
||||||
description: >
|
|
||||||
AWS access key id for IAM role. Set this to the name of
|
|
||||||
the environment variable you will set to hold this
|
|
||||||
value, i.e. AWS_ACCESS_KEY.
|
|
||||||
|
|
||||||
aws-secret-access-key:
|
|
||||||
type: env_var_name
|
|
||||||
default: AWS_SECRET_ACCESS_KEY
|
|
||||||
description: >
|
|
||||||
AWS secret key for IAM role. Set this to the name of
|
|
||||||
the environment variable you will set to hold this
|
|
||||||
value, i.e. AWS_SECRET_ACCESS_KEY.
|
|
||||||
|
|
||||||
region:
|
|
||||||
type: env_var_name
|
|
||||||
default: AWS_REGION
|
|
||||||
description: >
|
|
||||||
Name of env var storing your AWS region information,
|
|
||||||
defaults to AWS_REGION
|
|
||||||
|
|
||||||
account-url:
|
|
||||||
type: env_var_name
|
|
||||||
default: AWS_ECR_ACCOUNT_URL
|
|
||||||
description: >
|
|
||||||
Env var storing Amazon ECR account URL that maps to an AWS account,
|
|
||||||
e.g. {awsAccountNum}.dkr.ecr.us-west-2.amazonaws.com
|
|
||||||
defaults to AWS_ECR_ACCOUNT_URL
|
|
||||||
|
|
||||||
dockerfile:
|
|
||||||
type: string
|
|
||||||
default: Dockerfile
|
|
||||||
description: Name of dockerfile to use. Defaults to Dockerfile.
|
|
||||||
|
|
||||||
path:
|
|
||||||
type: string
|
|
||||||
default: .
|
|
||||||
description: Path to the directory containing your Dockerfile and build context. Defaults to . (working directory).
|
|
||||||
|
|
||||||
extra-build-args:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
description: >
|
|
||||||
Extra flags to pass to docker build. For examples, see
|
|
||||||
https://docs.docker.com/engine/reference/commandline/build
|
|
||||||
|
|
||||||
repo:
|
|
||||||
type: string
|
|
||||||
description: Name of an Amazon ECR repository
|
|
||||||
|
|
||||||
tag:
|
|
||||||
type: string
|
|
||||||
default: "latest"
|
|
||||||
description: A comma-separated string containing docker image tags to build and push (default = latest)
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- aws-cli/setup:
|
|
||||||
profile-name: <<parameters.profile-name>>
|
|
||||||
aws-access-key-id: <<parameters.aws-access-key-id>>
|
|
||||||
aws-secret-access-key: <<parameters.aws-secret-access-key>>
|
|
||||||
aws-region: <<parameters.region>>
|
|
||||||
|
|
||||||
- run:
|
|
||||||
name: Log into Amazon ECR
|
|
||||||
command: |
|
|
||||||
aws ecr get-login-password --region $<<parameters.region>> --profile <<parameters.profile-name>> | docker login --username AWS --password-stdin $<<parameters.account-url>>
|
|
||||||
|
|
||||||
- checkout
|
|
||||||
|
|
||||||
- setup_remote_docker:
|
|
||||||
version: 19.03.13
|
|
||||||
docker_layer_caching: false
|
|
||||||
|
|
||||||
- run:
|
|
||||||
name: Build docker image
|
|
||||||
command: |
|
|
||||||
registry_id=$(echo $<<parameters.account-url>> | sed "s;\..*;;g")
|
|
||||||
|
|
||||||
docker_tag_args=""
|
|
||||||
IFS="," read -ra DOCKER_TAGS \<<< "<< parameters.tag >>"
|
|
||||||
for tag in "${DOCKER_TAGS[@]}"; do
|
|
||||||
docker_tag_args="$docker_tag_args -t $<<parameters.account-url>>/<<parameters.repo>>:$tag"
|
|
||||||
done
|
|
||||||
|
|
||||||
docker build \
|
|
||||||
<<#parameters.extra-build-args>><<parameters.extra-build-args>><</parameters.extra-build-args>> \
|
|
||||||
-f <<parameters.path>>/<<parameters.dockerfile>> \
|
|
||||||
$docker_tag_args \
|
|
||||||
<<parameters.path>>
|
|
||||||
|
|
||||||
- run:
|
|
||||||
name: Push image to Amazon ECR
|
|
||||||
command: |
|
|
||||||
IFS="," read -ra DOCKER_TAGS \<<< "<< parameters.tag >>"
|
|
||||||
for tag in "${DOCKER_TAGS[@]}"; do
|
|
||||||
docker push $<<parameters.account-url>>/<<parameters.repo>>:${tag}
|
|
||||||
done
|
|
||||||
|
|
||||||
workflows:
|
|
||||||
version: 2.1
|
|
||||||
ci:
|
|
||||||
jobs:
|
|
||||||
- build-and-push-image:
|
|
||||||
dockerfile: Dockerfile.lotus
|
|
||||||
path: .
|
|
||||||
repo: lotus-test-dev
|
|
||||||
tag: '${CIRCLE_SHA1:0:8}'
|
|
@ -1,7 +1,7 @@
|
|||||||
version: 2.1
|
version: 2.1
|
||||||
orbs:
|
orbs:
|
||||||
go: gotest/tools@0.0.13
|
go: gotest/tools@0.0.13
|
||||||
aws-ecr: circleci/aws-ecr@6.15.2
|
aws-cli: circleci/aws-cli@1.3.2
|
||||||
|
|
||||||
executors:
|
executors:
|
||||||
golang:
|
golang:
|
||||||
@ -448,6 +448,115 @@ jobs:
|
|||||||
name: Publish release
|
name: Publish release
|
||||||
command: ./scripts/publish-release.sh
|
command: ./scripts/publish-release.sh
|
||||||
|
|
||||||
|
build-and-push-image:
|
||||||
|
description: build and push docker images to public AWS ECR registry
|
||||||
|
executor: aws-cli/default
|
||||||
|
parameters:
|
||||||
|
profile-name:
|
||||||
|
type: string
|
||||||
|
default: "default"
|
||||||
|
description: AWS profile name to be configured.
|
||||||
|
|
||||||
|
aws-access-key-id:
|
||||||
|
type: env_var_name
|
||||||
|
default: AWS_ACCESS_KEY_ID
|
||||||
|
description: >
|
||||||
|
AWS access key id for IAM role. Set this to the name of
|
||||||
|
the environment variable you will set to hold this
|
||||||
|
value, i.e. AWS_ACCESS_KEY.
|
||||||
|
|
||||||
|
aws-secret-access-key:
|
||||||
|
type: env_var_name
|
||||||
|
default: AWS_SECRET_ACCESS_KEY
|
||||||
|
description: >
|
||||||
|
AWS secret key for IAM role. Set this to the name of
|
||||||
|
the environment variable you will set to hold this
|
||||||
|
value, i.e. AWS_SECRET_ACCESS_KEY.
|
||||||
|
|
||||||
|
region:
|
||||||
|
type: env_var_name
|
||||||
|
default: AWS_REGION
|
||||||
|
description: >
|
||||||
|
Name of env var storing your AWS region information,
|
||||||
|
defaults to AWS_REGION
|
||||||
|
|
||||||
|
account-url:
|
||||||
|
type: env_var_name
|
||||||
|
default: AWS_ECR_ACCOUNT_URL
|
||||||
|
description: >
|
||||||
|
Env var storing Amazon ECR account URL that maps to an AWS account,
|
||||||
|
e.g. {awsAccountNum}.dkr.ecr.us-west-2.amazonaws.com
|
||||||
|
defaults to AWS_ECR_ACCOUNT_URL
|
||||||
|
|
||||||
|
dockerfile:
|
||||||
|
type: string
|
||||||
|
default: Dockerfile
|
||||||
|
description: Name of dockerfile to use. Defaults to Dockerfile.
|
||||||
|
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
default: .
|
||||||
|
description: Path to the directory containing your Dockerfile and build context. Defaults to . (working directory).
|
||||||
|
|
||||||
|
extra-build-args:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
description: >
|
||||||
|
Extra flags to pass to docker build. For examples, see
|
||||||
|
https://docs.docker.com/engine/reference/commandline/build
|
||||||
|
|
||||||
|
repo:
|
||||||
|
type: string
|
||||||
|
description: Name of an Amazon ECR repository
|
||||||
|
|
||||||
|
tag:
|
||||||
|
type: string
|
||||||
|
default: "latest"
|
||||||
|
description: A comma-separated string containing docker image tags to build and push (default = latest)
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- aws-cli/setup:
|
||||||
|
profile-name: <<parameters.profile-name>>
|
||||||
|
aws-access-key-id: <<parameters.aws-access-key-id>>
|
||||||
|
aws-secret-access-key: <<parameters.aws-secret-access-key>>
|
||||||
|
aws-region: <<parameters.region>>
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Log into Amazon ECR
|
||||||
|
command: |
|
||||||
|
aws ecr get-login-password --region $<<parameters.region>> --profile <<parameters.profile-name>> | docker login --username AWS --password-stdin $<<parameters.account-url>>
|
||||||
|
|
||||||
|
- checkout
|
||||||
|
|
||||||
|
- setup_remote_docker:
|
||||||
|
version: 19.03.13
|
||||||
|
docker_layer_caching: false
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Build docker image
|
||||||
|
command: |
|
||||||
|
registry_id=$(echo $<<parameters.account-url>> | sed "s;\..*;;g")
|
||||||
|
|
||||||
|
docker_tag_args=""
|
||||||
|
IFS="," read -ra DOCKER_TAGS \<<< "<< parameters.tag >>"
|
||||||
|
for tag in "${DOCKER_TAGS[@]}"; do
|
||||||
|
docker_tag_args="$docker_tag_args -t $<<parameters.account-url>>/<<parameters.repo>>:$tag"
|
||||||
|
done
|
||||||
|
|
||||||
|
docker build \
|
||||||
|
<<#parameters.extra-build-args>><<parameters.extra-build-args>><</parameters.extra-build-args>> \
|
||||||
|
-f <<parameters.path>>/<<parameters.dockerfile>> \
|
||||||
|
$docker_tag_args \
|
||||||
|
<<parameters.path>>
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Push image to Amazon ECR
|
||||||
|
command: |
|
||||||
|
IFS="," read -ra DOCKER_TAGS \<<< "<< parameters.tag >>"
|
||||||
|
for tag in "${DOCKER_TAGS[@]}"; do
|
||||||
|
docker push $<<parameters.account-url>>/<<parameters.repo>>:${tag}
|
||||||
|
done
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2.1
|
version: 2.1
|
||||||
ci:
|
ci:
|
||||||
@ -537,10 +646,8 @@ workflows:
|
|||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+$/
|
- /^v\d+\.\d+\.\d+$/
|
||||||
- aws-ecr/build-and-push-image:
|
- build-and-push-image:
|
||||||
dockerfile: Dockerfile.lotus
|
dockerfile: Dockerfile.lotus
|
||||||
no-output-timeout: 30m
|
|
||||||
path: .
|
path: .
|
||||||
repo: lotus-dev
|
repo: lotus-test-dev
|
||||||
skip-when-tags-exist: false
|
|
||||||
tag: '${CIRCLE_SHA1:0:8}'
|
tag: '${CIRCLE_SHA1:0:8}'
|
||||||
|
Loading…
Reference in New Issue
Block a user