1
1
mirror of https://github.com/aelve/guide.git synced 2024-11-29 14:35:35 +03:00
guide/Makefile
Artyom Kazak d334d7e355 Ensure that the frontend is being built in production mode (#399)
* Travis ensure that the frontend is being built in production mode
2019-10-25 23:15:48 +04:00

71 lines
2.3 KiB
Makefile

SHELL := /bin/bash
# Build the project
.PHONY: back
back:
stack build --fast
# Run tests
.PHONY: back/test
back/test:
stack test --fast
# Download the official database
.PHONY: back/db
back/db:
rm -rf back/state
git clone --depth 1 https://github.com/aelve/guide-database.git
mv guide-database back/state
(cd back/state && gzip -d *.gz)
# Test that the official database can be loaded
.PHONY: back/test-db
back/test-db: back
if [ -d back/state ]; then mv back/state back/state-old; fi
git clone --depth 1 https://github.com/aelve/guide-database.git
mv guide-database back/state
(cd back/state && gzip -d *.gz)
(cd back/state && git branch -v && git status && ls)
stack exec --cwd back -- guide dry-run
rm -rf back/state
if [ -d back/state-old ]; then mv back/state-old back/state; fi
# Run the backend
.PHONY: back/run
back/run:
stack exec --cwd back -- guide
# Load AcidState base to Postgres and check equality.
# Postgres should be installed already.
# 'Guide' base should be created already and clear.
.PHONY: back/load-into-postgres
back/load-into-postgres:
stack exec --cwd back -- guide load-into-postgres
# Create a Docker image for the backend; will only work on Travis because
# the binary has to have been compiled on Ubuntu Xenial (the OS used in the
# Docker file).
#
# Assumes Guide has been built with Stack.
.PHONY: back/travis-docker
back/travis-docker:
rm -rf docker/back/files && mkdir docker/back/files
git clone --depth 1 https://github.com/aelve/guide-database.git \
docker/back/files/state
(cd docker/back/files/state && gzip -d *.gz)
rm -rf docker/back/files/state/.git
cp "$$(stack path --local-install-root)/bin/guide" docker/back/files/
cp -R back/{static,templates} docker/back/files/
docker build docker/back -t quay.io/aelve/guide:$(tag)
rm -rf docker/back/files
# Create a Docker image for the front
.PHONY: front/travis-docker
front/travis-docker:
rm -rf docker/front/files && mkdir docker/front/files
cp -R front/dist docker/front/files/
cd ./docker/front/files/dist/ && export NODE_ENV=production && npm install
if grep -q "Vue in development mode" docker/front/files/dist/src/main.js; then echo "The frontend has been built in development mode"; exit 1; fi
docker build docker/front -t quay.io/aelve/guide:$(tag)
rm -rf docker/front/files