feat: deploy
This commit is contained in:
@@ -0,0 +1,65 @@
|
|||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Build the project
|
||||||
|
run: cargo build --release
|
||||||
|
|
||||||
|
- name: Stop service on VPS before upload
|
||||||
|
uses: appleboy/ssh-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.VPS_IP }}
|
||||||
|
username: ${{ secrets.VPS_USER }}
|
||||||
|
key: ${{ secrets.VPS_SSH_KEY }}
|
||||||
|
port: ${{ secrets.VPS_PORT }}
|
||||||
|
script: |
|
||||||
|
set -e
|
||||||
|
echo "Stopping the service before uploading the binary"
|
||||||
|
sudo systemctl stop imphnen-backend-service
|
||||||
|
|
||||||
|
- name: Upload artifact to VPS
|
||||||
|
uses: appleboy/scp-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.VPS_IP }}
|
||||||
|
username: ${{ secrets.VPS_USER }}
|
||||||
|
key: ${{ secrets.VPS_SSH_KEY }}
|
||||||
|
port: ${{ secrets.VPS_PORT }}
|
||||||
|
source: ./target/release/imphnen-backend-service
|
||||||
|
target: /opt/imphnen-backend-service/imphnen-backend-service
|
||||||
|
rm: true
|
||||||
|
overwrite: true
|
||||||
|
|
||||||
|
- name: Deploy to server
|
||||||
|
uses: appleboy/ssh-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.VPS_IP }}
|
||||||
|
username: ${{ secrets.VPS_USER }}
|
||||||
|
key: ${{ secrets.VPS_SSH_KEY }}
|
||||||
|
port: ${{ secrets.VPS_PORT }}
|
||||||
|
script: |
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Restarting the service"
|
||||||
|
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
||||||
|
sudo systemctl restart imphnen-backend-service
|
||||||
|
|
||||||
|
echo "Deployment completed successfully"
|
||||||
Generated
+343
-266
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "imphnen-cms-be"
|
name = "imphnen-backend-service"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,22 @@ impl<'a> GachaRepository<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn query_gacha_claim_by_name(
|
||||||
|
&self,
|
||||||
|
name: String,
|
||||||
|
) -> Result<GachaItemResponseDto> {
|
||||||
|
let db = &self.state.surrealdb;
|
||||||
|
|
||||||
|
let result = db
|
||||||
|
.select((ResourceEnum::GachaClaims.to_string(), name))
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
match result {
|
||||||
|
Some(response) => Ok(response),
|
||||||
|
None => bail!("Gacha item not found"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn query_create_gacha_claim(
|
pub async fn query_create_gacha_claim(
|
||||||
&self,
|
&self,
|
||||||
data: GachaCreateClaimRequestDto,
|
data: GachaCreateClaimRequestDto,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use surrealdb::{engine::remote::http::Client, Surreal};
|
use surrealdb::{engine::remote::ws::Client, Surreal};
|
||||||
use utoipa::{IntoParams, ToSchema};
|
use utoipa::{IntoParams, ToSchema};
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
|
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use super::Env;
|
use super::Env;
|
||||||
use crate::SurrealClient;
|
use crate::SurrealClient;
|
||||||
use surrealdb::engine::remote::http::{Client, Http};
|
use surrealdb::engine::remote::ws::{Client, Ws};
|
||||||
use surrealdb::opt::auth::Root;
|
use surrealdb::opt::auth::Root;
|
||||||
use surrealdb::{Result, Surreal};
|
use surrealdb::{Result, Surreal};
|
||||||
|
|
||||||
@@ -10,14 +10,14 @@ pub use resource::*;
|
|||||||
pub async fn surrealdb_init() -> Result<SurrealClient> {
|
pub async fn surrealdb_init() -> Result<SurrealClient> {
|
||||||
let env = Env::new();
|
let env = Env::new();
|
||||||
let db = Surreal::<Client>::init();
|
let db = Surreal::<Client>::init();
|
||||||
db.connect::<Http>(env.surrealdb_url).await?;
|
db.connect::<Ws>(env.surrealdb_url.clone()).await?;
|
||||||
db.signin(Root {
|
db.signin(Root {
|
||||||
username: &env.surrealdb_username,
|
username: &env.surrealdb_username,
|
||||||
password: &env.surrealdb_password,
|
password: &env.surrealdb_password,
|
||||||
})
|
})
|
||||||
.await?;
|
.await?;
|
||||||
db.use_ns(env.surrealdb_namespace)
|
db.use_ns(env.surrealdb_namespace.clone())
|
||||||
.use_db(env.surrealdb_dbname)
|
.use_db(env.surrealdb_dbname.clone())
|
||||||
.await?;
|
.await?;
|
||||||
Ok(db)
|
Ok(db)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
use imphnen_cms_be::{apps, axum_init};
|
use imphnen_backend_service::{apps, axum_init};
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user