Skip to content

Commit 0917246

Browse files
committed
test github action
1 parent 469c078 commit 0917246

File tree

12 files changed

+340
-2
lines changed

12 files changed

+340
-2
lines changed

.github/workflows/ci.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: "Test Suite"
2+
on:
3+
push:
4+
pull_request:
5+
6+
jobs:
7+
formatting:
8+
name: rust-fmt
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions-rust-lang/setup-rust-toolchain@v1
13+
with:
14+
components: rustfmt
15+
- name: Rustfmt Check
16+
uses: actions-rust-lang/rustfmt@v1
17+
18+
clippy:
19+
name: rust-clippy
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
- uses: actions-rust-lang/setup-rust-toolchain@v1
24+
with:
25+
components: clippy
26+
- name: Clippy Check
27+
run: cargo clippy -- -D warnings
28+
29+
test:
30+
name: rust-test
31+
runs-on: ${{ matrix.runner }}
32+
needs: [formatting, clippy]
33+
strategy:
34+
matrix:
35+
include:
36+
- runner: ubuntu-latest
37+
rust-target: x86_64-unknown-linux-gnu
38+
executable-name: hydroxide-linux-x86_64
39+
path: hydroxide
40+
- runner: ubuntu-latest
41+
rust-target: aarch64-unknown-linux-gnu
42+
executable-name: hydroxide-linux-aarch64
43+
path: hydroxide
44+
- runner: macos-latest
45+
rust-target: x86_64-apple-darwin
46+
executable-name: hydroxide-macos-x86_64
47+
path: hydroxide
48+
- runner: macos-latest
49+
rust-target: aarch64-apple-darwin
50+
executable-name: hydroxide-macos-aarch64
51+
path: hydroxide
52+
- runner: windows-latest
53+
rust-target: x86_64-pc-windows-msvc
54+
executable-name: hydroxide-windows-x86_64
55+
path: hydroxide.exe
56+
- runner: windows-latest
57+
rust-target: aarch64-pc-windows-msvc
58+
executable-name: hydroxide-windows-aarch64
59+
path: hydroxide.exe
60+
61+
steps:
62+
- uses: actions/checkout@v4
63+
- uses: actions-rust-lang/setup-rust-toolchain@v1
64+
with:
65+
toolchain: ${{ matrix.rust-target }}
66+
- run: cargo build --release --target ${{ matrix.rust-target }}
67+
- run: cargo test --all-features
68+
- name: Upload Build Artifact
69+
uses: actions/upload-artifact@v4
70+
with:
71+
name: ${{ matrix.executable-name }}
72+
path: target/${{ matrix.rust-target }}/release/${{ matrix.path }}

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ Cargo.lock
1818
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
1919
# and can be added to the global gitignore or merged into this file. For a more nuclear
2020
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
21-
#.idea/
21+
#.idea/
22+
23+
# Added by cargo
24+
25+
/target

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/Hydroxide.iml

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.rusty-hook.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[hooks]
2+
pre-commit = "cargo fmt -- --check && cargo clippy -- -D warnings"
3+
pre-push = "cargo test"
4+
5+
[logging]
6+
verbose = true

Cargo.toml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[package]
2+
name = "hydroxide"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
axum = "0.8.1"
8+
tokio = { version = "1.43.0", features = ["rt-multi-thread", "signal"] }
9+
tracing = "0.1.41"
10+
tracing-appender = "0.2.3"
11+
tracing-subscriber = "0.3.19"
12+
13+
[dev-dependencies]
14+
rusty-hook = "^0.11.2"
15+
16+
17+
[lints.rust]
18+
unsafe_code = "warn"
19+
unused_results = "warn"
20+
missing_debug_implementations = "warn"
21+
semicolon_in_expressions_from_macros = "warn"
22+
single_use_lifetimes = "warn"
23+
trivial_casts = "warn"
24+
trivial_numeric_casts = "warn"
25+
variant_size_differences = "warn"
26+
27+
[profile.dev]
28+
debug-assertions = true

README.md

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,76 @@
1-
# Hydroxide
1+
<div align="center">
2+
3+
# Hydroxide :droplet:
4+
### A Git server implementation for the Harbr Foundation, built in Rust and powered by [git2](https://github.com/rust-lang/git2-rs).
5+
6+
[Roadmap](#roadmap)[Documentation](#documentation)[FAQ](#faq)
7+
8+
[![License: MIT](https://badgen.net/static/license/MIT/blue)](LICENSE)
9+
[![Rust](https://img.shields.io/badge/language-Rust-blue)](https://www.rust-lang.org/)
10+
11+
<sub>
12+
13+
:warning: **Experimental Build** - Not Production Ready! :warning:
14+
15+
</sub>
16+
17+
</div>
18+
19+
---
20+
21+
## Features
22+
23+
- **High Performance:** Optimized for speed and reliability.
24+
- **Modern Rust Implementation:** Taking advantage of Rust's safety and concurrency features.
25+
- **Extensible:** Designed to be modular and developer-friendly.
26+
- **Community-Driven:** Actively maintained and improved by the Harbr Foundation and community contributors.
27+
28+
---
29+
30+
## Roadmap
31+
32+
### :dart: Core Milestones
33+
34+
- [ ] **Implement Git Protocol:** Core functionalities to interact with Git repositories.
35+
- [ ] **Request Handling:** Develop a robust request processing layer.
36+
- [ ] **Authentication & Authorization:** Secure access management for users.
37+
- [ ] **Repository Cloning & Pushing:** Efficient handling of Git operations.
38+
- [ ] **Logging & Metrics:** Comprehensive logging and analytics support.
39+
- [ ] **Testing & Documentation:** Extensive testing suite and detailed documentation.
40+
41+
---
42+
43+
## Documentation
44+
45+
Detailed documentation is not yet fully available.
46+
However; you can find our current documentation on our [Wiki]().
47+
48+
49+
---
50+
51+
## FAQ
52+
53+
54+
<details>
55+
<summary>
56+
<strong>Is Hydroxide ready for production use?</strong>
57+
</summary>
58+
59+
**No.**
60+
Hydroxide is currently in an experimental phase. We recommend using it only for testing and development while improvements continue to be implemented.
61+
62+
</details>
63+
64+
---
65+
66+
## Contributing
67+
68+
Contributions from the community are highly encouraged!
69+
If you'd like to contribute, please check out our [Contributing Guidelines](CONTRIBUTING.md) and open a pull request.
70+
71+
---
72+
73+
## License
74+
75+
Hydroxide is licensed under the [MIT License](LICENSE).
76+
By contributing, you agree to license your contributions under the same terms.

0 commit comments

Comments
 (0)