Skip to content

Commit

Permalink
feat(cd): publish and pull from dockerhub
Browse files Browse the repository at this point in the history
  • Loading branch information
proffapt committed Jul 1, 2024
1 parent f9d78b9 commit 55c1063
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 25 deletions.
55 changes: 49 additions & 6 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,51 @@ on:
- ".gitignore"

jobs:
dockerhub:
name: Publish Docker Image(s) to Dockerhub
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Cache Docker layers for Odins' Vault
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache-odins-vault
key: ${{ runner.os }}-buildx-odins-vault-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-odins-vault-
- name: Build & Push Odins' Vault
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/odins-vault:latest
cache-from: type=local,src=/tmp/.buildx-cache-odins-vault
cache-to: type=local,dest=/tmp/.buildx-cache-odins-vault-new,mode=max

- name: Move Odins' Vault cache
run: |
rm -rf /tmp/.buildx-cache-odins-vault
mv /tmp/.buildx-cache-odins-vault-new /tmp/.buildx-cache-odins-vault
push:
name: Push Stage
name: Push Code Stage
needs: dockerhub
runs-on: ubuntu-latest

steps:
Expand All @@ -32,13 +75,13 @@ jobs:
sudo git fetch origin
sudo git reset --hard origin/main
build:
name: Build Stage
pull:
name: Pull Image Stage
needs: push
runs-on: ubuntu-latest

steps:
- name: Build the latest container(s)
- name: Pull the latest images(s)
uses: appleboy/ssh-action@master
env:
PROJECT_DIR: ${{ secrets.PROJECT_DIR }}
Expand All @@ -51,11 +94,11 @@ jobs:
script_stop: true
script: |
cd "${PROJECT_DIR}/"
sudo docker compose build
sudo docker compose pull
deploy:
name: Deploy Stage
needs: [push, build]
needs: pull
runs-on: ubuntu-latest

steps:
Expand Down
40 changes: 21 additions & 19 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
services:
odins_vault:
build: "."
restart: always
networks:
metaploy-network:
aliases:
- odins_vault
volumes:
- nginx-config-volume:/etc/nginx/sites-enabled
- odins-vault:/srv/static
odins_vault:
image: metakgporg/odins-vault
container_name: odins-vault
build: .
networks:
metaploy-network:
aliases:
- odins_vault
volumes:
- nginx-config-volume:/etc/nginx/sites-enabled
- odins-vault:/srv/static
restart: always

networks:
metaploy-network:
external: true
name: metaploy-network
metaploy-network:
external: true
name: metaploy-network

volumes:
nginx-config-volume:
external: true
name: metaploy-nginx-config-volume
odins-vault:
external: true
name: odins-vault
nginx-config-volume:
external: true
name: metaploy-nginx-config-volume
odins-vault:
external: true
name: odins-vault

0 comments on commit 55c1063

Please sign in to comment.