badgey/.gitea/workflows/deploy.yaml

69 lines
2.2 KiB
YAML

name: Badgey Deployment
run-name: Deploy to prod
on:
push:
branches:
- main
jobs:
build:
runs-on: rust
container:
image: xyonofcalhoun/manifold:latest
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build (Release)
run: cargo build --release --color=always
- name: Archive artifact
uses: actions/upload-artifact@v3
with:
name: badgey
path: target/release/badgey
deploy:
runs-on: rust
container:
options: --dns 172.16.255.254 --dns-search steamrunner.lbladen.uk
strategy:
matrix:
bot: [ BADGEY, M5_COMPUTER ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: badgey
- name: Seed config file
uses: cschleiden/replace-tokens@v1.2
with:
files: config/production.badgey.json
env:
BOT_NICKNAME: ${{ vars[format('{0}_BOT_NICKNAME', matrix.bot) }}
LOG_CHANNEL_ID: ${{ vars[format('{0}_LOG_CHANNEL_ID', matrix.bot) }}
POSTGRES_HOST: ${{ vars.POSTGRES_HOST }}
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
POSTGRES_DATABASE_NAME: ${{ vars[format('{0}_POSTGRES_DATABASE_NAME', matrix.bot) }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
WEATHER_API_KEY: ${{ secrets.WEATHER_API_KEY }}
DOGPICS_API_KEY: ${{ secrets.DOGPICS_API_KEY }}
CATPICS_API_KEY: ${{ secrets.CATPICS_API_KEY }}
- name: ssh-scp-ssh-pipelines
uses: cross-the-world/ssh-scp-ssh-pipelines@v1.1.4
env:
BOT_NAME: ${{ vars[format('{0}_SERVER_HOSTNAME', matrix.bot) }}
with:
host: ${{ vars[format('{0}_SERVER_HOSTNAME', matrix.bot) }}
user: badgey
key: ${{ secrets.DEPLOY_KEY }}
first_ssh: |
sudo /usr/bin/systemctl stop $BOT_NAME
scp: |
./badgey => /srv/$BOT_NAME/$BOT_NAME
./config => /srv/$BOT_NAME/
./txt => /srv/$BOT_NAME/
last_ssh: |
sudo /usr/bin/systemctl start $BOT_NAME