rename backend binary
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
name: ci
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- staging
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- service: frontend
|
||||||
|
context: frontend
|
||||||
|
dockerfile: frontend/Dockerfile
|
||||||
|
- service: backend
|
||||||
|
context: backend
|
||||||
|
dockerfile: backend/Dockerfile
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout with submodules
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Login to Docker Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ${{ vars.REGISTRY_URL }}
|
||||||
|
username: ${{ vars.REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: remote
|
||||||
|
endpoint: ${{ env.BUILDKIT_ARM64_ENDPOINT }}
|
||||||
|
|
||||||
|
- name: Build and Push ${{ matrix.service }} Image
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: ${{ matrix.context }}
|
||||||
|
file: ${{ matrix.dockerfile }}
|
||||||
|
platforms: linux/arm64
|
||||||
|
push: true
|
||||||
|
provenance: false
|
||||||
|
tags: |
|
||||||
|
${{ vars.REGISTRY_URL }}/${{ gitea.repository }}-${{ matrix.service }}:${{ gitea.ref_type == 'tag' && gitea.ref_name || (gitea.ref_name == 'main' && 'latest' || gitea.ref_name) }}
|
||||||
|
${{ vars.REGISTRY_URL }}/${{ gitea.repository }}-${{ matrix.service }}:${{ gitea.sha }}
|
||||||
Generated
+41
-41
@@ -593,6 +593,47 @@ dependencies = [
|
|||||||
"tower-service",
|
"tower-service",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "backend"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"argon2",
|
||||||
|
"async-trait",
|
||||||
|
"aws-config",
|
||||||
|
"aws-credential-types",
|
||||||
|
"aws-sdk-s3",
|
||||||
|
"axum",
|
||||||
|
"axum-extra",
|
||||||
|
"bytes",
|
||||||
|
"chrono",
|
||||||
|
"diesel",
|
||||||
|
"diesel_migrations",
|
||||||
|
"dotenv",
|
||||||
|
"hex",
|
||||||
|
"http-body-util",
|
||||||
|
"hyper 1.7.0",
|
||||||
|
"image",
|
||||||
|
"jsonwebtoken",
|
||||||
|
"mime_guess",
|
||||||
|
"once_cell",
|
||||||
|
"pdfium-render",
|
||||||
|
"percent-encoding",
|
||||||
|
"rand 0.8.5",
|
||||||
|
"reqwest",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"sha2",
|
||||||
|
"tempfile",
|
||||||
|
"thiserror 1.0.69",
|
||||||
|
"tokio",
|
||||||
|
"tower 0.4.13",
|
||||||
|
"tower-http 0.5.2",
|
||||||
|
"tracing",
|
||||||
|
"tracing-subscriber",
|
||||||
|
"uuid",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "backtrace"
|
name = "backtrace"
|
||||||
version = "0.3.76"
|
version = "0.3.76"
|
||||||
@@ -2107,47 +2148,6 @@ dependencies = [
|
|||||||
"sha2",
|
"sha2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "papercrate-backend"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"argon2",
|
|
||||||
"async-trait",
|
|
||||||
"aws-config",
|
|
||||||
"aws-credential-types",
|
|
||||||
"aws-sdk-s3",
|
|
||||||
"axum",
|
|
||||||
"axum-extra",
|
|
||||||
"bytes",
|
|
||||||
"chrono",
|
|
||||||
"diesel",
|
|
||||||
"diesel_migrations",
|
|
||||||
"dotenv",
|
|
||||||
"hex",
|
|
||||||
"http-body-util",
|
|
||||||
"hyper 1.7.0",
|
|
||||||
"image",
|
|
||||||
"jsonwebtoken",
|
|
||||||
"mime_guess",
|
|
||||||
"once_cell",
|
|
||||||
"pdfium-render",
|
|
||||||
"percent-encoding",
|
|
||||||
"rand 0.8.5",
|
|
||||||
"reqwest",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
"sha2",
|
|
||||||
"tempfile",
|
|
||||||
"thiserror 1.0.69",
|
|
||||||
"tokio",
|
|
||||||
"tower 0.4.13",
|
|
||||||
"tower-http 0.5.2",
|
|
||||||
"tracing",
|
|
||||||
"tracing-subscriber",
|
|
||||||
"uuid",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.12.5"
|
version = "0.12.5"
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "papercrate-backend"
|
name = "backend"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -19,7 +19,7 @@ COPY migrations ./migrations
|
|||||||
COPY tests ./tests
|
COPY tests ./tests
|
||||||
COPY diesel.toml ./
|
COPY diesel.toml ./
|
||||||
|
|
||||||
RUN cargo build --release --bin papercrate-backend --bin worker
|
RUN cargo build --release --bin backend --bin worker
|
||||||
RUN cargo install diesel_cli --no-default-features --features postgres
|
RUN cargo install diesel_cli --no-default-features --features postgres
|
||||||
|
|
||||||
FROM debian:bookworm-slim AS runtime
|
FROM debian:bookworm-slim AS runtime
|
||||||
@@ -35,7 +35,7 @@ RUN apt-get update \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
&& useradd --system --create-home --uid 10001 appuser
|
&& useradd --system --create-home --uid 10001 appuser
|
||||||
|
|
||||||
COPY --from=builder /app/target/release/papercrate-backend /usr/local/bin/papercrate-backend
|
COPY --from=builder /app/target/release/backend /usr/local/bin/papercrate-backend
|
||||||
COPY --from=builder /app/target/release/worker /usr/local/bin/papercrate-worker
|
COPY --from=builder /app/target/release/worker /usr/local/bin/papercrate-worker
|
||||||
COPY --from=builder /usr/local/cargo/bin/diesel /usr/local/bin/diesel
|
COPY --from=builder /usr/local/cargo/bin/diesel /usr/local/bin/diesel
|
||||||
COPY migrations ./migrations
|
COPY migrations ./migrations
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use std::env;
|
|||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use diesel::prelude::*;
|
use diesel::prelude::*;
|
||||||
|
|
||||||
use papercrate_backend::{
|
use backend::{
|
||||||
config::AppConfig,
|
config::AppConfig,
|
||||||
db,
|
db,
|
||||||
models::DocumentAsset,
|
models::DocumentAsset,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use std::{sync::Arc, time::Duration};
|
|||||||
use tokio::signal;
|
use tokio::signal;
|
||||||
use tracing_subscriber::EnvFilter;
|
use tracing_subscriber::EnvFilter;
|
||||||
|
|
||||||
use papercrate_backend::{
|
use backend::{
|
||||||
auth::jwt::JwtService, config::AppConfig, db, default_handlers, s3::build_client,
|
auth::jwt::JwtService, config::AppConfig, db, default_handlers, s3::build_client,
|
||||||
state::AppState, storage::S3Storage, Worker,
|
state::AppState, storage::S3Storage, Worker,
|
||||||
};
|
};
|
||||||
|
|||||||
+7
-7
@@ -5,13 +5,13 @@ use tokio::net::TcpListener;
|
|||||||
use tower::make::Shared;
|
use tower::make::Shared;
|
||||||
use tracing_subscriber::EnvFilter;
|
use tracing_subscriber::EnvFilter;
|
||||||
|
|
||||||
use papercrate_backend::auth::jwt::JwtService;
|
use backend::auth::jwt::JwtService;
|
||||||
use papercrate_backend::config::AppConfig;
|
use backend::config::AppConfig;
|
||||||
use papercrate_backend::db;
|
use backend::db;
|
||||||
use papercrate_backend::routes;
|
use backend::routes;
|
||||||
use papercrate_backend::s3::build_client;
|
use backend::s3::build_client;
|
||||||
use papercrate_backend::state::AppState;
|
use backend::state::AppState;
|
||||||
use papercrate_backend::storage::S3Storage;
|
use backend::storage::S3Storage;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> anyhow::Result<()> {
|
async fn main() -> anyhow::Result<()> {
|
||||||
|
|||||||
+10
-10
@@ -14,13 +14,13 @@ use diesel::PgConnection;
|
|||||||
use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness};
|
use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness};
|
||||||
use http_body_util::BodyExt;
|
use http_body_util::BodyExt;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use papercrate_backend::auth::jwt::JwtService;
|
use backend::auth::jwt::JwtService;
|
||||||
use papercrate_backend::config::AppConfig;
|
use backend::config::AppConfig;
|
||||||
use papercrate_backend::db::{self, PgPool};
|
use backend::db::{self, PgPool};
|
||||||
use papercrate_backend::models::{Job, NewUser};
|
use backend::models::{Job, NewUser};
|
||||||
use papercrate_backend::routes;
|
use backend::routes;
|
||||||
use papercrate_backend::state::AppState;
|
use backend::state::AppState;
|
||||||
use papercrate_backend::storage::ObjectStorage;
|
use backend::storage::ObjectStorage;
|
||||||
use rand::rngs::OsRng;
|
use rand::rngs::OsRng;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
@@ -183,7 +183,7 @@ impl TestApp {
|
|||||||
password_hash,
|
password_hash,
|
||||||
role,
|
role,
|
||||||
};
|
};
|
||||||
diesel::insert_into(papercrate_backend::schema::users::table)
|
diesel::insert_into(backend::schema::users::table)
|
||||||
.values(&user)
|
.values(&user)
|
||||||
.execute(conn)
|
.execute(conn)
|
||||||
.context("failed to insert user")?;
|
.context("failed to insert user")?;
|
||||||
@@ -225,7 +225,7 @@ impl TestApp {
|
|||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub async fn clear_jobs(&self) -> Result<()> {
|
pub async fn clear_jobs(&self) -> Result<()> {
|
||||||
self.with_conn(|conn| {
|
self.with_conn(|conn| {
|
||||||
use papercrate_backend::schema::jobs::dsl::jobs as jobs_table;
|
use backend::schema::jobs::dsl::jobs as jobs_table;
|
||||||
diesel::delete(jobs_table)
|
diesel::delete(jobs_table)
|
||||||
.execute(conn)
|
.execute(conn)
|
||||||
.context("failed to clear jobs")?;
|
.context("failed to clear jobs")?;
|
||||||
@@ -238,7 +238,7 @@ impl TestApp {
|
|||||||
pub async fn jobs_by_type(&self, ty: &str) -> Result<Vec<Job>> {
|
pub async fn jobs_by_type(&self, ty: &str) -> Result<Vec<Job>> {
|
||||||
let ty = ty.to_string();
|
let ty = ty.to_string();
|
||||||
self.with_conn(move |conn| {
|
self.with_conn(move |conn| {
|
||||||
use papercrate_backend::schema::jobs::dsl::{
|
use backend::schema::jobs::dsl::{
|
||||||
job_type as job_type_col, jobs as jobs_table,
|
job_type as job_type_col, jobs as jobs_table,
|
||||||
};
|
};
|
||||||
let rows = jobs_table
|
let rows = jobs_table
|
||||||
|
|||||||
Reference in New Issue
Block a user