69 lines
2.3 KiB
YAML
69 lines
2.3 KiB
YAML
version: 2.1
|
|
orbs:
|
|
aws-cli: circleci/aws-cli@4.1.2
|
|
aws-ecr: circleci/aws-ecr@9.4.0
|
|
aws-ecs: circleci/aws-ecs@4.0.0
|
|
jobs:
|
|
build_and_test:
|
|
docker:
|
|
- image: circleci/node:14
|
|
working_directory: ~/app
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Install Frontend Dependencies
|
|
command: |
|
|
npm install
|
|
- run:
|
|
name: Install Backend Dependencies
|
|
command: |
|
|
cd backend
|
|
npm install
|
|
- run:
|
|
name: Build Frontend
|
|
command: |
|
|
npm run build
|
|
- run:
|
|
name: Test Frontend
|
|
command: |
|
|
npm test
|
|
run_task:
|
|
docker:
|
|
- image: cimg/python:3.10
|
|
steps:
|
|
- aws-cli/setup:
|
|
role_arn: arn:aws:iam::982081055194:role/circleci-ecs-ecr
|
|
role_session_name: example-session
|
|
- aws-ecs/run_task:
|
|
awsvpc: true
|
|
assign_public_ip: ENABLED
|
|
cluster: arn:aws:ecs:eu-north-1:982081055194:cluster/mern-ludo-cluster
|
|
launch_type: FARGATE
|
|
task_definition: mern-ludo-fargate
|
|
subnet_ids: subnet-06f63f5063b74a7c9,subnet-07cdbe8b01b46e0b7,subnet-06dbac60591c79f5d
|
|
security_group_ids: sg-0cfd2369802b8be43
|
|
|
|
workflows:
|
|
build_and_test_and_deploy:
|
|
jobs:
|
|
- build_and_test
|
|
- aws-ecr/build_and_push_image:
|
|
auth:
|
|
- aws-cli/setup:
|
|
role_arn: arn:aws:iam::982081055194:role/circleci-ecs-ecr
|
|
role_session_name: ecr-session
|
|
repo: mern-ludo
|
|
public_registry: true
|
|
requires:
|
|
- build_and_test
|
|
filters:
|
|
branches:
|
|
only:
|
|
- main
|
|
- run_task:
|
|
requires:
|
|
- aws-ecr/build_and_push_image
|
|
filters:
|
|
branches:
|
|
only:
|
|
- main |