From 1b0c64a9e99938c91b4a939b1cf6fc3b06ef81a9 Mon Sep 17 00:00:00 2001 From: Austin Bonander Date: Thu, 27 Feb 2025 17:00:37 -0800 Subject: [PATCH] chore(ci): test multi-tenant example --- .github/workflows/examples.yml | 28 ++++++++++++---- Cargo.lock | 32 +++++++++---------- Cargo.toml | 4 +-- examples/postgres/multi-tenant/Cargo.toml | 13 +++++--- .../postgres/multi-tenant/accounts/Cargo.toml | 2 +- .../postgres/multi-tenant/payments/Cargo.toml | 2 +- examples/postgres/multi-tenant/src/main.rs | 5 ++- 7 files changed, 54 insertions(+), 32 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 280d1fc4..4873a8c5 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -22,12 +22,12 @@ jobs: key: sqlx-cli - run: > - cargo build - -p sqlx-cli - --bin sqlx - --release - --no-default-features - --features mysql,postgres,sqlite + cargo build + -p sqlx-cli + --bin sqlx + --release + --no-default-features + --features mysql,postgres,sqlite - uses: actions/upload-artifact@v4 with: @@ -98,7 +98,7 @@ jobs: name: sqlx-cli path: /home/runner/.local/bin - - run: | + - run: | ls -R /home/runner/.local/bin chmod +x $HOME/.local/bin/sqlx echo $HOME/.local/bin >> $GITHUB_PATH @@ -175,6 +175,20 @@ jobs: DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos run: cargo run -p sqlx-example-postgres-mockable-todos + - name: Multi-Tenant (Setup) + working-directory: examples/postgres/multi-tenant + env: + DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos + run: | + (cd accounts && sqlx db setup) + (cd payments && sqlx migrate run) + sqlx migrate run + + - name: Mockable TODOs (Run) + env: + DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos + run: cargo run -p sqlx-example-postgres-mockable-todos + - name: TODOs (Setup) working-directory: examples/postgres/todos env: diff --git a/Cargo.lock b/Cargo.lock index 571a7dbc..1f4674ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -515,22 +515,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "axum-multi-tenant" -version = "0.8.3" -dependencies = [ - "accounts", - "axum 0.8.1", - "color-eyre", - "dotenvy", - "payments", - "rand", - "rust_decimal", - "sqlx", - "tokio", - "tracing-subscriber", -] - [[package]] name = "backoff" version = "0.4.0" @@ -3991,6 +3975,22 @@ dependencies = [ "tokio", ] +[[package]] +name = "sqlx-example-postgres-multi-tenant" +version = "0.8.3" +dependencies = [ + "accounts", + "axum 0.8.1", + "color-eyre", + "dotenvy", + "payments", + "rand", + "rust_decimal", + "sqlx", + "tokio", + "tracing-subscriber", +] + [[package]] name = "sqlx-example-postgres-todos" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 3b4d2638..8769b56e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,14 +11,14 @@ members = [ "sqlx-postgres", "sqlx-sqlite", "examples/mysql/todos", - "examples/postgres/multi-tenant", "examples/postgres/axum-social-with-tests", "examples/postgres/chat", "examples/postgres/files", "examples/postgres/json", "examples/postgres/listen", - "examples/postgres/todos", "examples/postgres/mockable-todos", + "examples/postgres/multi-tenant", + "examples/postgres/todos", "examples/postgres/transaction", "examples/sqlite/todos", ] diff --git a/examples/postgres/multi-tenant/Cargo.toml b/examples/postgres/multi-tenant/Cargo.toml index f7dca288..f93c9174 100644 --- a/examples/postgres/multi-tenant/Cargo.toml +++ b/examples/postgres/multi-tenant/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "axum-multi-tenant" +name = "sqlx-example-postgres-multi-tenant" version.workspace = true license.workspace = true edition.workspace = true @@ -9,9 +9,6 @@ categories.workspace = true authors.workspace = true [dependencies] -accounts = { path = "accounts" } -payments = { path = "payments" } - tokio = { version = "1", features = ["rt-multi-thread", "macros"] } sqlx = { path = "../../..", version = "0.8.3", features = ["runtime-tokio", "postgres"] } @@ -26,5 +23,13 @@ rust_decimal = "1.36.0" rand = "0.8.5" +[dependencies.accounts] +package = "sqlx-example-postgres-multi-tenant-accounts" +path = "accounts" + +[dependencies.payments] +package = "sqlx-example-postgres-multi-tenant-accounts" +path = "payments" + [lints] workspace = true diff --git a/examples/postgres/multi-tenant/accounts/Cargo.toml b/examples/postgres/multi-tenant/accounts/Cargo.toml index 0295dcec..33b18591 100644 --- a/examples/postgres/multi-tenant/accounts/Cargo.toml +++ b/examples/postgres/multi-tenant/accounts/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "accounts" +name = "sqlx-example-postgres-multi-tenant-accounts" version = "0.1.0" edition = "2021" diff --git a/examples/postgres/multi-tenant/payments/Cargo.toml b/examples/postgres/multi-tenant/payments/Cargo.toml index 6a0e4d26..1c6d3186 100644 --- a/examples/postgres/multi-tenant/payments/Cargo.toml +++ b/examples/postgres/multi-tenant/payments/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "payments" +name = "sqlx-example-postgres-multi-tenant-payments" version = "0.1.0" edition = "2021" diff --git a/examples/postgres/multi-tenant/src/main.rs b/examples/postgres/multi-tenant/src/main.rs index 4aa1b9c5..94a96fcf 100644 --- a/examples/postgres/multi-tenant/src/main.rs +++ b/examples/postgres/multi-tenant/src/main.rs @@ -45,7 +45,10 @@ async fn main() -> eyre::Result<()> { txn.commit().await?; - println!("created account ID: {}, email: {user_email:?}, password: {user_password:?}", account_id.0); + println!( + "created account ID: {}, email: {user_email:?}, password: {user_password:?}", + account_id.0 + ); // POST /session // Log the user in.