Skip to content

Commit

Permalink
Updated config.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
longbui98 committed Oct 24, 2023
1 parent b6741bc commit f54310c
Showing 1 changed file with 71 additions and 45 deletions.
116 changes: 71 additions & 45 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ commands:
destroy-environment:
description: Destroy back-end and front-end cloudformation stacks given a workflow ID.
steps:
- run:
name: Install AWS CLI
command: |
apk -v --update add python3 py-pip
pip install awscli
- run:
name: Destroy environments
when: on_fail
Expand Down Expand Up @@ -164,63 +169,84 @@ jobs:
- destroy-environment
configure-infrastructure:
docker:
- image: ubuntu-2004:2023.10.1
- image: python:3.7-alpine3.11
steps:
- checkout
- add_ssh_keys:
fingerprints: [ad:8d:62:dc:0b:b1:23:7d:90:1f:17:39:51:2c:29:8f]
- persist_to_workspace:
root: ~/
paths: ~/
paths:
- project/.circleci
- run:
name: Install dependencies
command: |
sudo apt-add-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible
apk add --update ansible
- run:
name: Configure server
command: |
cd .circleci/ansible
ansible-playbook -i inventory.txt configure-server.yml
- destroy-environment
# run-migrations:
# docker:
# # Docker image here that supports NodeJS
# steps:
# # Checkout code from git
# - run:
# name: Run migrations
# command: |
# # Your code here
# exit 1
# - run:
# name: Send migration results to memstash
# command: |
# # Your code here
# exit 1
# # Here's where you will add some code to rollback on failure
run-migrations:
docker:
- image: circleci/node:13.8.0
steps:
- checkout
- persist_to_workspace:
root: ~/
paths:
- project/frontend
- run:
name: Run migrations
command: |
npm install
npm run migrations > migrations_dump.txt
- run:
name: Send migration results to memstash
command: |
if grep -q "has been executed successfully." ~/project/backend/migrations_dump.txt
then
curl https://kvdb.io/TwniJT5UFxFZM66gXv8KdL/migration_${CIRCLE_WORKFLOW_ID:0:7} -d '1'
fi
- destroy-environment

# deploy-frontend:
# docker:
# # Docker image here that supports AWS CLI
# steps:
# # Checkout code from git
# - run:
# name: Install dependencies
# command: |
# # your code here
# - run:
# name: Get backend url
# command: |
# # your code here
# export API_URL="http://${BACKEND_IP}:3030"
# echo "${API_URL}"
# - run:
# name: Deploy frontend objects
# command: |
# # your code here
# # Here's where you will add some code to rollback on failure
deploy-frontend:
docker:
- image: amazon/aws-cli
steps:
- checkout
- persist_to_workspace:
root: ~/
paths:
- project/frontend
- run:
name: Install dependencies
command: |
sudo yum update -y
sudo apt install -y tar
tar --version
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
sudo yum install -y nodejs
node -v
npm -v
- run:
name: Get backend url
command: |
export BACKEND_IP=$(aws ec2 describe-instances --query 'Reservations[*].Instances[*].PublicIpAddress')
export API_URL="http://${BACKEND_IP}:3030"
echo "API_URL = ${API_URL}"
echo API_URL="http://${BACKEND_IP}:3030" >> frontend/.env
cat frontend/.env
- run:
name: Deploy frontend objects
command: |
npm install
npm run build
tar -czvf artifact-"${CIRCLE_WORKFLOW_ID:0:7}".tar.gz dist
aws s3 cp dist s3://udapeople-${CIRCLE_WORKFLOW_ID:0:7} --recursive
- destroy-environment

# deploy-backend:
# docker:
Expand Down Expand Up @@ -317,10 +343,10 @@ workflows:
only: [test-feature-branch]
- configure-infrastructure:
requires: [deploy-infrastructure]
# - run-migrations:
# requires: [configure-infrastructure]
# - deploy-frontend:
# requires: [run-migrations]
- run-migrations:
requires: [configure-infrastructure]
- deploy-frontend:
requires: [run-migrations]
# - deploy-backend:
# requires: [run-migrations]
# - smoke-test:
Expand Down

0 comments on commit f54310c

Please sign in to comment.