Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge CICD for VM based development #81

Merged
merged 13 commits into from
Jul 19, 2024
95 changes: 95 additions & 0 deletions .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Build and Deploy Drone Tasking Manager

on:
push:
branches:
- main
workflow_dispatch:

permissions:
id-token: write
contents: read

jobs:
build:
name: Build Docker image
runs-on: ubuntu-latest
environment:
name: ${{ github.ref_name }}
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
ref: ${{ github.ref }}

- 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: naxa
password: ${{ secrets.DOCKERHUB_PAT }}

- name: Build and push backend image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: naxa/dronetm:backend
file: ./src/backend/Dockerfile

- name: Write Environment Variables for Frontend
run: |
echo ${{ vars.FRONTEND_ENV_VARS }} > .env

- name: Build and push frontend image
uses: docker/build-push-action@v6
with:
context: .
push: true
target: live
tags: naxa/dronetm:frontend
file: ./src/frontend/Dockerfile

deploy_to_vm:
name: Deploy to VM
needs:
- build
runs-on: ubuntu-latest
environment:
name: ${{ github.ref_name }}
steps:
- name: Checkout repository
uses: actions/checkout@v3

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

- name: Setup SSH Key
uses: webfactory/[email protected]
with:
ssh-private-key: "${{ secrets.SSH_PRIVATE_KEY }}"

- name: Add host keys to known_hosts
run: |
ssh-keyscan "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts

- name: create env file
run: |
echo '${{ secrets.BACKEND_ENV_VARS }}' > .env

- name: Deploy to VM
run: |
docker compose --file docker-compose.vm.yml --env-file .env pull
docker compose --file docker-compose.vm.yml --env-file .env up \
--detach --remove-orphans --force-recreate
env:
DOCKER_HOST: "ssh://${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}"

89 changes: 0 additions & 89 deletions .github/workflows/build_and_deploy_DTM_backend.yml

This file was deleted.

78 changes: 0 additions & 78 deletions .github/workflows/build_and_deploy_DTM_frontend.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/migrations.yml

This file was deleted.

61 changes: 0 additions & 61 deletions .github/workflows/test_frontend.yml

This file was deleted.

Loading
Loading