mirror of
https://github.com/usatiuk/photos.git
synced 2025-10-28 07:27:47 +01:00
164 lines
5.0 KiB
YAML
164 lines
5.0 KiB
YAML
version: 2
|
|
jobs:
|
|
test-backend:
|
|
docker:
|
|
- image: cimg/node:14.20
|
|
- image: cimg/mariadb:10.8
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
MYSQL_DATABASE: photos_test
|
|
MYSQL_USER: photos
|
|
MYSQL_PASSWORD: photos
|
|
MYSQL_HOST: "localhost"
|
|
|
|
working_directory: ~/photos
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
keys:
|
|
- backend-dependencies-{{ checksum "package.json" }}
|
|
|
|
- run:
|
|
name: install backend deps
|
|
command: npm i
|
|
|
|
- save_cache:
|
|
paths:
|
|
- node_modules
|
|
key: backend-dependencies-{{ checksum "package.json" }}
|
|
|
|
- run:
|
|
name: test backend
|
|
command: npm test
|
|
|
|
- store_test_results:
|
|
path: backend-report.xml
|
|
|
|
test-frontend:
|
|
docker:
|
|
- image: cimg/node:14.20
|
|
|
|
working_directory: ~/photos
|
|
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- frontend-dependencies-{{ checksum "frontend/package.json" }}
|
|
|
|
- run:
|
|
name: install frontend deps
|
|
command: cd frontend && npm i
|
|
|
|
- save_cache:
|
|
paths:
|
|
- frontend/node_modules
|
|
key: frontend-dependencies-{{ checksum "frontend/package.json" }}
|
|
|
|
- run:
|
|
name: test frontend
|
|
command: cd frontend && npm test
|
|
|
|
- store_test_results:
|
|
path: ~/photos/frontend/frontend-reports/frontend-report.xml
|
|
|
|
test-frontend-build:
|
|
docker:
|
|
- image: cimg/node:14.20
|
|
|
|
working_directory: ~/photos/frontend
|
|
|
|
steps:
|
|
- checkout:
|
|
|
|
- restore_cache:
|
|
keys:
|
|
- frontend-dependencies-{{ checksum "package.json" }}
|
|
|
|
- run:
|
|
name: install frontend deps
|
|
command: cd frontend && npm i
|
|
|
|
- save_cache:
|
|
paths:
|
|
- frontend/node_modules
|
|
key: frontend-dependencies-{{ checksum "package.json" }}
|
|
|
|
- run:
|
|
name: build frontend
|
|
command: cd frontend && npm run build
|
|
build:
|
|
machine:
|
|
image: ubuntu-2004:current
|
|
working_directory: ~/photos
|
|
resource_class: large
|
|
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: log in to docker hub
|
|
command: echo "$DOCKER_PASSWORD" | docker login --username $DOCKER_USERNAME --password-stdin
|
|
|
|
- run:
|
|
name: install emulators
|
|
command: docker run --privileged --rm tonistiigi/binfmt --install all
|
|
|
|
- run:
|
|
name: create docker builder
|
|
command: docker buildx create --use
|
|
|
|
- run:
|
|
name: build and push to docker hub
|
|
command: docker buildx build --push --platform linux/arm64,linux/amd64 --tag stepanusatiuk/photos:$CIRCLE_BRANCH .
|
|
#command: docker buildx build --push --platform linux/amd64 --tag stepanusatiuk/photos:$CIRCLE_BRANCH .
|
|
|
|
# build-arm:
|
|
# machine:
|
|
# image: ubuntu-2004:current
|
|
# resource_class: arm.medium
|
|
# working_directory: ~/photos
|
|
#
|
|
# steps:
|
|
# - checkout
|
|
# - run:
|
|
# name: log in to docker hub
|
|
# command: echo "$DOCKER_PASSWORD" | docker login --username $DOCKER_USERNAME --password-stdin
|
|
#
|
|
# - run:
|
|
# name: install emulators
|
|
# command: docker run --privileged --rm tonistiigi/binfmt --install all
|
|
#
|
|
# - run:
|
|
# name: create docker builder
|
|
# command: docker buildx create --use
|
|
#
|
|
# - run:
|
|
# name: build and push to docker hub
|
|
# #command: docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --tag stepanusatiuk/photos:latest .
|
|
# command: docker buildx build --push --platform linux/arm64 --tag stepanusatiuk/photos:$CIRCLE_BRANCH .
|
|
|
|
workflows:
|
|
version: 2
|
|
test-build:
|
|
jobs:
|
|
- test-backend
|
|
- test-frontend
|
|
- test-frontend-build:
|
|
requires:
|
|
- test-frontend
|
|
- build:
|
|
requires:
|
|
- test-backend
|
|
- test-frontend
|
|
- test-frontend-build
|
|
filters:
|
|
branches:
|
|
only: main
|
|
# - build-arm:
|
|
# requires:
|
|
# - test-backend
|
|
# - test-frontend
|
|
# - test-frontend-build
|