Skip to content
This repository was archived by the owner on Jan 5, 2023. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 19 additions & 42 deletions .github/workflows/aws-dev.yml → .github/workflows/kube-dev.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,15 @@
# This workflow will build and push a new container image to Amazon ECR,
# and then will deploy a new task definition to Amazon ECS, on every push
# to the master branch.
#
# To use this workflow, you will need to complete the following set-up steps:
#
# 1. Create an ECR repository to store your images.
# For example: `aws ecr create-repository --repository-name my-ecr-repo --region us-east-2`.
# Replace the value of `ECR_REPOSITORY` in the workflow below with your repository's name.
# Replace the value of `aws-region` in the workflow below with your repository's region.
#
# 2. Create an ECS task definition, an ECS cluster, and an ECS service.
# For example, follow the Getting Started guide on the ECS console:
# https://us-east-2.console.aws.amazon.com/ecs/home?region=us-east-2#/firstRun
# Replace the values for `service` and `cluster` in the workflow below with your service and cluster names.
#
# 3. Store your ECS task definition as a JSON file in your repository.
# The format should follow the output of `aws ecs register-task-definition --generate-cli-skeleton`.
# Replace the value of `task-definition` in the workflow below with your JSON file's name.
# Replace the value of `container-name` in the workflow below with the name of the container
# in the `containerDefinitions` section of the task definition.
#
# 4. Store an IAM user access key in GitHub Actions secrets named `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
# See the documentation for each action used below for the recommended IAM policies for this IAM user,
# and best practices on handling the access key credentials.
name: Deploy to Amazon EKS

on:
push:
branches:
- develop

name: Deploy to Amazon ECS

env:
ECR_REPOSITORY: kilt/prototype-services
ECR_IMAGE_TAG: latest-develop
SHA_IMAGE_TAG: ${{ github.sha }}
KUBECONFIG: '${{ github.workspace }}/.kube/kubeconfig'

jobs:
deploy:
Expand Down Expand Up @@ -68,25 +44,26 @@ jobs:
# Build a docker container and
# push it to ECR so that it can
# be deployed to ECS.
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$ECR_IMAGE_TAG --build-arg NODE_AUTH_TOKEN=${{ secrets.GITHUB_TOKEN }} .
docker build \
-t $ECR_REGISTRY/$ECR_REPOSITORY:$ECR_IMAGE_TAG \
-t $ECR_REGISTRY/$ECR_REPOSITORY:$SHA_IMAGE_TAG \
--build-arg NODE_AUTH_TOKEN=${{ secrets.GITHUB_TOKEN }} \
.
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$ECR_IMAGE_TAG
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$SHA_IMAGE_TAG
echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$ECR_IMAGE_TAG"
echo "::set-output name=image-sha::$ECR_REGISTRY/$ECR_REPOSITORY:$SHA_IMAGE_TAG"

- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: task-definition.json
container-name: demo-services
image: ${{ steps.build-image.outputs.image }}
- name: Configure Kubernetes
run: |
mkdir -p '${{ github.workspace }}/.kube' \
&& echo '${{ secrets.KUBE_CONFIG}}' | base64 -d > $KUBECONFIG

- name: Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: demo-services
cluster: kilt-devnet
wait-for-service-stability: true
- name: Set new image
env:
IMAGE: ${{ steps.build-image.outputs.image-sha }}
run: |
kubectl -n devnet set image deployment/services-deployment services-container=$IMAGE

publish_to_docker:
name: Publish develop image to docker
Expand Down