Skip to content

Commit 1ed6e95

Browse files
committed
Cleanup scripts and add encrypted creds
1 parent f35c760 commit 1ed6e95

6 files changed

Lines changed: 79 additions & 72 deletions

File tree

.travis.yml

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,37 @@
11
env:
22
global:
3-
- IMAGE_NAME=pybot
4-
- DEPLOY_BRANCHES="master staging"
5-
- AWS_REGION=us-east-2
6-
- secure: DcEpdVJ6LoHSLigVem++aZGn0kq74oyPIk/Zifz61NE7nDbustbXahgtMCkiv7dqyd1nqc6E/9S/DZ5dUoWPeeG/VPKkm+Ylk0jZcVLPwSd9S3oICLIZVwL8bG+FwYEY08kGl20rbTMAZT3zIhT0HMmw59UVYr7Lke9vLy2sZKi3nZv7L6miiIBwK3DFuUx3cPTtNXiaszBbUmFLNTNg6ehig2W+FwhHEG2wmd+On5nmArdaXfBDKMXT748aA2y3OG3PTrXdC5OEi0oIaf/8MimIJWzxkoMS8jFoyDSXFOCOzQucv7uAsZHZRACP2HHV5iqOLIo5E6dlONKJFP7TCYqYTzZF8Dz9TUjIMkr+zAeCMrlMzOCVD3qquUoW++s6F71IHGlavqZvMTApyaRCIZanwHk/Tb96/s87bsFPYoGrsInQjfhhPUHTCxZrkBqZg8UegbZJ+HyH+I0bK9WM5mFyeQ7swRFkaQ6MICmqWF0w8JrJUAkOci3Q6NO1+7NBDNT5F3arhHgKMHpw0ry3iuUU1I7Unh8QdzNIgdcAh7TAgI8n0CjBXHf22+ZI0ph4Og7blZ17h9idSj72Ll8a7Rnj3/FgtB7HE1nQMzZfBtiN6txZAhM1ADIDj6NmaIXF+2hkQDnGczGaLqNHlKb14nNfdiWnO8Wf9DKCFZS8iKk=
7-
- secure: XPvMPMkCIBORXmFSwnSVm6rOF1mHcipzgo9IdbFu87dFFC2mJG/T8UTbEyTLpjpM8WvcSawmpWHtqlhbHXnEj+6ugEongvYsl0wYh/KNU9oS5vw38CvxpvIIg3PyTS39Dp8QtP/y/EaeZPPQiN/soiNGQ0EQ9V/eazjO9Gc9vTvYfPdSc3Q4UjxAqf550L+pkEF6NSh0Lo3ShCr1sai+XCvyvYeTTtwZzufIzq/aNxs+dPUc0FDXdZ5L+J2Ds/yxXAaVcQzSfhdxV1igCcQ6HesndsrrM6DIOTPtzFhpeA3RHaNxrAeh9ZXvYoLkXbyxEmraSRTx0PBjBLNkZNNorOB/ebWj3s1CK5I/3qrZ7WVIq/keDea1Ict9g7moYe8/OLQO0b0/gNqkR/jpepSbfxnEF41DNhJ2xSSE9niuEaUnpDpCibhLCqtXGbRK90dIjnkLHemxL8mrujwm7XDHcTK+GsA5ceBMHk0aQ9WDrKPCQGw8DlQ6EfgnOd/61Dq5vMZW8cC60h8EQNQFQ3KBgEEELpNSltvaf4FYA3Og+Vie/VStjCzDuGohghKiiaGFBWUGtaQGyr4cuwCI88iAU4/LiTz83JAv7+6tD+vsczV8Bdlg360Mquc01E7Vw9Qmtvh1kRWLicA6dUemrUqHO79izqAhhmLhz5dCBZOOGoM=
8-
- AIRTABLE_API_KEY=apiKey
9-
- AIRTABLE_BASE_KEY=baseKey
10-
- AIRTABLE_VERIFY=verify
11-
- REMOTE_IMAGE_URL=633607774026.dkr.ecr.us-east-2.amazonaws.com/pybot
12-
- ECS_CLUSTER_MASTER=python-oc-services
13-
- ECS_SERVICE_MASTER=pybot-svc
14-
- ECS_CLUSTER_STAGING=python-oc-services
15-
- ECS_SERVICE_STAGING=pybot-svc-staging
16-
- PIPENV_CACHE_DIR=~./.cache/pip
3+
- IMAGE_NAME=pybot
4+
- DEPLOY_BRANCHES="master staging"
5+
- AWS_REGION=us-east-2
6+
- secure: DcEpdVJ6LoHSLigVem++aZGn0kq74oyPIk/Zifz61NE7nDbustbXahgtMCkiv7dqyd1nqc6E/9S/DZ5dUoWPeeG/VPKkm+Ylk0jZcVLPwSd9S3oICLIZVwL8bG+FwYEY08kGl20rbTMAZT3zIhT0HMmw59UVYr7Lke9vLy2sZKi3nZv7L6miiIBwK3DFuUx3cPTtNXiaszBbUmFLNTNg6ehig2W+FwhHEG2wmd+On5nmArdaXfBDKMXT748aA2y3OG3PTrXdC5OEi0oIaf/8MimIJWzxkoMS8jFoyDSXFOCOzQucv7uAsZHZRACP2HHV5iqOLIo5E6dlONKJFP7TCYqYTzZF8Dz9TUjIMkr+zAeCMrlMzOCVD3qquUoW++s6F71IHGlavqZvMTApyaRCIZanwHk/Tb96/s87bsFPYoGrsInQjfhhPUHTCxZrkBqZg8UegbZJ+HyH+I0bK9WM5mFyeQ7swRFkaQ6MICmqWF0w8JrJUAkOci3Q6NO1+7NBDNT5F3arhHgKMHpw0ry3iuUU1I7Unh8QdzNIgdcAh7TAgI8n0CjBXHf22+ZI0ph4Og7blZ17h9idSj72Ll8a7Rnj3/FgtB7HE1nQMzZfBtiN6txZAhM1ADIDj6NmaIXF+2hkQDnGczGaLqNHlKb14nNfdiWnO8Wf9DKCFZS8iKk=
7+
- secure: XPvMPMkCIBORXmFSwnSVm6rOF1mHcipzgo9IdbFu87dFFC2mJG/T8UTbEyTLpjpM8WvcSawmpWHtqlhbHXnEj+6ugEongvYsl0wYh/KNU9oS5vw38CvxpvIIg3PyTS39Dp8QtP/y/EaeZPPQiN/soiNGQ0EQ9V/eazjO9Gc9vTvYfPdSc3Q4UjxAqf550L+pkEF6NSh0Lo3ShCr1sai+XCvyvYeTTtwZzufIzq/aNxs+dPUc0FDXdZ5L+J2Ds/yxXAaVcQzSfhdxV1igCcQ6HesndsrrM6DIOTPtzFhpeA3RHaNxrAeh9ZXvYoLkXbyxEmraSRTx0PBjBLNkZNNorOB/ebWj3s1CK5I/3qrZ7WVIq/keDea1Ict9g7moYe8/OLQO0b0/gNqkR/jpepSbfxnEF41DNhJ2xSSE9niuEaUnpDpCibhLCqtXGbRK90dIjnkLHemxL8mrujwm7XDHcTK+GsA5ceBMHk0aQ9WDrKPCQGw8DlQ6EfgnOd/61Dq5vMZW8cC60h8EQNQFQ3KBgEEELpNSltvaf4FYA3Og+Vie/VStjCzDuGohghKiiaGFBWUGtaQGyr4cuwCI88iAU4/LiTz83JAv7+6tD+vsczV8Bdlg360Mquc01E7Vw9Qmtvh1kRWLicA6dUemrUqHO79izqAhhmLhz5dCBZOOGoM=
8+
- AIRTABLE_API_KEY=apiKey
9+
- AIRTABLE_BASE_KEY=baseKey
10+
- AIRTABLE_VERIFY=verify
11+
- ECS_CLUSTER_MASTER=python-oc-services
12+
- ECS_SERVICE_MASTER=pybot-svc
13+
- ECS_CLUSTER_STAGING=python-oc-services
14+
- ECS_SERVICE_STAGING=pybot-svc-staging
15+
- PIPENV_CACHE_DIR=~./.cache/pip
16+
- REMOTE_IMAGE_URL=docker.io/operationcodetest/pybot
17+
- DOCKER_REPO="operationcodetest/pybot"
18+
- secure: rOEZjJrYS1CVGBGlRWUgfzL+prI9OMSOd7e2l/Ki2OIoknkKcOxJYxgbDUaA2BLVS3zvzd2yRrxAOW3K/w6j/yzxDLFvZ2S/4G3wMdhgMN+yQnEIXfRwBmUTVpdL2qI4+fJD1nWjvlqJ3N6G1q5Ld87+h/Ixe03MHBv63fwBoIhImtg7mZCG2m1zIMJlCiV+ipiU0brFg80+Oz9rxM0xiTdI1tnDBJ9ySdIvpI/nR7ZskDWi3pXfa57iFGku3OpIf+5nRuNPP0xlrAsvcnTVsk3h2OOddFNNHxAKeqiaczBn56exhDs6rC/HAxom1wUbJB2I/kWRooIz+adUkpgJw9w5Wvt/vGHggAmoqLkeMmDG3PH+IaIu8dqg7D5Lrn2kdW/ImpC+E7CUZYhLGbl82DAnGl7RIU8QEq6fp9bwDbc3nQ3F0OIop7nq6tHBAojvuUnV8EN7de1o8mL4mW+u19d6kzLyYbUptl9arb8/VHJakkRcpK0n+Mdr3CwQOJbtUReNMNwaM99vNuYV2TLDRnP6yoQy2pU6+SSQN6xA8xnIqbTVSe7wam3x8Lj+rxvdu+a/7J4VIdsGSGYxs/7YiKiHkpqRLDUVeLMAQriJzO2QHPTLZJrHeYQALwLkuwLoNX8nT0DHSNYlskiyrWxZhuYu5dBSEYAkQ8+0wW0teY4=
19+
- secure: Lbu9pE+5b7+7cw65rSkkPDLx+bvmFTHFAeALpwruuOBJNdHkIatymJnPg3pROlz3Bli/F5zCBOGnimyVKRxQq8qbBZn+ImJKc7lFTQ8GIJ9/jo2ANtsacoipxoBGKTh9cqCwIron2HvP4IwzSvLebrvdQUDUL93HMVcfNqMsR2yZloJLflAoP5Vo33qOsCVCHbjlUWkSbYP03Aq5GrPahHIRrqdWl8rNCeJWbluH3UTv9FuhGgf/0PBA67rNHbL//WCjxvaTyHxJGCqRTUl4uFUyl8nJAEha4c/PDWYRDsDYdVPfV+7v8rVa0RX8xll9nFn3cICeBsZR0fw1ujzqgFE1EXSkiYwNj225sjfR2uRtjxHwMsCmsPZVZiSQF0pC8jqHFI5428tSW3O6oaCU/e5m/HuLc0coC/CAhxDTE28E8eBMZoupF1apBMnHqplmcU4E0TLIPZY1iK7QFkvqdulw4fIc9om9wV1D/GTDOoWogjaoILqdtuskrCtReabvWs8OBsjTHe0gsiAoYVBQ/3N1YxjEyzzWvATXmfo5wbHTuKBnjaROAQ2jM2sawnRDHSDNMdyxSmyx6tjYkHQX0Lhw17/srtkjzb+01tHZ8ZvEeuI7AfZzkmSpaE3juyaY1YIMDZRQRINfaBdA0rq0yVz988MdRly88m/xXcg4s9U=
1720
os: linux
1821
cache: pip
1922
sudo: required
2023
language: python
2124
dist: xenial
2225
python: 3.7
2326
install:
24-
- pip install pipenv
25-
- pipenv install --system --deploy --dev
27+
- pip install pipenv
28+
- pipenv install --system --deploy --dev
2629
script:
27-
- pytest
30+
- pytest
2831
services:
29-
- docker
32+
- docker
3033
after_success:
31-
- bash bin/run.sh
34+
- bash bin/run.sh
3235
notifications:
3336
slack:
3437
rooms:

bin/build renamed to bin/build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ source "${SCRIPTDIR}/../lib/util.sh"
66

77
echo "Building Docker image..."
88
runCommand "docker build -t $IMAGE_NAME -f docker/Dockerfile ." || exit $?
9-

bin/deploy renamed to bin/deploy.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
set -eu
44

5-
TRAVIS_BRANCH_UPPERCASE=$(echo $TRAVIS_BRANCH | awk '{print toupper($0)}')
5+
TRAVIS_BRANCH_UPPERCASE=$(echo ${TRAVIS_BRANCH} | awk '{print toupper($0)}')
66

77
CLUSTER_NAME=ECS_CLUSTER_${TRAVIS_BRANCH_UPPERCASE}
88
SERVICE_NAME=ECS_SERVICE_${TRAVIS_BRANCH_UPPERCASE}
99

1010
echo "Deploying $TRAVIS_BRANCH on service ${!SERVICE_NAME} on cluster ${!CLUSTER_NAME} with image $REMOTE_IMAGE_URL:$TRAVIS_BRANCH"
11-
bash ${SCRIPTDIR}/../lib/ecs-deploy -t 300 -n ${!SERVICE_NAME} -c ${!CLUSTER_NAME} -r $AWS_REGION -i $REMOTE_IMAGE_URL:$TRAVIS_BRANCH
11+
bash ${SCRIPTDIR}/../lib/ecs-deploy -t 300 -n ${!SERVICE_NAME} -c ${!CLUSTER_NAME} -r ${AWS_REGION} -i ${REMOTE_IMAGE_URL}:${TRAVIS_BRANCH}

bin/publish

Lines changed: 0 additions & 25 deletions
This file was deleted.

bin/publish.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env bash
2+
3+
# Publishes the most recent web container to docker hubs repo.
4+
# This script assumes docker push works.
5+
# You must set up docker push on your own.
6+
7+
set -eu
8+
9+
DOCKER_REPO="operationcode/pybot"
10+
11+
IMAGE_ID=$(docker images $IMAGE_NAME:latest --format "{{.ID}}")
12+
13+
if [[ -n "$DOCKER_USERNAME" ]]; then
14+
echo "Found username";
15+
fi
16+
if [[ -n "$DOCKER_PASSWORD" ]]; then
17+
echo "Found password";
18+
fi
19+
20+
if [[ -n "$DOCKER_USERNAME" ]] && [[ -n "$DOCKER_PASSWORD" ]]; then
21+
echo "Logging in using ENV creds"
22+
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
23+
fi
24+
25+
echo "Pushing image $IMAGE_NAME:$TRAVIS_BRANCH"
26+
docker tag ${IMAGE_ID} ${DOCKER_REPO}
27+
docker tag ${IMAGE_ID} ${DOCKER_REPO}:${TRAVIS_BUILD_NUMBER}
28+
#docker push ${DOCKER_REPO}
29+
docker push ${DOCKER_REPO}:${TRAVIS_BUILD_NUMBER}

bin/run.sh

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,40 @@ fi
99
# Don't process pull requests
1010
# $TRAVIS_PULL_REQUEST will be the PR number or "false" if not a PR
1111
if [[ -n "$TRAVIS_PULL_REQUEST" ]] && [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then
12-
echo "Skipping deploy because it's a pull request"
13-
exit 0
12+
echo "Skipping deploy because it's a pull request"
13+
exit 0
1414
fi
1515

1616
# Only process branches listed in DEPLOY_BRANCHES
17-
BRANCHES_TO_DEPLOY=($DEPLOY_BRANCHES)
17+
BRANCHES_TO_DEPLOY=( ${DEPLOY_BRANCHES} )
1818
if [[ ! " ${BRANCHES_TO_DEPLOY[@]} " =~ " ${TRAVIS_BRANCH} " ]]; then
19-
# whatever you want to do when arr contains value
20-
echo "Skipping deploy, not a branch to be deployed"
21-
exit 0
19+
# whatever you want to do when arr contains value
20+
echo "Skipping deploy, not a branch to be deployed"
21+
exit 0
2222
fi
2323

2424
pip install awscli -q
2525

26-
if [ $? = 0 ]; then
27-
AWSBIN=$(which aws)
28-
AWSPATH=$(dirname $AWSBIN)
29-
export PATH=$PATH:$AWSPATH
30-
31-
# Get absolute path of dir where run.sh is located
32-
SOURCE="${BASH_SOURCE[0]}"
33-
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
34-
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
35-
SOURCE="$(readlink "$SOURCE")"
36-
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
37-
done
38-
export SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
39-
40-
bash ${SCRIPTDIR}/build &&
41-
bash ${SCRIPTDIR}/publish &&
42-
bash ${SCRIPTDIR}/deploy
26+
if [[ $? = 0 ]]; then
27+
AWSBIN=$(which aws)
28+
AWSPATH=$(dirname ${AWSBIN})
29+
export PATH=$PATH:${AWSPATH}
30+
31+
# Get absolute path of dir where run.sh is located
32+
SOURCE="${BASH_SOURCE[0]}"
33+
while [[ -h "$SOURCE" ]]; do
34+
# resolve $SOURCE until the file is no longer a symlink
35+
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
36+
SOURCE="$(readlink "$SOURCE")"
37+
[[ ${SOURCE} != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
38+
done
39+
export SCRIPTDIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
40+
41+
bash ${SCRIPTDIR}/build.sh &&
42+
bash ${SCRIPTDIR}/publish.sh &&
43+
bash ${SCRIPTDIR}/deploy.sh
4344

4445
else
45-
echo "Failed to install AWS CLI"
46-
exit 1
46+
echo "Failed to install AWS CLI"
47+
exit 1
4748
fi

0 commit comments

Comments
 (0)