From d082729a664b479ca020e81596db06ae34fd00d4 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Sun, 19 Feb 2023 19:48:59 +0100 Subject: Add commit linting - add gommit configuration - add wrapper script Signed-off-by: Georg Pfuetzenreuter --- .gommit.toml | 23 +++++++++++++++++++++++ bin/lint-commits.pl | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .gommit.toml create mode 100755 bin/lint-commits.pl diff --git a/.gommit.toml b/.gommit.toml new file mode 100644 index 0000000..eaffd69 --- /dev/null +++ b/.gommit.toml @@ -0,0 +1,23 @@ +[config] +exclude-merge-commits=true +check-summary-length=true +summary-length=50 + +[matchers] +all='^(?:(?:Add|Remove|Update|Enable|Disable) |(?:role\.\w+|profile\.\w+): )[\w ]+\n(?:(?:\n\- .*)+\n)?(?:\nSigned-off-by: \w+ \w+ <.*@.*>)' + +[examples] +summary_variant_one=""" +[Add|Remove|Update|Enable|Disable] this and that +""" + +summary_variant_two=""" +[role.$role|profile.$profile]: this and that +""" + +body_message=""" +- an optional body line +- another optional body line + +Signed-off-by: Max Mandatory +""" diff --git a/bin/lint-commits.pl b/bin/lint-commits.pl new file mode 100755 index 0000000..0b17f94 --- /dev/null +++ b/bin/lint-commits.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +use v5.26; + +my ($branch_main) = @ARGV; + +if(!$branch_main){ + $branch_main = "master" +} + +`git ls-remote origin $branch_main` =~ /([a-f0-9]{40})/; + +my $refHead = `git rev-parse HEAD`; +my $refTail = $1; + +chomp($refHead); +chomp($refTail); + +if ($refHead eq $refTail) { + exit 0; +} + +system "gommit check range $refTail $refHead"; + +if ($? > 0) { + exit 1; +} -- cgit v1.2.3 From 68e41ceab84c614e67745ef5dba9640f2ddac795 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Sun, 19 Feb 2023 20:10:34 +0100 Subject: Enable commit linting Signed-off-by: Georg Pfuetzenreuter --- .pipeline.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.pipeline.yml b/.pipeline.yml index 1c2352f..cdbafd4 100644 --- a/.pipeline.yml +++ b/.pipeline.yml @@ -3,7 +3,17 @@ skip_clone: true pipeline: - lint: + commit_lint: + image: registry.opensuse.org/home/crameleon/libertacasa/containers/containerfile/libertacasa/pipeline-gommit:latest + secrets: [ci_netrc_username, ci_netrc_password, ci_netrc_machine] + when: + event: [push] + commands: + - git clone --single-branch -b $CI_COMMIT_BRANCH $CI_REPO_LINK ../salt-libertacasa-commit-linting + - cd ../salt-libertacasa-commit-linting + - bin/lint-commits.pl production + + code_lint: image: registry.opensuse.org/home/crameleon/libertacasa/containers/containerfile/libertacasa/pipeline-lint:latest secrets: [ci_netrc_username, ci_netrc_password, ci_netrc_machine] when: -- cgit v1.2.3