summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2020-04-23 13:23:21 +0100
committerDaniel P. Berrangé <berrange@redhat.com>2020-05-22 12:22:00 +0100
commit88d19fb2100aa207d6f2873ed3649e7a008decb1 (patch)
treede56248b4a69ddac7aea20dc7262f22a4235a7b3
parentc12131ef30e745909a02bab6b3878465411fdbb0 (diff)
gitlab: convert to use the common DCO check image
Instead of building our own DCO check image, just reuse the common image provided by the libvirt-ci project. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r--.gitlab-ci.yml26
-rwxr-xr-xscripts/require-dco.py99
2 files changed, 15 insertions, 110 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5b30410..6fd565e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,17 +1,21 @@
stages:
+ - containers
- prebuild
-# Check that all commits are signed-off for the DCO. Skip
-# on master branch and -maint branches, since we only need
-# to test developer's personal branches.
-dco:
+# Check that all commits are signed-off for the DCO.
+# Skip on "virt-viewer" namespace, since we only need to run
+# this test on developer's personal forks from which
+# merge requests are submitted
+check-dco:
stage: prebuild
- # XXX change to a virt-viewer specific image later
- image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
+ image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
script:
- - ./scripts/require-dco.py
- only:
- - branches
+ - /check-dco virt-viewer
except:
- - /^v.*-maint$/
- - master
+ variables:
+ - $CI_PROJECT_NAMESPACE == 'virt-viewer'
+
+ctr-check-dco:
+ <<: *container_job_definition
+ variables:
+ NAME: check-dco
diff --git a/scripts/require-dco.py b/scripts/require-dco.py
deleted file mode 100755
index 7e6b51d..0000000
--- a/scripts/require-dco.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python3
-
-# require-dco.py: validate all commits are signed off
-#
-# Copyright (C) 2020 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library. If not, see
-# <http://www.gnu.org/licenses/>.
-
-import os
-import os.path
-import sys
-import subprocess
-
-cwd = os.getcwd()
-reponame = os.path.basename(cwd)
-repourl = "https://gitlab.com/virt-viewer/%s.git" % reponame
-
-subprocess.check_call(["git", "remote", "add", "dcocheck", repourl])
-subprocess.check_call(["git", "fetch", "dcocheck", "master"],
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL)
-
-ancestor = subprocess.check_output(["git", "merge-base", "dcocheck/master", "HEAD"],
- universal_newlines=True)
-
-ancestor = ancestor.strip()
-
-subprocess.check_call(["git", "remote", "rm", "dcocheck"])
-
-errors = False
-
-print("\nChecking for 'Signed-off-by: NAME <EMAIL>' on all commits since %s...\n" % ancestor)
-
-log = subprocess.check_output(["git", "log", "--format=%H %s", ancestor + "..."],
- universal_newlines=True)
-
-if log == "":
- commits = []
-else:
- commits = [[c[0:40], c[41:]] for c in log.strip().split("\n")]
-
-for sha, subject in commits:
-
- msg = subprocess.check_output(["git", "show", "-s", sha],
- universal_newlines=True)
- lines = msg.strip().split("\n")
-
- print("🔍 %s %s" % (sha, subject))
- sob = False
- for line in lines:
- if "Signed-off-by:" in line:
- sob = True
- if "localhost" in line:
- print(" ❌ FAIL: bad email in %s" % line)
- errors = True
-
- if not sob:
- print(" ❌ FAIL missing Signed-off-by tag")
- errors = True
-
-if errors:
- print("""
-
-❌ ERROR: One or more commits are missing a valid Signed-off-By tag.
-
-
-This project requires all contributors to assert that their contributions
-are provided in compliance with the terms of the Developer's Certificate
-of Origin 1.1 (DCO):
-
- https://developercertificate.org/
-
-To indicate acceptance of the DCO every commit must have a tag
-
- Signed-off-by: REAL NAME <EMAIL>
-
-This can be achieved by passing the "-s" flag to the "git commit" command.
-
-To bulk update all commits on current branch "git rebase" can be used:
-
- git rebase -i master -x 'git commit --amend --no-edit -s'
-
-""")
-
- sys.exit(1)
-
-sys.exit(0)