diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml
new file mode 100644
index 0000000..152cc94
--- /dev/null
+++ b/.github/workflows/CI.yaml
@@ -0,0 +1,44 @@
+name: "CI"
+on:
+ push:
+ pull_request:
+
+jobs:
+ test:
+ name: cargo test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions-rust-lang/setup-rust-toolchain@v1
+ - run: cargo test --all-features
+
+ # Check formatting with rustfmt
+ formatting:
+ name: cargo fmt
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ # Ensure rustfmt is installed and setup problem matcher
+ - uses: actions-rust-lang/setup-rust-toolchain@v1
+ with:
+ components: rustfmt
+ - name: Rustfmt Check
+ uses: actions-rust-lang/rustfmt@v1
+
+ # Check licensing and produce a list of licenses
+ licensing:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install cargo-about
+ uses: baptiste0928/cargo-install@v3
+ with:
+ crate: cargo-about
+ version: "0.6.4"
+ - name: Run license check
+ run: cargo about generate about.hbs > license.html
+ - name: Archive license file
+ uses: actions/upload-artifact@v4
+ with:
+ name: license
+ path: license.html
\ No newline at end of file
diff --git a/about.hbs b/about.hbs
new file mode 100644
index 0000000..fca5d35
--- /dev/null
+++ b/about.hbs
@@ -0,0 +1,72 @@
+
+
+
+
+
+ Third Party Licenses
+
+
+
+
+
+
Third Party Licenses
+
This page lists the licenses of the projects used in warp.
+
+
+ Overview of licenses:
+
+ {{#each overview}}
+ - {{name}} ({{count}})
+ {{/each}}
+
+
+ All license text:
+
+ {{#each licenses}}
+ -
+
{{name}}
+ Used by:
+
+ {{text}}
+
+ {{/each}}
+
+
+
+
+
\ No newline at end of file
diff --git a/about.toml b/about.toml
new file mode 100644
index 0000000..cd1ac3f
--- /dev/null
+++ b/about.toml
@@ -0,0 +1,6 @@
+# Used in conjuction with `cargo-about` to generate a list of licenses.
+accepted = [
+ "Apache-2.0",
+ "MIT",
+ "Unicode-DFS-2016"
+]
\ No newline at end of file