Skip to content

Update deploy.yml

Update deploy.yml #13

Workflow file for this run

name: Deploy on EC2
on:
push:
branches: [master]
workflow_dispatch:
jobs:
docker_build:
name: Build and push docker container
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/build-push-action@v3
with:
context: .
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
tags: ghcr.io/wkk-offcial/lavalink_helper_api:latest
deploy:
name: Deploy to EC2
needs: docker_build
runs-on: ubuntu-latest
steps:
- name: Deploy Image on EC2
uses: appleboy/ssh-action@v0.1.8
env:
DOCKER_IMAGE: "ghcr.io/wkk-offcial/lavalink_helper_api:latest"
DOCKER_CONTAINER_NAME: "lavalink_helper_api"
DROPBOX_APP_KEY: ${{secrets.DROPBOX_APP_KEY}}
DROPBOX_APP_SECRET: ${{secrets.DROPBOX_APP_SECRET}}
DROPBOX_REFRESH_TOKEN: ${{secrets.DROPBOX_REFRESH_TOKEN}}
with:
host: ${{secrets.BOI_HOSTNAME}}
username: opc
key: ${{secrets.BOI_PRIVATE_KEY}}
envs: DOCKER_IMAGE, DOCKER_CONTAINER_NAME, DROPBOX_APP_KEY, DROPBOX_APP_SECRET, DROPBOX_REFRESH_TOKEN
script_stop: true
script: |
if [[ -z "$(docker network ls | grep wkk-network)" ]]; then
docker network create wkk-network
fi
if [[ -z "$(docker volume ls | grep sounds)" ]]; then
docker volume create sounds
fi
docker pull $DOCKER_IMAGE
docker stop $DOCKER_CONTAINER_NAME && docker rm -fv $DOCKER_CONTAINER_NAME || true
docker run -d \
-p 36970:8000 \
-v sounds:/home/sounds \
-e DROPBOX_APP_KEY=$DROPBOX_APP_KEY \
-e DROPBOX_APP_SECRET=$DROPBOX_APP_SECRET \
-e DROPBOX_REFRESH_TOKEN=$DROPBOX_REFRESH_TOKEN \
--restart unless-stopped \
--network="wkk-network" \
--name $DOCKER_CONTAINER_NAME $DOCKER_IMAGE
docker image prune <<< y