Skip to content

chore: remove ephemeral #8

chore: remove ephemeral

chore: remove ephemeral #8

Workflow file for this run

name: Create and publish a Docker image
on:
push:
branches: ['release']
workflow_dispatch:
inputs:
force_rebuild:
description: 'Set "yes" to force rebuild images'
required: true
default: 'no'
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
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: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image of the service
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
no-cache: true
platforms: linux/amd64
tags: 'ghcr.io/hon9kon9ize/discord-bot:latest'
deploy:
runs-on: ubuntu-latest
needs:
- build-and-push-image
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create .env file and GCP service account key file
run: |
echo "Generating .env file"
echo "DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN }}" >> .env
echo "DISCORD_CLIENT_ID=${{ vars.DISCORD_CLIENT_ID }}" >> .env
echo "AIRTABLE_API_KEY=${{ secrets.AIRTABLE_API_KEY }}" >> .env
echo "AIRTABLE_BASE_ID=${{ vars.AIRTABLE_BASE_ID }}" >> .env
echo "AIRTABLE_TABLE_IDS=${{ vars.AIRTABLE_TABLE_IDS }}" >> .env
# Copy docker-compose and .env files to target server
- name: copy files to target server via scp
uses: appleboy/[email protected]
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USERNAME }}
port: 22
key: ${{ secrets.DEPLOY_KEY }}
source: './docker-compose.yml,./.env'
target: '~/.deploy/${{ github.event.repository.name }}/'
# Deploy Docker image with your application using `docker compose up app` remotely
- name: remote docker-compose up via ssh
uses: appleboy/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }}
GITHUB_USER: ${{ secrets.GH_DEPLOY_USER }}
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USERNAME }}
key: ${{ secrets.DEPLOY_KEY }}
port: ${{ secrets.DEPLOY_PORT }}
envs: GITHUB_TOKEN,USERNAME
script: |
echo $GITHUB_TOKEN | docker login ghcr.io -u $GITHUB_USER --password-stdin
cd ~/.deploy/${{ github.event.repository.name }}
docker compose -f ./docker-compose.yml pull
docker compose -f ./docker-compose.yml up -d