[PATCH] lint: Add pre-merge checks using pre-push hook
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Jun 14 18:02:30 CEST 2024
Quoting Kieran Bingham (2024-06-14 16:57:18)
> Wrap the existing libcamera pre-push hook into a lint task to make sure
> that the rules we apply to merging are conveyed as part of the CI jobs.
>
A couple of test/examples:
Successful pipeline: https://gitlab.freedesktop.org/kbingham/libcamera/-/pipelines/1201492
Failed pipeline: https://gitlab.freedesktop.org/kbingham/libcamera/-/pipelines/1201497
--
Kieran
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> .gitlab-ci/lint-pre-push.sh | 27 +++++++++++++++++++++++++++
> gitlab-ci.yml | 16 +++++++++++++++-
> 2 files changed, 42 insertions(+), 1 deletion(-)
> create mode 100755 .gitlab-ci/lint-pre-push.sh
>
> diff --git a/.gitlab-ci/lint-pre-push.sh b/.gitlab-ci/lint-pre-push.sh
> new file mode 100755
> index 000000000000..8a4283cc0f15
> --- /dev/null
> +++ b/.gitlab-ci/lint-pre-push.sh
> @@ -0,0 +1,27 @@
> +#!/bin/bash
> +
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# SPDX-FileCopyrightText: © 2023 Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> +#
> +# Pre-merge checks
> +
> +set -e
> +
> +source "$(dirname "$0")/lib.sh"
> +
> +libcamera_premerge() {
> + echo "Running Pre-merge checks for $CI_COMMIT_REF_NAME ($base..$CI_COMMIT_SHA)"
> +
> + # Wrap parameters as git would send them to the pre-push hooks directly.
> + echo "$CI_COMMIT_REF_NAME $CI_COMMIT_SHA refs/heads/integration/pre-push-lint-test $base" \
> + | ./utils/hooks/pre-push origin "$CI_DEFAULT_BRANCH"
> +}
> +
> +base=$(find_base origin/$CI_DEFAULT_BRANCH $CI_COMMIT_SHA)
> +
> +if [[ $base == $CI_COMMIT_SHA ]] ; then
> + echo "No commit to test, skipping"
> + exit 0
> +fi
> +
> +run libcamera_premerge
> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
> index 50b81e591458..d9b31ec8259e 100644
> --- a/gitlab-ci.yml
> +++ b/gitlab-ci.yml
> @@ -311,7 +311,7 @@ build-package:cros:
> dotenv: env
>
> # ------------------------------------------------------------------------------
> -# Lint stage - Run checkstyle.py
> +# Lint stage - Run checkstyle.py and check merge suitability
> # ------------------------------------------------------------------------------
>
> lint:
> @@ -330,6 +330,20 @@ lint:
> script:
> - $CI_PROJECT_DIR/.gitlab-ci/lint-libcamera.sh
>
> +merge-check:
> + extends:
> + - .fdo.distribution-image at debian
> + - .history-jobs
> + - .libcamera-ci.debian:12
> + - .libcamera-ci.scripts
> + stage: lint
> + needs:
> + - job: container-debian:12
> + artifacts: false
> + script:
> + - $CI_PROJECT_DIR/.gitlab-ci/lint-pre-push.sh
> +
> +
> # ------------------------------------------------------------------------------
> # Test stage - Run unit tests and hardware tests
> # ------------------------------------------------------------------------------
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list