diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..46ede0c --- /dev/null +++ b/deploy.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" || exit ; pwd -P ) +cd "$parent_path" || exit + +./lint.sh + +if [ 1 -eq "$#" ] +then + ./version_bump.sh "$1" +else +echo "No version bump" + git push + git tag --delete latest + git tag latest + git push --delete origin latest + git push --tags +fi + +cd docker/app || exit +docker build --tag barker:latest . +docker build --tag barker-worker:latest --file worker.Dockerfile . +cd ~/Programming/barker/docker || exit +docker save barker:latest | bzip2 | pv | ssh tanshu@knox.tanshu.com 'bunzip2 | sudo docker load' +docker save barker-worker:latest | bzip2 | pv | ssh tanshu@knox.tanshu.com 'bunzip2 | sudo docker load' +ansible-playbook playbook-chd.yml +ansible-playbook playbook-pkl.yml diff --git a/docker/files/.env b/docker/files/.env new file mode 100644 index 0000000..ddabe2c --- /dev/null +++ b/docker/files/.env @@ -0,0 +1,17 @@ +HOST=0.0.0.0 +PORT=80 +LOG_LEVEL=WARN +DEBUG=false +SQLALCHEMY_DATABASE_URI=postgresql://postgres:123456@db:5432/petty +MODULE_NAME=barker.main +PROJECT_NAME=barker +REDIS_HOST=redis +REDIS_PORT=6379 +SECRET_KEY=611f9393e58f85521d16d9497bfd847ced70f2b99e12a9c6af40b7bd05cc7b1d +MIDDLEWARE_SECRET_KEY=c4afceca1a +ALGORITHM=HS256 +JWT_TOKEN_EXPIRE_MINUTES=30 +NEW_DAY_OFFSET_MINUTES=420 +TIMEZONE_OFFSET_MINUTES=330 +ALEMBIC_LOG_LEVEL=INFO +ALEMBIC_SQLALCHEMY_LOG_LEVEL=WARN diff --git a/docker/playbook.yml b/docker/playbook.yml new file mode 100755 index 0000000..0d5e77f --- /dev/null +++ b/docker/playbook.yml @@ -0,0 +1,90 @@ +################################################# +# DO Community Playbooks: Docker +################################################# +--- +- hosts: all + become: true + vars_files: + - vars/default.yml + + tasks: + - name: Copy dockerfile + synchronize: src=app dest=/tmp + + - name: Build barker image + docker_image: + name: barker:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/Dockerfile + pull: yes + state: present + source: build + + - name: Build barker worker image + docker_image: + name: barker-worker:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/worker.Dockerfile + pull: yes + state: present + source: build + + - name: Upload the .env file + template: + src: "files/.env" + dest: "/var/lib/{{ host_directory }}/.env" + + - name: Create barker container + docker_container: + name: "{{ host_directory }}" + image: barker:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "postgres:db" + - "redis:redis" + published_ports: + - "127.0.0.1:{{ host_port }}:80" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/frontend" + + - name: Create barker worker container + docker_container: + name: "{{ host_directory }}-worker" + image: barker-worker:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "redis:redis" + + + - name: Check if Nginx conf file exists + stat: path="/etc/nginx/sites-available/{{ http_conf }}" + register: status + + - name: No need to reload Nginx + debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} + + - name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + + - name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx + + handlers: + - name: Reload Nginx + service: + name: nginx + state: reloaded diff --git a/docker/vars/default.yml b/docker/vars/default.yml new file mode 100644 index 0000000..032ec33 --- /dev/null +++ b/docker/vars/default.yml @@ -0,0 +1,5 @@ +--- +http_host: "knox.hopsngrains.com" +http_conf: "knox.hopsngrains.com.conf" +host_port: "8338" +host_directory: "barker" diff --git a/lint.sh b/lint.sh new file mode 100755 index 0000000..c572fb3 --- /dev/null +++ b/lint.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" || exit ; pwd -P ) +cd "$parent_path/bookie" || exit +npx prettier --write src/ +npx ng lint --fix +cd "$parent_path/barker" || exit +isort barker +black barker +flake8 barker diff --git a/version_bump.sh b/version_bump.sh new file mode 100755 index 0000000..339d8ce --- /dev/null +++ b/version_bump.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" || exit ; pwd -P ) +cd "$parent_path" || exit + +if [ 1 -ne "$#" ] +then + echo "Usage: `basename $0` Version: eg. 9.0.0" + exit 0 +fi +sed --in-place --regexp-extended 's/"([0-9].[0-9].[0-9])"/"'"$1"'"/g' barker/barker/__version__.py +git add barker/barker/__version__.py +sed --in-place --regexp-extended 's/version = "([0-9].[0-9].[0-9])"/version = "'"$1"'"/g' barker/pyproject.toml +git add barker/pyproject.toml +sed --in-place --regexp-extended 's/version: '\''([0-9].[0-9].[0-9])'\''/version: '\'"$1"\''/g' bookie/src/environments/environment.prod.ts +git add bookie/src/environments/environment.prod.ts +sed --in-place --regexp-extended 's/version: '\''([0-9].[0-9].[0-9])'\''/version: '\'"$1"\''/g' bookie/src/environments/environment.ts +git add bookie/src/environments/environment.ts +sed --in-place --regexp-extended 's/"version": "([0-9].[0-9].[0-9])"/"version": "'"$1"'"/g' bookie/package.json +git add bookie/package.json +git commit -m "Version Bump v$1" +git push +git tag --delete latest +git tag latest +git tag "v$1" +git push --delete origin latest +git push --tags