badgey/.gitea/workflows/deploy.yaml

63 lines
2.1 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
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: Debug output target hostname value
run: echo "getting key for ${{ vars[format('{0}_SERVER_HOSTNAME', matrix.bot) }}"
- name: Create SSH dir
run: mkdir -pv ~/.ssh
- name: Seed SSH known_hosts file
run: ssh-keyscan -t rsa ${{ vars[format('{0}_SERVER_HOSTNAME', matrix.bot) }} > ~/.ssh/known_hosts
- name: Seed SSH key for deploy
run: echo "${{ secrets.DEPLOY_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa && chmod 0600 ~/.ssh/id_rsa
- name: Deploy
run: bash cicd/deploy.sh ${{ vars[format('{0}_SERVER_HOSTNAME', matrix.bot) }}