Skip to content

Commit c9b6df6

Browse files
authored
Merge pull request #1 from sevenpark/codeship
2 parents a7c802b + 07ebeb7 commit c9b6df6

File tree

9 files changed

+144
-0
lines changed

9 files changed

+144
-0
lines changed

.dockerignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.gitignore
2+
.travis.yml
3+
.gitignore
4+
.github
5+
6+
# Codeship config
7+
codeship-services.yml
8+
codeship-steps.yml
9+
*.aes

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@ yarn-error.log*
2222
yarn.lock
2323
package-lock.json
2424
.idea
25+
26+
# Codeship
27+
*.aes

Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM node:13.8.0
2+
3+
4+
WORKDIR /opt/7park
5+
COPY . /opt/7park/
6+
RUN yarn --ignore-engines
7+
8+
CMD [ "yarn", "start"]

aws.env.encrypted

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
codeship:v2
2+
Er3f9/R2iO/gzA20whXqRFKegw9uLAt3iQz/FOaYTHMPUcyIo0astzzg1BBUhf6KXsbfwQgkesgWu+n/8OU4IM7wEPrZ8ueGXvZGTlKzqq5Sx6qHxT90lMl2X7JdnF+dBHg8pGsS8/GSL5VUcpVrlCF5ErUIO7jEW/5u2nLT0WKc+/BGqyhbMsjafxLfbDQEoAXnpKN/j/jIe88byd2NDqnr6HrKog0l4Ok=

codeship-services.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
kepler_prod:
2+
build:
3+
image: 084888172679.dkr.ecr.us-east-1.amazonaws.com/kepler
4+
dockerfile_path: ./Dockerfile
5+
encrypted_env_file: aws.env.encrypted
6+
environment:
7+
- AWS_DEFAULT_REGION=us-east-1
8+
cache: true
9+
10+
aws_dockercfg_prod:
11+
image: codeship/aws-ecr-dockercfg-generator
12+
add_docker: true
13+
encrypted_env_file: aws.env.encrypted
14+
cache: true
15+
16+
aws_deployment_prod:
17+
image: codeship/aws-deployment
18+
add_docker: true
19+
encrypted_env_file: aws.env.encrypted
20+
environment:
21+
- AWS_DEFAULT_REGION=us-east-1
22+
volumes:
23+
- ./:/deploy
24+
cache: true

codeship-steps.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
- name: Build Kepler and Publish to ECR
2+
service: kepler_prod
3+
type: push
4+
tag: "master"
5+
image_name: 084888172679.dkr.ecr.us-east-1.amazonaws.com/kepler
6+
image_tag: "{{ .Branch }}"
7+
registry: https://084888172679.dkr.ecr.us-east-1.amazonaws.com
8+
dockercfg_service: aws_dockercfg_prod
9+
10+
- name: Deploy to ECS
11+
type: serial
12+
steps:
13+
- service: aws_deployment_prod
14+
tag: "master"
15+
command: deploy/ops/aws_deployment.sh
16+
dockercfg_service: aws_dockercfg_prod

ops/aws_deployment.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
echo "Running deployment for branch $CI_BRANCH"
4+
source /deploy/ops/branch_to_env.sh
5+
6+
aws --version
7+
pip install awscli==1.18.63
8+
pip install jinja2-cli==0.6.0
9+
aws --version
10+
11+
#for COMMAND in "api" "rq" "unicorn"
12+
13+
jinja2 /deploy/ops/tasks/${ENV}/task_def.json.j2 -D branch=${CI_BRANCH} -D env=${ENV} -D command=${COMMAND} >/task_def_${COMMAND}.json
14+
15+
cat task_def_${COMMAND}.json
16+
17+
# Register a new version of the task defined in json and update
18+
# the currently running instances
19+
aws ecs register-task-definition --cli-input-json file:///task_def_${COMMAND}.json
20+
21+
aws ecs update-service --cluster seven-park-${ENV} --service distro-${COMMAND}-${ENV}-service --task-definition distro-${COMMAND}-${ENV}-td

ops/branch_to_env.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
echo Current branch ${CI_BRANCH}
4+
5+
case "${CI_BRANCH}" in
6+
dev)
7+
ENV="dev"
8+
;;
9+
master)
10+
ENV="prod"
11+
;;
12+
*)
13+
ENV="dev"
14+
;;
15+
esac
16+
17+
echo Running for env=${ENV}

ops/tasks/prod/task_def.json.j2

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"containerDefinitions": [
3+
{
4+
"logConfiguration": {
5+
"logDriver": "awslogs",
6+
"options": {
7+
"awslogs-group": "/apps/kepler-ecs-{{env}}",
8+
"awslogs-region": "us-east-1",
9+
"awslogs-stream-prefix": "kepler"
10+
}
11+
},
12+
"portMappings": [
13+
{
14+
"hostPort": 3000,
15+
"protocol": "tcp",
16+
"containerPort": 3000
17+
}
18+
],
19+
"cpu": 1024,
20+
"environment": [
21+
{
22+
"name": "ENV",
23+
"value": "{{env}}"
24+
}
25+
],
26+
"mountPoints": [],
27+
"memory": 2048,
28+
"volumesFrom": [],
29+
"image": "084888172679.dkr.ecr.us-east-1.amazonaws.com/kepler:{{branch}}",
30+
"essential": true,
31+
"name": "kepler_{{env}}"
32+
}
33+
],
34+
"executionRoleArn": "arn:aws:iam::084888172679:role/7p-kepler-{{env}}-ecs",
35+
"taskRoleArn": "arn:aws:iam::084888172679:role/7p-kepler-{{command}}-{{env}}-ecs",
36+
"family": "kepler-{{env}}-td",
37+
"networkMode": "awsvpc",
38+
"placementConstraints": [],
39+
"requiresCompatibilities": [
40+
"FARGATE"
41+
],
42+
"cpu": "1024",
43+
"memory": "2048"
44+
}

0 commit comments

Comments
 (0)