Skip to content

Commit

Permalink
closes #2, closes #4, closes #6; [FEATURE] Deploy rust without docker
Browse files Browse the repository at this point in the history
  • Loading branch information
nrs23 authored and nseymoursmith committed Nov 16, 2023
1 parent 2eb1a77 commit e800b57
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 2 deletions.
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: deploy to digitalOcean
run-name: Deploy to DigitalOcean by @${{ github.actor }}
on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy Flask app
uses: appleboy/[email protected]
with:
host: ${{secrets.SSH_HOST}} # IP address of the server you wish to ssh into
key: ${{secrets.SSH_KEY}} # Private or public key of the server
username: ${{ secrets.SSH_USERNAME }} # User of the server you want to ssh into
script: |
if ! [ -d "$HOME/waterlogged-prototype/" ]; then
echo 'repo does not exist!'
exit 1
fi
cd $HOME/waterlogged-prototype/
git pull
if [ $? != 0 ]; then
echo "git pull failed, check the server logs!"
exit 1
fi
./deploy-rust.sh
if [ $? != 0 ]; then
echo "deploy-rust.sh failed, check the server logs!"
exit 1
fi
echo 'Deployment successful to digital ocean'
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ Similar advice is available from government sources on a subscription basis, mos

# TODOs

- [] Build a decent docker template for the rust API [KN 4/11/23]
- [] Set up CI to deploy to digitalocean droplet using ssh and docker
See https://github.com/nseymoursmith/waterlogged-prototype/issues

# User flow

Expand Down
23 changes: 23 additions & 0 deletions deploy-rust.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

./stop-api.sh

if ! [ -d "$HOME/waterlogged-prototype/dockerised-rust-api/" ]; then
echo 'docker app directory does not exist!'
exit 1
fi

cd $HOME/waterlogged-prototype/dockerised-rust-api/
cargo build --release
if [ $? != 0 ]; then
echo "cargo build failed, check the server logs!"
exit 1
fi

./target/release/api-example &

# Capture PID of last executed command with `$!`
# and use it to generate a kill script
echo "kill $!" > ../stop-api.sh

chmod +x ../stop-api.sh

0 comments on commit e800b57

Please sign in to comment.