diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 0000000..fabf5ff --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,18 @@ +name: Docker Image CI +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Build and push docker image + run: make all \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b541973..9954273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +## 0.6.8 +### Improvements +- Added github flow +- Added Makefile to build project and tag it +- Added versioning from CHANGELOG.md + ## 0.6.7 ### Improvements - Added actions table, bot will suggest "actions" on certain "problems" diff --git a/Dockerfile b/Dockerfile index f714b96..f9b1f2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,7 @@ FROM ruby:2.7.3 +ARG DOCKER_IMAGE_TAG + +ENV DOCKER_IMAGE_TAG=$DOCKER_IMAGE_TAG RUN apt-get update -qq && apt-get install -y nodejs cron \ && apt-get clean autoclean \ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7552d02 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +DOCKER_IMAGE_NAME = whoisondutytoday +BRANCH := $(shell git rev-parse --abbrev-ref HEAD) + +ifeq ("$(BRANCH)", "master") + DOCKER_IMAGE_TAG = $(shell cat ./CHANGELOG.md | grep -e '^\#\# .*' | head -n 1 | cut -d' ' -f 2) +else + DOCKER_IMAGE_TAG = $(shell cat ./CHANGELOG.md | grep -e '^\#\# .*' | head -n 1 | cut -d' ' -f 2)-${BRANCH} +endif + +DOCKER_REGISTRY_URL = docker.io/mrexz + +build: + docker build --build-arg DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG} -t ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} . + +tag-latest: +ifeq ("$(BRANCH)", "master") + docker tag ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:latest +endif + +tag-latest-force: + docker tag ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:latest + + +push: + docker push ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} +ifeq ("$(BRANCH)", "master") + docker push ${DOCKER_REGISTRY_URL}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}:latest +endif + +all: build tag-latest push \ No newline at end of file diff --git a/config/initializers/version.rb b/config/initializers/version.rb index a46e3e9..0655c99 100644 --- a/config/initializers/version.rb +++ b/config/initializers/version.rb @@ -1,5 +1,5 @@ module Whoisondutytoday class Application - VERSION = "0.6.7" + VERSION = ENV['DOCKER_IMAGE_TAG'] end end \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 3875c13..62d1ce2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: whoisondutytoday: - image: whoisondutytoday + image: mrexz/whoisondutytoday:latest restart: always container_name: whoisondutytoday build: .