From e7e6fd904b3595f1846ad4f9e583130e32219861 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 12 Jun 2025 19:14:27 +0000 Subject: [PATCH 1/6] Add icarus_base_api_url_env (#8) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/8 Co-authored-by: kdeng00 Co-committed-by: kdeng00 --- .env.sample | 1 + Cargo.lock | 2 +- src/environment.rs | 5 +++++ src/keys.rs | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.env.sample b/.env.sample index b9f4ef5..bbbe3a5 100644 --- a/.env.sample +++ b/.env.sample @@ -6,3 +6,4 @@ POSTGRES_MAIN_PASSWORD=password POSTGRES_MAIN_DB=my_db POSTGRES_MAIN_HOST=localhost DATABASE_URL=postgres://${POSTGRES_MAIN_USER}:${POSTGRES_MAIN_PASSWORD}@${POSTGRES_MAIN_HOST}:5432/${POSTGRES_MAIN_DB} +ICARUS_BASE_API_URL=https://icarus.com diff --git a/Cargo.lock b/Cargo.lock index 5243040..446e835 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -277,7 +277,7 @@ checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "icarus_envy" -version = "0.1.0" +version = "0.2.0" dependencies = [ "async-std", "dotenvy", diff --git a/src/environment.rs b/src/environment.rs index 33a13df..e43eca0 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -18,3 +18,8 @@ pub async fn get_root_directory() -> String { dotenvy::dotenv().ok(); std::env::var(crate::keys::ROOT_DIRECTORY).expect(crate::keys::error::ROOT_DIRECTORY) } + +pub async fn get_icarus_base_api_url() -> String { + dotenvy::dotenv().ok(); + std::env::var(crate::keys::ICARUS_BASE_API_URL).expect(crate::keys::error::ICARUS_BASE_API_URL) +} diff --git a/src/keys.rs b/src/keys.rs index 57acf26..b883de4 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -12,9 +12,13 @@ pub const SECRET_KEY: &str = "SECRET_KEY"; // Environment key for root directory for the icarus app pub const ROOT_DIRECTORY: &str = "ROOT_DIRECTORY"; +// Environment key for icarus api url +pub const ICARUS_BASE_API_URL: &str = "ICARUS_BASE_API_URL"; + pub mod error { pub const DB_URL: &str = "DATABASE_URL must be set in .env"; pub const SECRET_KEY: &str = "SECRET_KEY must be set in environment file"; pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY must not be set in environment file"; pub const ROOT_DIRECTORY: &str = "ROOT_DIRECTORY must not be set in environment file"; + pub const ICARUS_BASE_API_URL: &str = "ICARUS_BASE_API_URL must not be set in enviornment file"; } From 7df6fe5821fc79ecf9fe94c6d1779bbf929f4360 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 12 Jun 2025 21:26:22 +0000 Subject: [PATCH 2/6] Added test (#10) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/10 Co-authored-by: kdeng00 Co-committed-by: kdeng00 --- .env | 1 + .gitea/workflows/workflow.yaml | 65 ++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- src/environment.rs | 1 - src/keys.rs | 2 +- src/lib.rs | 15 -------- tests/test.rs | 35 +++++++++++++++--- 7 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 .gitea/workflows/workflow.yaml diff --git a/.env b/.env index b9f4ef5..bbbe3a5 100644 --- a/.env +++ b/.env @@ -6,3 +6,4 @@ POSTGRES_MAIN_PASSWORD=password POSTGRES_MAIN_DB=my_db POSTGRES_MAIN_HOST=localhost DATABASE_URL=postgres://${POSTGRES_MAIN_USER}:${POSTGRES_MAIN_PASSWORD}@${POSTGRES_MAIN_HOST}:5432/${POSTGRES_MAIN_DB} +ICARUS_BASE_API_URL=https://icarus.com diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml new file mode 100644 index 0000000..3454d82 --- /dev/null +++ b/.gitea/workflows/workflow.yaml @@ -0,0 +1,65 @@ +name: Rust Build + +on: + push: + branches: + - main + - devel + pull_request: + branches: + - main + - devel + +jobs: + check: + name: Check + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo check + + test: + name: Test Suite + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo test + + fmt: + name: Rustfmt + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: rustup component add rustfmt + - run: cargo fmt --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: rustup component add clippy + - run: cargo clippy -- -D warnings + + build: + name: build + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo build + diff --git a/Cargo.toml b/Cargo.toml index ca6936c..d9dfe0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_envy" -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.86" diff --git a/src/environment.rs b/src/environment.rs index e43eca0..672c297 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -1,4 +1,3 @@ - pub async fn get_db_url() -> String { dotenvy::dotenv().ok(); std::env::var(crate::keys::DB_URL).expect(crate::keys::error::DB_URL) diff --git a/src/keys.rs b/src/keys.rs index b883de4..5f77cab 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -3,7 +3,7 @@ pub const DB_URL: &str = "DATABASE_URL"; // Environment key for secret main key // Used for the icarus app -pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY"; +pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY"; // Environment key for secret key // Generic use of secret key that could be found in various apps diff --git a/src/lib.rs b/src/lib.rs index 467b8af..5019657 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,17 +1,2 @@ pub mod environment; pub mod keys; - -pub fn add(left: u64, right: u64) -> u64 { - left + right -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } -} diff --git a/tests/test.rs b/tests/test.rs index 3e31a84..b5d39bb 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -1,27 +1,52 @@ - #[cfg(test)] mod tests { #[test] fn test_dburl() { let result = async_std::task::block_on(icarus_envy::environment::get_db_url()); - assert_eq!(result, "postgres://myuser:password@localhost:5432/my_db", "DATABASE_URL does not match {:?}", result); + assert_eq!( + result, "postgres://myuser:password@localhost:5432/my_db", + "DATABASE_URL does not match {:?}", + result + ); } #[test] fn test_get_secret_main_key() { let result = async_std::task::block_on(icarus_envy::environment::get_secret_main_key()); - assert_eq!(result, "Somesupersecretpassword!!!45345435", "SECRET_MAIN_KEY does not match {:?}", result) + assert_eq!( + result, "Somesupersecretpassword!!!45345435", + "SECRET_MAIN_KEY does not match {:?}", + result + ) } #[test] fn test_get_secret_key() { let result = async_std::task::block_on(icarus_envy::environment::get_secret_key()); - assert_eq!(result, "AmIGoodEnoughForYou?", "SECRET_KEY does not match {:?}", result) + assert_eq!( + result, "AmIGoodEnoughForYou?", + "SECRET_KEY does not match {:?}", + result + ) } #[test] fn test_get_root_directory() { let result = async_std::task::block_on(icarus_envy::environment::get_root_directory()); - assert_eq!(result, "/path/to/root", "ROOT_DIRECTORY does not match {:?}", result) + assert_eq!( + result, "/path/to/root", + "ROOT_DIRECTORY does not match {:?}", + result + ) + } + + #[test] + fn test_get_icarus_base_api_url() { + let result = async_std::task::block_on(icarus_envy::environment::get_icarus_base_api_url()); + assert_eq!( + result, "https://icarus.com", + "ICARUS_BASE_API_URL does not match {:?}", + result + ) } } From c90f9fb0b4a8ca4aedd4ff09f6c754de8916eceb Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 12 Jun 2025 23:34:09 +0000 Subject: [PATCH 3/6] Refactoring const construction (#11) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/11 Co-authored-by: kdeng00 Co-committed-by: kdeng00 --- Cargo.lock | 29 ++++++++++++++++++++++++++++- Cargo.toml | 3 ++- src/keys.rs | 13 ++++++++----- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 446e835..605196f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -168,6 +168,26 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -277,9 +297,10 @@ checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "icarus_envy" -version = "0.2.0" +version = "0.2.1" dependencies = [ "async-std", + "const_format", "dotenvy", ] @@ -458,6 +479,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "value-bag" version = "1.11.1" diff --git a/Cargo.toml b/Cargo.toml index d9dfe0f..03f3d99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,12 @@ [package] name = "icarus_envy" -version = "0.2.1" +version = "0.2.2" edition = "2024" rust-version = "1.86" [dependencies] dotenvy = { version = "0.15.7" } +const_format = { version = "0.2.34" } [dev-dependencies] async-std = { version = "1.13.1" } diff --git a/src/keys.rs b/src/keys.rs index 5f77cab..cde5fab 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -16,9 +16,12 @@ pub const ROOT_DIRECTORY: &str = "ROOT_DIRECTORY"; pub const ICARUS_BASE_API_URL: &str = "ICARUS_BASE_API_URL"; pub mod error { - pub const DB_URL: &str = "DATABASE_URL must be set in .env"; - pub const SECRET_KEY: &str = "SECRET_KEY must be set in environment file"; - pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY must not be set in environment file"; - pub const ROOT_DIRECTORY: &str = "ROOT_DIRECTORY must not be set in environment file"; - pub const ICARUS_BASE_API_URL: &str = "ICARUS_BASE_API_URL must not be set in enviornment file"; + use const_format::concatcp; + + pub const GENERAL_ERROR: &str = "must not be set in enviornment file"; + pub const DB_URL: &str = concatcp!(super::DB_URL, " ", GENERAL_ERROR); + pub const SECRET_KEY: &str = concatcp!(super::SECRET_KEY, " ", GENERAL_ERROR); + pub const SECRET_MAIN_KEY: &str = concatcp!(super::SECRET_MAIN_KEY, " ", GENERAL_ERROR); + pub const ROOT_DIRECTORY: &str = concatcp!(super::ROOT_DIRECTORY, " ", GENERAL_ERROR); + pub const ICARUS_BASE_API_URL: &str = concatcp!(super::ICARUS_BASE_API_URL, " ", GENERAL_ERROR); } From 84ea6e4c223f19ff96f6b7cae944e831ef4aa831 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 12 Jun 2025 23:50:08 +0000 Subject: [PATCH 4/6] Updated version tag (#12) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/12 Co-authored-by: kdeng00 Co-committed-by: kdeng00 --- .gitea/workflows/tag_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/tag_release.yml b/.gitea/workflows/tag_release.yml index 786362a..8cb2896 100644 --- a/.gitea/workflows/tag_release.yml +++ b/.gitea/workflows/tag_release.yml @@ -28,7 +28,7 @@ jobs: BRANCH_REF="${GITHUB_REF}" BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3) PROJECT_TAG_RELEASE="v$VERSION-$BRANCH_NAME-$PROJECT_COMMIT_HASH" - echo "::set-output name=project_tag_release::$PROJECT_TAG_RELEASE-950" + echo "::set-output name=project_tag_release::$PROJECT_TAG_RELEASE-006" echo "Version: $VERSION" echo "Hash: $PROJECT_COMMIT_HASH" echo "Branch: $BRANCH_NAME" From 020d091446f75fc3a92f091acc8e23e78decc4b2 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 29 Jun 2025 18:58:12 +0000 Subject: [PATCH 5/6] Rust std change (#13) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/13 Co-authored-by: phoenix Co-committed-by: phoenix --- .gitea/workflows/tag_release.yml | 2 +- .gitea/workflows/workflow.yaml | 10 +++++----- Cargo.lock | 2 +- Cargo.toml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/tag_release.yml b/.gitea/workflows/tag_release.yml index 8cb2896..915c2d2 100644 --- a/.gitea/workflows/tag_release.yml +++ b/.gitea/workflows/tag_release.yml @@ -17,7 +17,7 @@ jobs: - name: Install Rust uses: actions-rs/toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 components: cargo - name: Extract Version from Cargo.toml diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 3454d82..a81b104 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 - run: cargo check test: @@ -28,7 +28,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 - run: cargo test fmt: @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 - run: rustup component add rustfmt - run: cargo fmt --all -- --check @@ -49,7 +49,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 - run: rustup component add clippy - run: cargo clippy -- -D warnings @@ -60,6 +60,6 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.86.0 + toolchain: 1.88.0 - run: cargo build diff --git a/Cargo.lock b/Cargo.lock index 605196f..26b4edb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -297,7 +297,7 @@ checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "icarus_envy" -version = "0.2.1" +version = "0.2.2" dependencies = [ "async-std", "const_format", diff --git a/Cargo.toml b/Cargo.toml index 03f3d99..7729acb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "icarus_envy" version = "0.2.2" edition = "2024" -rust-version = "1.86" +rust-version = "1.88" [dependencies] dotenvy = { version = "0.15.7" } From d73fba9899372b0655a90cb426645930135152da Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 29 Jun 2025 19:06:18 +0000 Subject: [PATCH 6/6] Version bump (#14) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/14 Co-authored-by: phoenix Co-committed-by: phoenix --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26b4edb..2873e77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -297,7 +297,7 @@ checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "icarus_envy" -version = "0.2.2" +version = "0.3.0" dependencies = [ "async-std", "const_format", diff --git a/Cargo.toml b/Cargo.toml index 7729acb..3326aaf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_envy" -version = "0.2.2" +version = "0.3.0" edition = "2024" rust-version = "1.88"