42 lines
1.7 KiB
YAML
42 lines
1.7 KiB
YAML
name: Docker Image CI for GHCR
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ["Run Unit-Tests"]
|
|
types:
|
|
- completed
|
|
branches:
|
|
- master
|
|
jobs:
|
|
build_and_publish_backend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Build and Push Image
|
|
run: |
|
|
docker login --username wagnerbastian --password ${{ secrets.GH_PAT }} ghcr.io
|
|
docker build ./api --tag ghcr.io/wagnerbastian/keyvault_pro_api:latest
|
|
docker push ghcr.io/wagnerbastian/keyvault_pro_api:latest
|
|
build_and_publish_frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Build and Push Image
|
|
run: |
|
|
docker login --username wagnerbastian --password ${{ secrets.GH_PAT }} ghcr.io
|
|
docker build ./client --tag ghcr.io/wagnerbastian/keyvault_pro_client:latest
|
|
docker push ghcr.io/wagnerbastian/keyvault_pro_client:latest
|
|
ssh-login-and-publish:
|
|
runs-on: ubuntu-latest
|
|
needs: [build_and_publish_frontend, build_and_publish_backend]
|
|
steps:
|
|
|
|
- name: Setup SSH Keys and known_hosts
|
|
run: |
|
|
install -m 600 -D /dev/null ~/.ssh/id_rsa
|
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
|
ssh-keyscan -H ${{ secrets.SERVER_HOST }} > ~/.ssh/known_hosts
|
|
- name: connect and pull
|
|
run: |
|
|
ssh ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} "cd docker/keyvault && docker stop keyvault_client || true && docker rm keyvault_client || true && docker stop keyvault_pro_api || true && docker rm keyvault_pro_api || true && docker-compose pull && docker-compose up -d"
|