From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Cc: Taylor Blau <me@ttaylorr.com>, Junio C Hamano <gitster@pobox.com>,
Phillip Wood <phillip.wood123@gmail.com>,
Oswald Buddenhagen <oswald.buddenhagen@gmx.de>,
Victoria Dye <vdye@github.com>
Subject: [PATCH v5 0/8] ci: add support for GitLab CI
Date: Wed, 1 Nov 2023 14:02:38 +0100 [thread overview]
Message-ID: <cover.1698843660.git.ps@pks.im> (raw)
In-Reply-To: <cover.1698305961.git.ps@pks.im>
[-- Attachment #1: Type: text/plain, Size: 7811 bytes --]
Hi,
this is the fifth version of my patch series that introduces support for
GitLab CI.
There are only minor changes compared to v4:
- Patch 5: Fixed a typo in the commit message. Furthermore, I've
dropped the note about `export VAR=value` being a Bashism.
- Patch 5: Fixed the accidentally-dropped "windows_nt" case.
- Patch 5: Introduce the JOBS variable right away so that there is
less churn in the patch that introduces GitLab CI.
- Patch 8: Moved `DEBIAN_FRONTEND` into the "linux-*" case to make
clear that it shouldn't impact anything else.
- Patch 8: Dropped the paragraph about GitLab CI not being a first
class citizen based on Junio's feedback. This setup is going to be
actively used (at least) by us at GitLab, and thus we're also
going to maintain it.
After both Junio's and Victoria's feedback I've kept `.gitlab-ci.yml` in
its canonical location.
The pipeline for this version can be found at [1].
Thanks for all the discussion and feedback so far!
Patrick
[1]: https://gitlab.com/gitlab-org/git/-/pipelines/1057566736
Patrick Steinhardt (8):
ci: reorder definitions for grouping functions
ci: make grouping setup more generic
ci: group installation of Docker dependencies
ci: split out logic to set up failed test artifacts
ci: unify setup of some environment variables
ci: squelch warnings when testing with unusable Git repo
ci: install test dependencies for linux-musl
ci: add support for GitLab CI
.gitlab-ci.yml | 53 +++++++++
ci/install-docker-dependencies.sh | 23 +++-
ci/lib.sh | 191 +++++++++++++++++++++---------
ci/print-test-failures.sh | 6 +
t/lib-httpd.sh | 17 ++-
5 files changed, 234 insertions(+), 56 deletions(-)
create mode 100644 .gitlab-ci.yml
Range-diff against v4:
1: 8595fe5016a = 1: 0ba396f2a33 ci: reorder definitions for grouping functions
2: 7358a943392 = 2: 821cfcd6125 ci: make grouping setup more generic
3: 6d842592c6f = 3: 6e5bcf143c8 ci: group installation of Docker dependencies
4: e15651b3f5d = 4: 2182acf5bfc ci: split out logic to set up failed test artifacts
5: a64799b6e25 ! 5: 6078aea246d ci: unify setup of some environment variables
@@ Metadata
## Commit message ##
ci: unify setup of some environment variables
- Both GitHub Actions and Azue Pipelines set up the environment variables
+ Both GitHub Actions and Azure Pipelines set up the environment variables
GIT_TEST_OPTS, GIT_PROVE_OPTS and MAKEFLAGS. And while most values are
actually the same, the setup is completely duplicate. With the upcoming
support for GitLab CI this duplication would only extend even further.
@@ Commit message
`--no-bin-wrappers`. Interestingly though, we did so _after_
already having exported the respective environment variables.
- - We stop using `export VAR=value` syntax, which is a Bashism. It's
- not quite worth it as we still use this syntax all over the place,
- but it doesn't hurt readability either.
-
Signed-off-by: Patrick Steinhardt <ps@pks.im>
## ci/lib.sh ##
@@ ci/lib.sh: then
- test windows_nt != "$CI_OS_NAME" ||
- GIT_TEST_OPTS="--no-chain-lint --no-bin-wrappers $GIT_TEST_OPTS"
+ GIT_TEST_OPTS="--write-junit-xml"
++ JOBS=10
elif test true = "$GITHUB_ACTIONS"
then
CI_TYPE=github-actions
@@ ci/lib.sh: then
- test windows != "$CI_OS_NAME" ||
- GIT_TEST_OPTS="--no-chain-lint --no-bin-wrappers $GIT_TEST_OPTS"
+ GIT_TEST_OPTS="--github-workflow-markup"
++ JOBS=10
else
echo "Could not identify CI type" >&2
env >&2
exit 1
fi
-+MAKEFLAGS="$MAKEFLAGS --jobs=10"
-+GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save"
++MAKEFLAGS="$MAKEFLAGS --jobs=$JOBS"
++GIT_PROVE_OPTS="--timer --jobs $JOBS --state=failed,slow,save"
+
+GIT_TEST_OPTS="$GIT_TEST_OPTS --verbose-log -x"
-+if test windows = "$CI_OS_NAME"
-+then
++case "$CI_OS_NAME" in
++windows|windows_nt)
+ GIT_TEST_OPTS="$GIT_TEST_OPTS --no-chain-lint --no-bin-wrappers"
-+fi
++ ;;
++esac
+
+export GIT_TEST_OPTS
+export GIT_PROVE_OPTS
6: f7d2a8666fe = 6: d69bde92f2f ci: squelch warnings when testing with unusable Git repo
7: 9b43b0d90e3 = 7: b911c005bae ci: install test dependencies for linux-musl
8: f3f2c98a0dc ! 8: 5784d03a6f1 ci: add support for GitLab CI
@@ Commit message
that fail to compile or pass tests in GitHub Workflows. We would thus
like to integrate the GitLab CI configuration into the Git project to
help us send better patch series upstream and thus reduce overhead for
- the maintainer.
-
- The integration does not necessarily have to be a first-class citizen,
- which would in practice only add to the fallout that pipeline failures
- have for the maintainer. That being said, we are happy to maintain this
- alternative CI setup for the Git project and will make test results
- available as part of our own mirror of the Git project at [1].
+ the maintainer. Results of these pipeline runs will be made available
+ (at least) in GitLab's mirror of the Git project at [1].
This commit introduces the integration into our regular CI scripts so
that most of the setup continues to be shared across all of the CI
@@ .gitlab-ci.yml (new)
+ when: on_failure
## ci/install-docker-dependencies.sh ##
-@@
-
- begin_group "Install dependencies"
-
-+# Required so that apt doesn't wait for user input on certain packages.
-+export DEBIAN_FRONTEND=noninteractive
-+
- case "$jobname" in
- linux32)
- linux32 --32bit i386 sh -c '
@@ ci/install-docker-dependencies.sh: linux32)
'
;;
@@ ci/install-docker-dependencies.sh: linux32)
bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null
;;
+linux-*)
++ # Required so that apt doesn't wait for user input on certain packages.
++ export DEBIAN_FRONTEND=noninteractive
++
+ apt update -q &&
+ apt install -q -y sudo git make language-pack-is libsvn-perl apache2 libssl-dev \
+ libcurl4-openssl-dev libexpat-dev tcl tk gettext zlib1g-dev \
@@ ci/lib.sh: then
begin_group () { :; }
end_group () { :; }
@@ ci/lib.sh: then
- cache_dir="$HOME/test-cache/$SYSTEM_PHASENAME"
-
- GIT_TEST_OPTS="--write-junit-xml"
-+ JOBS=10
- elif test true = "$GITHUB_ACTIONS"
- then
- CI_TYPE=github-actions
-@@ ci/lib.sh: then
- cache_dir="$HOME/none"
GIT_TEST_OPTS="--github-workflow-markup"
-+ JOBS=10
+ JOBS=10
+elif test true = "$GITLAB_CI"
+then
+ CI_TYPE=gitlab-ci
@@ ci/lib.sh: then
else
echo "Could not identify CI type" >&2
env >&2
- exit 1
- fi
-
--MAKEFLAGS="$MAKEFLAGS --jobs=10"
--GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save"
-+MAKEFLAGS="$MAKEFLAGS --jobs=${JOBS}"
-+GIT_PROVE_OPTS="--timer --jobs ${JOBS} --state=failed,slow,save"
-
- GIT_TEST_OPTS="$GIT_TEST_OPTS --verbose-log -x"
- if test windows = "$CI_OS_NAME"
## ci/print-test-failures.sh ##
@@ ci/print-test-failures.sh: do
base-commit: 692be87cbba55e8488f805d236f2ad50483bd7d5
--
2.42.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-11-01 13:02 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-26 7:59 [PATCH 0/5] ci: add GitLab CI definition Patrick Steinhardt
2023-10-26 8:00 ` [PATCH 1/5] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-26 8:26 ` Oswald Buddenhagen
2023-10-27 8:17 ` Patrick Steinhardt
2023-10-26 8:00 ` [PATCH 2/5] ci: make grouping setup more generic Patrick Steinhardt
2023-10-26 8:00 ` [PATCH 3/5] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-26 8:34 ` Oswald Buddenhagen
2023-10-27 8:17 ` Patrick Steinhardt
2023-10-26 8:00 ` [PATCH 4/5] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-26 8:35 ` Oswald Buddenhagen
2023-11-03 22:35 ` Christian Couder
2023-11-06 7:16 ` Patrick Steinhardt
2023-10-26 8:00 ` [PATCH 5/5] ci: add support for GitLab CI Patrick Steinhardt
2023-10-26 9:07 ` Oswald Buddenhagen
2023-10-27 8:17 ` Patrick Steinhardt
2023-10-27 10:22 ` Phillip Wood
2023-10-27 10:43 ` Oswald Buddenhagen
2023-10-27 14:32 ` Phillip Wood
2023-10-27 17:47 ` Oswald Buddenhagen
2023-10-30 9:49 ` Phillip Wood
2023-10-30 14:04 ` Dragan Simic
2023-10-27 10:49 ` Oswald Buddenhagen
2023-10-27 11:11 ` Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 0/5] ci: add GitLab CI definition Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 1/5] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 2/5] ci: make grouping setup more generic Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 3/5] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 4/5] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-27 9:25 ` [PATCH v2 5/5] ci: add support for GitLab CI Patrick Steinhardt
2023-10-27 10:19 ` Phillip Wood
2023-10-27 11:19 ` Patrick Steinhardt
2023-10-27 11:57 ` Patrick Steinhardt
2023-10-27 13:02 ` Phillip Wood
2023-10-29 16:13 ` Phillip Wood
2023-10-30 10:46 ` Patrick Steinhardt
2023-10-29 16:27 ` Phillip Wood
2023-10-30 10:45 ` Patrick Steinhardt
2023-10-30 0:22 ` Junio C Hamano
2023-10-27 11:01 ` Oswald Buddenhagen
2023-10-27 13:17 ` Phillip Wood
2023-10-27 15:53 ` Oswald Buddenhagen
2023-10-31 19:36 ` Jeff King
2023-11-01 3:33 ` Junio C Hamano
2023-10-30 12:14 ` [PATCH v3 0/8] ci: add GitLab CI definition Patrick Steinhardt
2023-10-30 12:14 ` [PATCH v3 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-30 12:14 ` [PATCH v3 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-10-30 12:14 ` [PATCH v3 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-30 12:14 ` [PATCH v3 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-30 12:15 ` [PATCH v3 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-10-30 15:09 ` Phillip Wood
2023-10-30 15:19 ` Patrick Steinhardt
2023-10-30 18:22 ` Dragan Simic
2023-10-30 12:15 ` [PATCH v3 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-10-30 12:15 ` [PATCH v3 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-10-30 12:47 ` Patrick Steinhardt
2023-10-30 13:22 ` Patrick Steinhardt
2023-10-30 15:13 ` Phillip Wood
2023-10-30 15:23 ` Patrick Steinhardt
2023-10-30 16:09 ` Phillip Wood
2023-10-30 12:15 ` [PATCH v3 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-10-30 15:46 ` [PATCH 0/5] ci: add GitLab CI definition Taylor Blau
2023-10-31 7:46 ` Patrick Steinhardt
2023-10-31 19:12 ` Taylor Blau
2023-11-01 0:15 ` Junio C Hamano
2023-11-01 11:56 ` Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 0/8] " Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-31 9:04 ` [PATCH v4 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-10-31 17:06 ` Victoria Dye
2023-11-01 3:14 ` Junio C Hamano
2023-11-01 11:44 ` Patrick Steinhardt
2023-10-31 9:05 ` [PATCH v4 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-10-31 9:05 ` [PATCH v4 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-10-31 9:05 ` [PATCH v4 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-10-31 17:47 ` Victoria Dye
2023-11-01 11:44 ` Patrick Steinhardt
2023-10-31 18:22 ` [PATCH v4 0/8] ci: add GitLab CI definition Victoria Dye
2023-11-01 3:22 ` Junio C Hamano
2023-11-01 11:44 ` Patrick Steinhardt
2023-11-01 13:02 ` Patrick Steinhardt [this message]
2023-11-01 13:02 ` [PATCH v5 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-11-01 13:02 ` [PATCH v5 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-11-01 13:02 ` [PATCH v5 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-11-01 13:02 ` [PATCH v5 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-11-01 13:03 ` [PATCH v5 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-11-01 13:03 ` [PATCH v5 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-11-01 13:03 ` [PATCH v5 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-11-01 13:03 ` [PATCH v5 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 0/8] ci: add GitLab CI definition Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-11-09 8:05 ` [PATCH v6 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-11-09 10:06 ` [PATCH v6 0/8] ci: add GitLab CI definition Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1698843660.git.ps@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
--cc=oswald.buddenhagen@gmx.de \
--cc=phillip.wood123@gmail.com \
--cc=vdye@github.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).