You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.4 KiB
YAML
116 lines
3.4 KiB
YAML
version: 2.1
|
|
orbs:
|
|
# orgs contain basc recipes and reproducible actions (install node, aws, etc.)
|
|
node: circleci/node@5.0.2
|
|
eb: circleci/aws-elastic-beanstalk@2.0.1
|
|
aws-cli: circleci/aws-cli@3.1.1
|
|
# different jobs are calles later in the workflows sections
|
|
jobs:
|
|
build:
|
|
docker:
|
|
# the base image can run most needed actions with orbs
|
|
- image: "cimg/node:14.15"
|
|
steps:
|
|
# install node and checkout code
|
|
- node/install:
|
|
node-version: '14.15'
|
|
- checkout
|
|
# Use root level package.json to install dependencies in the frontend app
|
|
- run:
|
|
name: Install Front-End Dependencies
|
|
command: |
|
|
echo "NODE --version"
|
|
echo $(node --version)
|
|
echo "NPM --version"
|
|
echo $(npm --version)
|
|
npm run frontend:install
|
|
# TODO: Install dependencies in the the backend API
|
|
- run:
|
|
name: Install API Dependencies
|
|
command: |
|
|
echo "TODO: Install dependencies in the the backend API"
|
|
npm run api:install
|
|
# TODO: Lint the frontend
|
|
- run:
|
|
name: Front-End Lint
|
|
command: |
|
|
echo "TODO: Lint the frontend"
|
|
npm run frontend:lint
|
|
# TODO: Build the frontend app
|
|
- run:
|
|
name: Front-End Build
|
|
command: |
|
|
echo "TODO: Build the frontend app"
|
|
npm run frontend:build
|
|
# TODO: Build the backend API
|
|
- run:
|
|
name: API Build
|
|
command: |
|
|
echo "TODO: Build the backend API"
|
|
npm run api:build
|
|
# deploy step will run only after manual approval
|
|
deploy:
|
|
docker:
|
|
- image: "cimg/base:stable"
|
|
# more setup needed for aws, node, elastic beanstalk
|
|
steps:
|
|
- node/install:
|
|
node-version: '14.15'
|
|
- eb/setup
|
|
- aws-cli/setup
|
|
- checkout
|
|
- run:
|
|
name: Install Front-End Dependencies
|
|
command: |
|
|
echo "NODE --version"
|
|
echo $(node --version)
|
|
echo "NPM --version"
|
|
echo $(npm --version)
|
|
npm run frontend:install
|
|
# TODO: Install dependencies in the the backend API
|
|
- run:
|
|
name: Install API Dependencies
|
|
command: |
|
|
echo "TODO: Install dependencies in the the backend API"
|
|
npm run api:install
|
|
# TODO: Lint the frontend
|
|
- run:
|
|
name: Front-End Lint
|
|
command: |
|
|
echo "TODO: Lint the frontend"
|
|
npm run frontend:lint
|
|
# TODO: Build the frontend app
|
|
- run:
|
|
name: Front-End Build
|
|
command: |
|
|
echo "TODO: Build the frontend app"
|
|
npm run frontend:build
|
|
# TODO: Build the backend API
|
|
- run:
|
|
name: API Build
|
|
command: |
|
|
echo "TODO: Build the backend API"
|
|
npm run api:build
|
|
- run:
|
|
name: Deploy App
|
|
# TODO: Install, build, deploy in both apps
|
|
command: |
|
|
echo "# TODO: Install, build, deploy in both apps"
|
|
npm run deploy
|
|
|
|
workflows:
|
|
udagram:
|
|
jobs:
|
|
- build
|
|
- hold:
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|
|
type: approval
|
|
requires:
|
|
- build
|
|
- deploy:
|
|
requires:
|
|
- hold
|