mcstatusface/.forgejo/workflows/build-and-deploy.yaml

54 lines
1.4 KiB
YAML
Raw Normal View History

2026-09-13 16:40:34 +01:00
on:
push:
branches:
- main
env:
EXEC: mcstatusface
REMOTE: ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}
PORT: ${{ secrets.SSH_PORT }}
OS: linux
ARCH: x86_64
BINARY: ${{ env.EXEC }}-${{ env.ARCH }}-${{ env.OS }}
jobs:
build:
runs-on: docker
steps:
- uses: actions/checkout@v7
- uses: moonrepo/setup-rust@v1
- name: "Build"
run: "cargo build --release"
- uses: actions/upload-artifact@v7
with:
path: target/release/mcstatusface
name: ${{ env.BINARY }}
deploy:
runs-on: docker
needs: build
steps:
- uses: actions/download-artifact@v8
with:
name: ${{ env.BINARY }}
- name: Set up SSH keys
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Copy to production server
run: |
ssh-keyscan -p $PORT ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
scp -P $PORT ./${{ env.BINARY }} $REMOTE:/tmp/mcstatusface
ssh -o StrictHostKeyChecking=no $REMORE -p PORT << EOF
chmod 755 /tmp/mcstatusface
EOF
- name: Stop service
run: ssh $REMOTE -p $PORT sudo systemctl stop mcstatusface
- name: Replace binary
run: ssh $REMOTE -p $PORT mv /tmp/mcstatusface ${{ secrets.DEPLOY_DIR }}/mcstatusface
- name: Restart service
run: ssh $REMOTE -p $PORT sudo systemctl restart mcstatusface