diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 1097bff1d..fce9ce136 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -59,7 +59,7 @@ jobs: fudster: ${{ steps.delta.outputs.fudster_any_changed }} laser: ${{ steps.delta.outputs.laser_any_changed }} worker: ${{ steps.delta.outputs.worker_any_changed }} - + q: ${{ steps.delta.outputs.q_any_changed }} steps: - name: Checkout the repository using git uses: actions/checkout@v4 @@ -111,6 +111,8 @@ jobs: - 'apps/cryptothrone.com/src/**' laser: - 'packages/laser/package.json' + q: + - 'packages/rust/q/README.md' debug: needs: ['alter', 'globals'] @@ -750,6 +752,17 @@ jobs: # pull_request_title: 'jedi-crates-minor-version-bump-${{ needs.globals.outputs.sha256head }}' # pull_request_body: 'Bumping up the minor version of the jedi package.' +# Q Release + + qrelease: + needs: ['deploy', 'alter', 'globals'] + if: needs.alter.outputs.q == 'true' + uses: ./.github/workflows/resuable/packages/rust-publish-crate.yml + with: + package: q + secrets: + CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} + python_atlas_publish: needs: ['deploy', 'alter', 'python_atlas_build'] name: Atlas KBVE Pypi Publish diff --git a/.github/workflows/resuable/.keep b/.github/workflows/resuable/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/resuable/packages/.keep b/.github/workflows/resuable/packages/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/resuable/packages/rust-publish-crate.yml b/.github/workflows/resuable/packages/rust-publish-crate.yml new file mode 100644 index 000000000..83e879a8e --- /dev/null +++ b/.github/workflows/resuable/packages/rust-publish-crate.yml @@ -0,0 +1,35 @@ +name: Rust Crate Publish + +on: + workflow_call: + inputs: + package: + required: true + type: string + secrets: + CRATES_TOKEN: + required: true + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: write + packages: write + issues: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Rust ToolChain + uses: dtolnay/rust-toolchain@stable + + - name: Cargo Login + run: cargo login ${{ secrets.CRATES_TOKEN }} + + - name: Cargo Publish + run: | + cargo publish -p ${{ inputs.package }} diff --git a/.github/workflows/rust-dll-tower-defense-build.yml b/.github/workflows/rust-dll-tower-defense-build.yml index f7c84a014..9d370fc0d 100644 --- a/.github/workflows/rust-dll-tower-defense-build.yml +++ b/.github/workflows/rust-dll-tower-defense-build.yml @@ -48,10 +48,6 @@ jobs: - name: List Downloaded Files run: ls -R temp_dll - - name: Extract DLL - run: | - unzip temp_dll/rust_godot_towerdefense.zip -d temp_dll - - name: Replace Existing DLL run: | cp temp_dll/rust_godot_towerdefense.dll apps/rentearth/rust_godot_towerdefense/godot/addons/tower-defense/windows/rust_godot_towerdefense.dll diff --git a/Cargo.lock b/Cargo.lock index b7f41ab8c..e4e0ccd5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5518,6 +5518,26 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "q" +version = "0.1.0" +dependencies = [ + "bevy_ecs", + "godot", + "http 1.1.0", + "infer", + "objc2 0.6.0", + "papaya", + "rand 0.8.5", + "raw-window-handle 0.6.2", + "rstar", + "serde", + "serde_json", + "windows 0.59.0", + "wry 0.46.3", + "wry 0.48.1", +] + [[package]] name = "qoi" version = "0.4.1" diff --git a/Cargo.toml b/Cargo.toml index 78c736409..940c5e951 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ members = [ 'apps/experimental/rust_wasm_embed', 'apps/experimental/rust_p16_gameserver', 'apps/rentearth/rust_godot_towerdefense', + 'packages/rust/q', ] [profile.dev] diff --git a/apps/rentearth/rust_godot_towerdefense/godot/addons/tower-defense/macos/librust_godot_towerdefense.dylib b/apps/rentearth/rust_godot_towerdefense/godot/addons/tower-defense/macos/librust_godot_towerdefense.dylib index ae17d0a5f..73854ff3d 100644 Binary files a/apps/rentearth/rust_godot_towerdefense/godot/addons/tower-defense/macos/librust_godot_towerdefense.dylib and b/apps/rentearth/rust_godot_towerdefense/godot/addons/tower-defense/macos/librust_godot_towerdefense.dylib differ diff --git a/packages/rust/q/Cargo.toml b/packages/rust/q/Cargo.toml new file mode 100644 index 000000000..c844ad507 --- /dev/null +++ b/packages/rust/q/Cargo.toml @@ -0,0 +1,51 @@ +[package] +name = "q" +authors = ["kbve", "h0lybyte"] +version = "0.1.0" +edition = "2021" +license = "MIT" +description = "Q is a Godot Helper Crate." +homepage = "https://kbve.com/" +repository = "https://github.com/KBVE/kbve/tree/main/packages/erust" +readme = "README.md" +rust-version = "1.75" + +[lib] +crate-type = ["cdylib"] + +[dependencies] +rand = "0.8" +godot = { version = "0.2.2", features = ["experimental-wasm", "lazy-function-tables"] } +bevy_ecs = { version = "0.15.1", features = ["default"] } +rstar = "0.12.2" +papaya = "0.1.8" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + + +[target."cfg(target_os = \"macos\")".dependencies] +objc2 = "0.6.0" +wry = { version = "0.46.2", features = ["transparent", "devtools"] } +raw-window-handle = "0.6.2" +http = "1.1.0" +infer = "0.16.0" + + +[target."cfg(target_os = \"windows\")".dependencies] +windows = { version = "0.59", features = [ + "Data_Xml_Dom", + "Win32_Security", + "Win32_System_Threading", + "Win32_UI_WindowsAndMessaging", +] } +wry = { version = "0.48.1", features = ["transparent", "devtools"] } +raw-window-handle = "0.6.2" +http = "1.1.0" +infer = "0.16.0" + + +[profile.release] +opt-level = 'z' +lto = "fat" +codegen-units = 1 +debug = false diff --git a/packages/rust/q/README.md b/packages/rust/q/README.md new file mode 100644 index 000000000..67eb6e187 --- /dev/null +++ b/packages/rust/q/README.md @@ -0,0 +1,3 @@ +## Q + +Q is a Godot Extensions Helper Library \ No newline at end of file diff --git a/packages/rust/q/project.json b/packages/rust/q/project.json new file mode 100644 index 000000000..9552b7f9d --- /dev/null +++ b/packages/rust/q/project.json @@ -0,0 +1,46 @@ +{ + "name": "q", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "sourceRoot": "packages/rust/q/src", + "targets": { + "build": { + "executor": "@monodon/rust:build", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + }, + "configurations": { + "production": { + "release": true + } + } + }, + "test": { + "executor": "@monodon/rust:test", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + }, + "configurations": { + "production": { + "release": true + } + } + }, + "lint": { + "executor": "@monodon/rust:lint", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + } + } + }, + "tags": [] +} diff --git a/packages/rust/q/src/lib.rs b/packages/rust/q/src/lib.rs new file mode 100644 index 000000000..1b4a90c93 --- /dev/null +++ b/packages/rust/q/src/lib.rs @@ -0,0 +1,8 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + let result = 2 + 2; + assert_eq!(result, 4); + } +}