Skip to content

Deploy

Deploy #18

Workflow file for this run

name: Deploy
on:
workflow_run:
workflows:
- Build
types:
- completed
workflow_dispatch:
inputs:
version:
default: latest
description: "Tag"
required: true
jobs:
deploy:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion != 'failure' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get latest tag
uses: maxguuse/action-get-latest-tag@v1
id: latest-tag
- name: Write .env
run: |
echo "ENVIRONMENT=${{ secrets.ENVIRONMENT }}" >> .env
echo "VERSION=${{ steps.latest-tag.outputs.tag }}" >> .env
echo "DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN }}" >> .env
echo "DISCORD_ID=${{ secrets.DISCORD_ID }}" >> .env
echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
echo "POSTGRES_DB=${{ secrets.POSTGRES_DB }}" >> .env
echo "CONNECTION_STRING=${{ secrets.CONNECTION_STRING }}" >> .env
echo "ADMINER_DEFAULT_SERVER=${{ vars.ADMINER_DEFAULT_SERVER }}" >> .env
echo "ADMINER_PLUGINS=enum-types" >> .env
- name: Copy compose file and .env
uses: appleboy/[email protected]
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USERNAME }}
key: ${{ secrets.DEPLOY_KEY }}
source: "docker-compose.yml,.env"
target: "~/.deploy/${{ github.event.repository.name }}"
- name: Deploy
uses: appleboy/[email protected]
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USERNAME }}
key: ${{ secrets.DEPLOY_KEY }}
script: |
echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login --username ${{ vars.DOCKERHUB_USERNAME }} --password-stdin docker.io
cd ~/.deploy/${{ github.event.repository.name }}
docker compose -f ./docker-compose.yml pull
docker compose -f ./docker-compose.yml up -d