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