add build and deploy workflow
This commit is contained in:
parent
faed4ceb30
commit
ba9cb01591
1 changed files with 53 additions and 0 deletions
53
.forgejo/workflows/build-and-deploy.yaml
Normal file
53
.forgejo/workflows/build-and-deploy.yaml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue