rename backend binary
ci / docker (backend, backend/Dockerfile, backend) (push) Has been cancelled
ci / docker (frontend, frontend/Dockerfile, frontend) (push) Has been cancelled

This commit is contained in:
2025-10-12 12:13:46 +02:00
parent dc22b12df3
commit 4b74ee54b0
8 changed files with 116 additions and 63 deletions
+53
View File
@@ -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 }}
+41 -41
View File
@@ -593,6 +593,47 @@ dependencies = [
"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]]
name = "backtrace"
version = "0.3.76"
@@ -2107,47 +2148,6 @@ dependencies = [
"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]]
name = "parking_lot"
version = "0.12.5"
+1 -1
View File
@@ -1,5 +1,5 @@
[package]
name = "papercrate-backend"
name = "backend"
version = "0.1.0"
edition = "2021"
+2 -2
View File
@@ -19,7 +19,7 @@ COPY migrations ./migrations
COPY tests ./tests
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
FROM debian:bookworm-slim AS runtime
@@ -35,7 +35,7 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* \
&& 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 /usr/local/cargo/bin/diesel /usr/local/bin/diesel
COPY migrations ./migrations
+1 -1
View File
@@ -3,7 +3,7 @@ use std::env;
use anyhow::{Context, Result};
use diesel::prelude::*;
use papercrate_backend::{
use backend::{
config::AppConfig,
db,
models::DocumentAsset,
+1 -1
View File
@@ -3,7 +3,7 @@ use std::{sync::Arc, time::Duration};
use tokio::signal;
use tracing_subscriber::EnvFilter;
use papercrate_backend::{
use backend::{
auth::jwt::JwtService, config::AppConfig, db, default_handlers, s3::build_client,
state::AppState, storage::S3Storage, Worker,
};
+7 -7
View File
@@ -5,13 +5,13 @@ use tokio::net::TcpListener;
use tower::make::Shared;
use tracing_subscriber::EnvFilter;
use papercrate_backend::auth::jwt::JwtService;
use papercrate_backend::config::AppConfig;
use papercrate_backend::db;
use papercrate_backend::routes;
use papercrate_backend::s3::build_client;
use papercrate_backend::state::AppState;
use papercrate_backend::storage::S3Storage;
use backend::auth::jwt::JwtService;
use backend::config::AppConfig;
use backend::db;
use backend::routes;
use backend::s3::build_client;
use backend::state::AppState;
use backend::storage::S3Storage;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
+10 -10
View File
@@ -14,13 +14,13 @@ use diesel::PgConnection;
use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness};
use http_body_util::BodyExt;
use once_cell::sync::Lazy;
use papercrate_backend::auth::jwt::JwtService;
use papercrate_backend::config::AppConfig;
use papercrate_backend::db::{self, PgPool};
use papercrate_backend::models::{Job, NewUser};
use papercrate_backend::routes;
use papercrate_backend::state::AppState;
use papercrate_backend::storage::ObjectStorage;
use backend::auth::jwt::JwtService;
use backend::config::AppConfig;
use backend::db::{self, PgPool};
use backend::models::{Job, NewUser};
use backend::routes;
use backend::state::AppState;
use backend::storage::ObjectStorage;
use rand::rngs::OsRng;
use serde::Serialize;
use tokio::sync::Mutex;
@@ -183,7 +183,7 @@ impl TestApp {
password_hash,
role,
};
diesel::insert_into(papercrate_backend::schema::users::table)
diesel::insert_into(backend::schema::users::table)
.values(&user)
.execute(conn)
.context("failed to insert user")?;
@@ -225,7 +225,7 @@ impl TestApp {
#[allow(dead_code)]
pub async fn clear_jobs(&self) -> Result<()> {
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)
.execute(conn)
.context("failed to clear jobs")?;
@@ -238,7 +238,7 @@ impl TestApp {
pub async fn jobs_by_type(&self, ty: &str) -> Result<Vec<Job>> {
let ty = ty.to_string();
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,
};
let rows = jobs_table