diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31cbc95..d1094ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,3 +73,57 @@ jobs: files: helios-remote-client-windows.exe env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Deploy client to VPS + if: github.ref == 'refs/heads/master' + env: + VPS_SSH_KEY: ${{ secrets.VPS_SSH_KEY }} + run: | + mkdir -p ~/.ssh + echo "$VPS_SSH_KEY" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + ssh-keyscan -H 46.225.185.232 >> ~/.ssh/known_hosts + scp -i ~/.ssh/deploy_key helios-remote-client-windows.exe \ + root@46.225.185.232:/var/www/helios-remote/helios-remote-client-windows.exe + + deploy-server: + runs-on: ubuntu-latest + needs: build-and-test + if: github.ref == 'refs/heads/master' + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + x86_64-linux target + uses: dtolnay/rust-toolchain@stable + with: + targets: x86_64-unknown-linux-gnu + + - name: Install cross-linker + run: sudo apt-get update && sudo apt-get install -y gcc-x86-64-linux-gnu + + - name: Cache dependencies + uses: Swatinem/rust-cache@v2 + with: + key: linux-x86_64 + + - name: Build server (x86_64 Linux) + run: cargo build --release --package helios-server --target x86_64-unknown-linux-gnu + env: + CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER: x86_64-linux-gnu-gcc + + - name: Deploy server to VPS + env: + VPS_SSH_KEY: ${{ secrets.VPS_SSH_KEY }} + run: | + mkdir -p ~/.ssh + echo "$VPS_SSH_KEY" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + ssh-keyscan -H 46.225.185.232 >> ~/.ssh/known_hosts + scp -i ~/.ssh/deploy_key \ + target/x86_64-unknown-linux-gnu/release/helios-server \ + root@46.225.185.232:/opt/helios-remote/target/release/helios-server-new + ssh -i ~/.ssh/deploy_key root@46.225.185.232 \ + "mv /opt/helios-remote/target/release/helios-server-new \ + /opt/helios-remote/target/release/helios-server && \ + systemctl restart helios-remote"