From 2f17df80649e2f0d20d99cabbe927ea543ce746c Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sun, 23 Nov 2025 17:58:05 +0100 Subject: [PATCH] Add CI pipelines and pre-commit hooks Now we have a very basic CI pipeline for running tests and executing linter, as well as a pre-commit hook that is checking basic code related stuff. The pre-commit hook is executed as a part of pipelines as well Signed-off-by: Nikolai Rodionov --- .pre-commit-config.yaml | 12 ++++++++++++ .woodpecker/code_tests.yaml | 13 +++++++++++++ .woodpecker/pre_commit_test.yaml | 8 ++++++++ Cargo.lock | 7 +++++++ LICENSE | 18 +++++++++--------- README.md | 1 - 6 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 .pre-commit-config.yaml create mode 100644 .woodpecker/code_tests.yaml create mode 100644 .woodpecker/pre_commit_test.yaml create mode 100644 Cargo.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..6eef1a7 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,12 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-added-large-files + - id: check-merge-conflict + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: https://github.com/codespell-project/codespell + rev: v2.4.1 + hooks: + - id: codespell diff --git a/.woodpecker/code_tests.yaml b/.woodpecker/code_tests.yaml new file mode 100644 index 0000000..aa991da --- /dev/null +++ b/.woodpecker/code_tests.yaml @@ -0,0 +1,13 @@ +when: + event: + - push +steps: + - name: Clippy linter + image: rust:1.91.1-bullseye + commands: + - rustup component add clippy + - cargo clippy + - name: Unit tests + image: rust:1.91.1-bullseye + commands: + - cargo test diff --git a/.woodpecker/pre_commit_test.yaml b/.woodpecker/pre_commit_test.yaml new file mode 100644 index 0000000..ec22414 --- /dev/null +++ b/.woodpecker/pre_commit_test.yaml @@ -0,0 +1,8 @@ +when: + event: + - push +steps: + - name: Pre commit validation + image: codeberg.org/sp1thas/woodpecker-ci-pre-commit-runner + settings: + args: "--all-files" diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..d02558c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "termix" +version = "0.1.0" diff --git a/LICENSE b/LICENSE index 3aa532f..2e113f1 100644 --- a/LICENSE +++ b/LICENSE @@ -2,17 +2,17 @@ MIT License Copyright (c) 2025 badhouseplants -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -associated documentation files (the "Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 75878aa..1ce0e3f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ # termix -