Skip to content

Deploy Faucet Backend #23

Deploy Faucet Backend

Deploy Faucet Backend #23

Workflow file for this run

name: Deploy Faucet Backend
on:
workflow_dispatch:
inputs:
environment:
description: 'Target environment'
required: true
type: choice
options:
- faucet-backend-testnet
- faucet-backend-testnet-prod
default: faucet-backend-testnet
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment }}
env:
WALLET_PRIVATE_KEY: ${{ secrets.WALLET_PRIVATE_KEY }}
CHAIN_URL: ${{ secrets.CHAIN_URL }}
RECAPTCHA_SECRET_KEY: ${{ secrets.RECAPTCHA_SECRET_KEY }}
TOKENS_CONFIG: ${{ vars.TOKENS_CONFIG }}
TRAEFIK_DOMAIN: ${{ vars.TRAEFIK_DOMAIN }}
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_PORT: ${{ secrets.SSH_PORT }}
SSH_USERNAME: ${{ secrets.SSH_USERNAME }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create .env file
run: |
echo "WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY}" > .env
echo "CHAIN_URL=${CHAIN_URL}" >> .env
echo "RECAPTCHA_SECRET_KEY=${RECAPTCHA_SECRET_KEY}" >> .env
echo "TRAEFIK_DOMAIN=${TRAEFIK_DOMAIN}" >> .env
- name: Build Docker image
run: |
docker build . \
--build-arg TOKENS_CONFIG="${TOKENS_CONFIG}" \
-t faucet-backend:latest
- name: Save image to file
run: |
docker save faucet-backend:latest -o faucet-backend.tar
- name: Copy image, env and compose file to server via scp
uses: appleboy/scp-action@v0.1.4
with:
host: ${{ env.SSH_HOST }}
username: ${{ env.SSH_USERNAME }}
port: ${{ env.SSH_PORT }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "faucet-backend.tar,api-compose.yml,.env"
target: "~/faucet-backend/"
- name: Deploy on server via SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.SSH_HOST }}
username: ${{ env.SSH_USERNAME }}
port: ${{ env.SSH_PORT }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
envs: TRAEFIK_DOMAIN
script: |
set -e
cd ~/faucet-backend
docker load -i faucet-backend.tar
docker network inspect proxy >/dev/null 2>&1 || docker network create proxy
docker compose -f api-compose.yml down --remove-orphans
docker compose -f api-compose.yml up -d
rm -f ./api-compose.yml