aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJohannes Stoelp <johannes.stoelp@gmail.com>2023-12-08 00:49:28 +0100
committerJohannes Stoelp <johannes.stoelp@gmail.com>2023-12-08 00:53:19 +0100
commitb5aea3fb5fcce31599e3d7397d5413a934132231 (patch)
tree3cc276b4a42d8864ede5283bc2c51eeaafff1228
parentd233e44b04da45dcc99980662db6d3776d9f4a10 (diff)
downloadjuicebox-asm-b5aea3fb5fcce31599e3d7397d5413a934132231.tar.gz
juicebox-asm-b5aea3fb5fcce31599e3d7397d5413a934132231.zip
ci: introduce Makefile
Add CI checks into ci/Makefile and update gh actions. Motivation is, that makefile can also be added as pre-commit hook for local development: > echo 'make -C ci' > .git/hooks/pre-commit; chmod +x .git/hooks/pre-commit
-rw-r--r--.github/workflows/tests.yml13
-rw-r--r--README.md8
-rw-r--r--ci/Makefile19
3 files changed, 35 insertions, 5 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 1c025c0..bdd74ed 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -16,16 +16,19 @@ jobs:
- uses: actions/checkout@v2
- name: Build
- run: cargo build --verbose
+ run: make -C ci build
- name: Build examples
- run: cargo build --verbose --examples
+ run: make -C ci build-examples
- name: Check fmt
- run: cargo fmt --check
+ run: make -C ci check-fmt
+
+ - name: Check clippy lints
+ run: make -C ci check-clippy
- name: Run tests
- run: cargo test --verbose
+ run: make -C ci check-test
- name: Run example tests
- run: cargo test --examples --verbose
+ run: make -C ci check-examples
diff --git a/README.md b/README.md
index d0760d2..8d5311d 100644
--- a/README.md
+++ b/README.md
@@ -58,5 +58,13 @@ The [`examples/`](examples/) folder provides additional examples:
- [`add.rs`](examples/add.rs) jit compile a function calling another function compiled into the example.
- [`tiny_vm.rs`](examples/tiny_vm.rs) define a minimal `virtual machine (VM)` which demonstrates a simple jit compiler for translating VM guest software.
+## git hook for local development
+
+The [`ci/`] checks can be run automatically during local development by
+installing the following `pre-commit` git hook.
+```sh
+echo 'make -C ci' > .git/hooks/pre-commit; chmod +x .git/hooks/pre-commit
+```
+
## License
This project is licensed under the [MIT](LICENSE) license.
diff --git a/ci/Makefile b/ci/Makefile
new file mode 100644
index 0000000..69d6c97
--- /dev/null
+++ b/ci/Makefile
@@ -0,0 +1,19 @@
+all: build build-examples check-fmt check-clippy check-tests check-examples
+
+build:
+ cargo build
+
+build-examples:
+ cargo build --examples
+
+check-fmt:
+ cargo fmt --check
+
+check-clippy:
+ cargo clippy -- -Dwarnings -Aclippy::new_without_default
+
+check-tests:
+ cargo test
+
+check-examples:
+ cargo test --examples