From 6a3f3eaa9946925765497ea88e3f3f8d578fe4cb Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Sun, 24 Oct 2021 02:00:23 +0100 Subject: [PATCH] build: add run script --- .env | 1 + .github/workflows/ci.yml | 6 ++--- Makefile | 32 ------------------------- run | 52 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 .env create mode 100755 run diff --git a/.env b/.env new file mode 100644 index 000000000..edb951d2d --- /dev/null +++ b/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=oliverdavies-uk diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d010f76b5..0b9e4893e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,8 +26,8 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - run: make build-images - - run: make push-images + - run: ./run docker:build-images + - run: ./run docker:push-images - name: Add the deployment SSH key uses: shimataro/ssh-key-action@6f350ca8484d8d55c2e361e74d17e638dabe713a # 2.1.0 @@ -36,6 +36,6 @@ jobs: name: id_rsa known_hosts: ${{ secrets.SSH_KNOWN_HOSTS }} - - run: make deploy + - run: ./run deploy # vim: sw=2 ts=2 diff --git a/Makefile b/Makefile index 5594b3062..bfe1ae419 100644 --- a/Makefile +++ b/Makefile @@ -1,39 +1,7 @@ -COMPOSE_PROJECT_NAME?=oliverdavies-uk -DOCKER_WEB_IMAGE_NAME:=ghcr.io/opdavies/$(COMPOSE_PROJECT_NAME)-web - assets-watch: npm ci npm run watch -build-images: - docker image build . \ - --file tools/docker/images/Dockerfile \ - --tag $(DOCKER_WEB_IMAGE_NAME):$(DOCKER_TAG) \ - --tag $(DOCKER_WEB_IMAGE_NAME):latest \ - --target=production - -deploy: - cd tools/deployment && ansible-playbook deploy.yml - -destroy: - COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) docker-compose down --volumes --remove-orphans - -disable: - COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) docker-compose down --remove-orphans - -enable: - COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) docker-compose up --detach --build --remove-orphans - -ps: - COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) docker-compose ps - -push-images: - docker image push $(DOCKER_WEB_IMAGE_NAME):$(DOCKER_TAG) - docker image push $(DOCKER_WEB_IMAGE_NAME):latest - -run-production: - docker-compose --file docker-compose-production.yaml up --detach --remove-orphans - .PHONY: * # vim: noexpandtab filetype=make diff --git a/run b/run new file mode 100755 index 000000000..b043b64ac --- /dev/null +++ b/run @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +. .env + +DOCKER_WEB_IMAGE_NAME="ghcr.io/opdavies/${COMPOSE_PROJECT_NAME}-web" + +TTY="" +if [[ ! -t 1 ]]; then + TTY="-T" +fi + +function cmd { + # Run any command in the app container. + _dc app "${@}" +} + +function deploy { + cd tools/deployment && ansible-playbook deploy.yml +} + +function docker:build-images { + docker image build . \ + --file tools/docker/images/Dockerfile \ + --tag ${DOCKER_WEB_IMAGE_NAME}:${DOCKER_TAG} \ + --tag ${DOCKER_WEB_IMAGE_NAME}:latest \ + --target=production +} + +function docker:push-images { + docker image push ${DOCKER_WEB_IMAGE_NAME}:${DOCKER_TAG} + docker image push ${DOCKER_WEB_IMAGE_NAME}:latest +} + +function help { + printf "%s [args]\n\nTasks:\n" "${0}" + + compgen -A function | grep -v "^_" | cat -n + + printf "\nExtended help:\n Each task has comments for general usage\n" +} + +function run-production { + docker-compose --file docker-compose-production.yaml up --detach --remove-orphans +} + +function _dc { + docker-compose exec ${TTY} "${@}" +} + +eval "${@:-help}"