From eb3fe35b0684ee6e2c4c514a49e8151c00ba59a0 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Wed, 17 Jun 2020 10:38:06 -0400 Subject: [PATCH 1/2] ci: Import latest ci-commitmessage-submodules from rpm-ostree Especially for https://github.com/coreos/rpm-ostree/pull/2079. --- ci/ci-commitmessage-submodules.sh | 35 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/ci/ci-commitmessage-submodules.sh b/ci/ci-commitmessage-submodules.sh index 35d828e4..edc0d780 100755 --- a/ci/ci-commitmessage-submodules.sh +++ b/ci/ci-commitmessage-submodules.sh @@ -1,5 +1,8 @@ #!/bin/bash -set -euo pipefail +set -xeuo pipefail + +dn=$(dirname $0) +. ${dn}/libbuild.sh # Copyright 2017 Colin Walters # Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php) @@ -13,11 +16,8 @@ set -euo pipefail # It's very common for people to accidentally change submodules, and having this # requirement is a small hurdle to pass. -# if running under PAPR, use the branch/PR HEAD actually -# being tested rather than the merge sha -HEAD=${PAPR_COMMIT:-HEAD} -dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +# If passed the commit, use that. Otherwise, just use HEAD. +HEAD=${1:-HEAD} tmpd=$(mktemp -d) touch ${tmpd}/.tmpdir @@ -30,8 +30,8 @@ cleanup_tmp() { trap cleanup_tmp EXIT if ! [ -x /usr/bin/git ]; then - pkg_upgrade - pkg_install git + pkg_upgrade + pkg_install git fi gitdir=$(realpath $(pwd)) @@ -42,17 +42,34 @@ cp -a ${gitdir} ${tmpd}/workdir cd ${tmpd}/workdir git log --pretty=oneline origin/master..$HEAD | while read logline; do commit=$(echo ${logline} | cut -f 1 -d ' ') + # For merge commits, just check that they're empty (i.e. no conflict + # resolution was needed). Otherwise, let's just error out. Conflicts should + # be resolved by rebasing the PR. + # https://stackoverflow.com/questions/3824050#comment82244548_13956422 + if [ "$(git rev-list --no-walk --count --merges ${commit})" -ne 0 ]; then + if [ -n "$(git diff-tree ${commit})" ]; then + echo "error: non-empty git merge: resolve conflicts by rebasing!" + exit 1 + fi + echo "Commit ${commit} is an empty merge commit; ignoring..." + continue + fi git diff --name-only ${commit}^..${commit} > ${tmpd}/diff.txt git log -1 ${commit} > ${tmpd}/log.txt echo "Validating commit for submodules: $commit" + sed -e 's,^,# ,' < ${tmpd}/log.txt git checkout -q "${commit}" git submodule update --init git submodule foreach --quiet 'echo $path'| while read submodule; do if grep -q -e '^'${submodule} ${tmpd}/diff.txt; then echo "Commit $commit modifies submodule: $submodule" expected_match="Update submodule: $submodule" + # check if it's from dependabot + if grep -q -e '^Author: dependabot' ${tmpd}/log.txt; then + echo "Commit $commit contains bump from Dependabot" + continue + fi if ! grep -q -e "$expected_match" ${tmpd}/log.txt; then - sed -e 's,^,# ,' < ${tmpd}/log.txt echo "error: Commit message for ${commit} changes a submodule, but does not match regex ${expected_match}" exit 1 fi From 516c1340b3f8c352f487abc67c9d1f4ab8fac975 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Wed, 17 Jun 2020 15:48:31 -0400 Subject: [PATCH 2/2] ci: Remove libpaprci/ directory And move everything that was in it directly in `ci/`. There's a bunch more cleanups here that we need to do (and more changes to upstream from the rpm-ostree copies of this). --- ci/{libpaprci => }/Makefile.dist-packaging | 0 ci/build-check.sh | 2 +- ci/build-rpm.sh | 7 +++---- ci/build.sh | 2 +- ci/flatpak.sh | 2 +- ci/installdeps.sh | 2 +- ci/{libpaprci => }/libbuild.sh | 0 ci/{libpaprci => }/make-git-snapshot.sh | 0 ci/provision-prep.sh | 2 +- ci/{libpaprci => }/rpmbuild-cwd | 0 ci/rpmostree.sh | 2 +- 11 files changed, 9 insertions(+), 10 deletions(-) rename ci/{libpaprci => }/Makefile.dist-packaging (100%) rename ci/{libpaprci => }/libbuild.sh (100%) rename ci/{libpaprci => }/make-git-snapshot.sh (100%) rename ci/{libpaprci => }/rpmbuild-cwd (100%) diff --git a/ci/libpaprci/Makefile.dist-packaging b/ci/Makefile.dist-packaging similarity index 100% rename from ci/libpaprci/Makefile.dist-packaging rename to ci/Makefile.dist-packaging diff --git a/ci/build-check.sh b/ci/build-check.sh index af276ef0..aed8ba7e 100755 --- a/ci/build-check.sh +++ b/ci/build-check.sh @@ -4,7 +4,7 @@ set -xeuo pipefail dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh ${dn}/build.sh topdir=$(git rev-parse --show-toplevel) resultsdir=$(mktemp -d) diff --git a/ci/build-rpm.sh b/ci/build-rpm.sh index 5d096333..1b67285e 100755 --- a/ci/build-rpm.sh +++ b/ci/build-rpm.sh @@ -4,8 +4,7 @@ set -xeuo pipefail dn=$(dirname $0) -paprcidir=${dn}/libpaprci -. ${paprcidir}/libbuild.sh +. ${dn}/libbuild.sh # Auto-provision bootstrap resources if run as root (normally in CI) if test "$(id -u)" == 0; then @@ -34,13 +33,13 @@ case "${CONFIGOPTS:-}" in esac # TODO: Use some form of rpm's --build-in-place to skip archive-then-unpack? -make -f ${paprcidir}/Makefile.dist-packaging srpm PACKAGE=libostree DISTGIT_NAME=ostree +make -f ${dn}/Makefile.dist-packaging srpm PACKAGE=libostree DISTGIT_NAME=ostree if test "$(id -u)" == 0; then pkg_builddep *.src.rpm else echo "NOTE: Running as non-root, assuming build dependencies are installed" fi -if ! ${paprcidir}/rpmbuild-cwd --rebuild *.src.rpm; then +if ! ${dn}/rpmbuild-cwd --rebuild *.src.rpm; then find . -type f -name config.log -exec cat {} \; exit 1 fi diff --git a/ci/build.sh b/ci/build.sh index 09015074..4ff6eaa5 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -4,7 +4,7 @@ set -xeuo pipefail dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh ${dn}/installdeps.sh diff --git a/ci/flatpak.sh b/ci/flatpak.sh index 989b1235..e155d897 100755 --- a/ci/flatpak.sh +++ b/ci/flatpak.sh @@ -9,7 +9,7 @@ set -xeuo pipefail FLATPAK_TAG=1.4.1 dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh codedir=$(pwd) diff --git a/ci/installdeps.sh b/ci/installdeps.sh index 4fc3280f..7d7c723e 100755 --- a/ci/installdeps.sh +++ b/ci/installdeps.sh @@ -12,7 +12,7 @@ if [ -n "${SKIP_INSTALLDEPS:-}" ]; then fi dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh pkg_upgrade pkg_install_buildroot diff --git a/ci/libpaprci/libbuild.sh b/ci/libbuild.sh similarity index 100% rename from ci/libpaprci/libbuild.sh rename to ci/libbuild.sh diff --git a/ci/libpaprci/make-git-snapshot.sh b/ci/make-git-snapshot.sh similarity index 100% rename from ci/libpaprci/make-git-snapshot.sh rename to ci/make-git-snapshot.sh diff --git a/ci/provision-prep.sh b/ci/provision-prep.sh index 30825802..96a2041e 100755 --- a/ci/provision-prep.sh +++ b/ci/provision-prep.sh @@ -4,7 +4,7 @@ set -xeuo pipefail dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh pkg_upgrade pkg_install_buildroot pkg_install sudo which attr fuse strace \ diff --git a/ci/libpaprci/rpmbuild-cwd b/ci/rpmbuild-cwd similarity index 100% rename from ci/libpaprci/rpmbuild-cwd rename to ci/rpmbuild-cwd diff --git a/ci/rpmostree.sh b/ci/rpmostree.sh index 27fefaf6..0a5f5df9 100755 --- a/ci/rpmostree.sh +++ b/ci/rpmostree.sh @@ -9,7 +9,7 @@ set -xeuo pipefail RPMOSTREE_TAG=v2019.4 dn=$(dirname $0) -. ${dn}/libpaprci/libbuild.sh +. ${dn}/libbuild.sh codedir=$(pwd)