From: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>
To: git@vger.kernel.org
Cc: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
"Jonathan Tan" <jonathantanmy@google.com>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Eric Sunshine" <sunshine@sunshineco.com>
Subject: [PATCH v2 0/4] Travis + Azure jobs for linux with musl libc
Date: Sun, 29 Mar 2020 17:12:28 +0700 [thread overview]
Message-ID: <cover.1585474409.git.congdanhqx@gmail.com> (raw)
In-Reply-To: <cover.1585203294.git.congdanhqx@gmail.com>
Recently, we've un-broken git for Linux with musl libc,
and we have a serie to fix false negative with busybox shell utils.
Add a CI job on Travis and Azure to make sure we won't break it again.
There is a sample travis build for this serie applied on top of:
jt/rebase-allow-duplicate
https://travis-ci.org/github/sgn/git/builds/668300819
And, after merging with junio's pu to fix busybox false negative:
https://travis-ci.org/github/sgn/git/builds/668300919
https://dev.azure.com/git/git/_build/results?buildId=1910&view=results
Change from v1:
- fix spelling
- run-docker.sh: use "jobname" environment variable instead of passing argument
- add linux-musl job on Azure
- Add 4th patch for jt/rebase-allow-duplicate (feel free to squash into
jt/rebase-allow-duplicate)
The first 3 patches could be applied on top of master,
but the last patch needs to be applied on top of jt/rebase-allow-duplicate
Đoàn Trần Công Danh (4):
ci: libify logic for usage and checking CI_USER
ci: refactor docker runner script
travis: build and test on Linux with musl libc and busybox
t3402: use POSIX compliant regex(7)
.travis.yml | 10 +++++-
azure-pipelines.yml | 39 +++++++++++++++++++--
ci/lib-docker.sh | 37 +++++++++++++++++++
ci/run-alpine-build.sh | 31 ++++++++++++++++
ci/{run-linux32-docker.sh => run-docker.sh} | 26 ++++++++++----
ci/run-linux32-build.sh | 35 +-----------------
t/t3402-rebase-merge.sh | 8 ++---
7 files changed, 139 insertions(+), 47 deletions(-)
create mode 100644 ci/lib-docker.sh
create mode 100755 ci/run-alpine-build.sh
rename ci/{run-linux32-docker.sh => run-docker.sh} (46%)
Range-diff against v1:
1: f23f2a563a = 1: 1ec7c2024d ci: libify logic for usage and checking CI_USER
2: 6fd1370678 ! 2: 140e0ef390 ci: refactor docker runner script
@@ Metadata
## Commit message ##
ci: refactor docker runner script
- We will support alpine check in docker later in this serie.
+ We will support alpine check in docker later in this series.
While we're at it, tell people to run as root in podman.
@@ .travis.yml: matrix:
- docker
before_install:
- script: ci/run-linux32-docker.sh
-+ script: ci/run-docker.sh linux32
++ script: ci/run-docker.sh
- env: jobname=StaticAnalysis
os: linux
compiler:
@@ azure-pipelines.yml: jobs:
res=0
- sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" bash -lxc ci/run-linux32-docker.sh || res=1
-+ sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" bash -lxc ci/run-docker.sh linux32 || res=1
++ sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" jobname=Linux32 bash -lxc ci/run-docker.sh || res=1
sudo chmod a+r t/out/TEST-*.xml
test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts
@@ azure-pipelines.yml: jobs:
test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1
exit $res
- displayName: 'ci/run-linux32-docker.sh'
-+ displayName: 'ci/run-docker.sh linux32'
++ displayName: 'jobname=Linux32 ci/run-docker.sh'
env:
GITFILESHAREPWD: $(gitfileshare.pwd)
- task: PublishTestResults@2
@@ ci/run-docker.sh (new)
@@
+#!/bin/sh
+#
-+# Download and run Docker image to build and test git
++# Download and run Docker image to build and test Git
+#
+
+. ${0%/*}/lib.sh
+
-+CI_TARGET=${1:-linux32}
-+case "$CI_TARGET" in
-+linux32) CI_CONTAINER="daald/ubuntu32:xenial" ;;
-+*) exit 1 ;;
++case "$jobname" in
++Linux32)
++ CI_TARGET=linux32
++ CI_CONTAINER="daald/ubuntu32:xenial"
++ ;;
++*)
++ exit 1 ;;
+esac
+
+docker pull "$CI_CONTAINER"
3: 2f68e65fb7 ! 3: 6cf6400f2e travis: build and test on Linux with musl libc and busybox
@@ .travis.yml
@@ .travis.yml: matrix:
- docker
before_install:
- script: ci/run-docker.sh linux32
-+ - env: jobname=linux-musl-busybox
+ script: ci/run-docker.sh
++ - env: jobname=linux-musl
+ os: linux
+ compiler:
+ addons:
+ services:
+ - docker
+ before_install:
-+ script: ci/run-docker.sh alpine
++ script: ci/run-docker.sh
- env: jobname=StaticAnalysis
os: linux
compiler:
+ ## azure-pipelines.yml ##
+@@ azure-pipelines.yml: jobs:
+ PathtoPublish: t/failed-test-artifacts
+ ArtifactName: failed-test-artifacts
+
++- job: linux_musl
++ displayName: linux-musl
++ condition: succeeded()
++ pool:
++ vmImage: ubuntu-latest
++ steps:
++ - bash: |
++ test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
++
++ res=0
++ sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" jobname=linux-musl bash -lxc ci/run-docker.sh || res=1
++
++ sudo chmod a+r t/out/TEST-*.xml
++ test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts
++
++ test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1
++ exit $res
++ displayName: 'jobname=linux-musl ci/run-docker.sh'
++ env:
++ GITFILESHAREPWD: $(gitfileshare.pwd)
++ - task: PublishTestResults@2
++ displayName: 'Publish Test Results **/TEST-*.xml'
++ inputs:
++ mergeTestResults: true
++ testRunTitle: 'musl'
++ platform: Linux
++ publishRunAttachments: false
++ condition: succeededOrFailed()
++ - task: PublishBuildArtifacts@1
++ displayName: 'Publish trash directories of failed tests'
++ condition: failed()
++ inputs:
++ PathtoPublish: t/failed-test-artifacts
++ ArtifactName: failed-test-artifacts
++
+ - job: static_analysis
+ displayName: StaticAnalysis
+ condition: succeeded()
+
## ci/run-alpine-build.sh (new) ##
@@
+#!/bin/sh
@@ ci/run-alpine-build.sh (new)
+'
## ci/run-docker.sh ##
-@@
- CI_TARGET=${1:-linux32}
- case "$CI_TARGET" in
- linux32) CI_CONTAINER="daald/ubuntu32:xenial" ;;
-+alpine) CI_CONTAINER="alpine" ;;
- *) exit 1 ;;
+@@ ci/run-docker.sh: Linux32)
+ CI_TARGET=linux32
+ CI_CONTAINER="daald/ubuntu32:xenial"
+ ;;
++linux-musl)
++ CI_TARGET=alpine
++ CI_CONTAINER=alpine
++ ;;
+ *)
+ exit 1 ;;
esac
-
-: ---------- > 4: a4eacb4362 t3402: use POSIX compliant regex(7)
--
2.26.0.302.g234993491e
next prev parent reply other threads:[~2020-03-29 10:12 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-26 7:35 [PATCH 0/3] add travis job for linux with musl libc Đoàn Trần Công Danh
2020-03-26 7:35 ` [PATCH 1/3] ci: libify logic for usage and checking CI_USER Đoàn Trần Công Danh
2020-03-26 7:35 ` [PATCH 2/3] ci: refactor docker runner script Đoàn Trần Công Danh
2020-03-26 16:06 ` Eric Sunshine
2020-03-28 17:53 ` SZEDER Gábor
2020-03-29 6:36 ` Danh Doan
2020-03-26 7:35 ` [PATCH 3/3] travis: build and test on Linux with musl libc and busybox Đoàn Trần Công Danh
2020-03-29 5:49 ` [PATCH 0/3] add travis job for linux with musl libc Junio C Hamano
2020-03-29 10:12 ` Đoàn Trần Công Danh [this message]
2020-03-29 10:12 ` [PATCH v2 1/4] ci: libify logic for usage and checking CI_USER Đoàn Trần Công Danh
2020-03-29 10:12 ` [PATCH v2 2/4] ci: refactor docker runner script Đoàn Trần Công Danh
2020-04-01 21:51 ` SZEDER Gábor
2020-03-29 10:12 ` [PATCH v2 3/4] travis: build and test on Linux with musl libc and busybox Đoàn Trần Công Danh
2020-04-01 22:18 ` SZEDER Gábor
2020-04-02 1:42 ` Danh Doan
2020-04-07 14:53 ` Johannes Schindelin
2020-04-07 21:35 ` Junio C Hamano
2020-04-10 13:38 ` Johannes Schindelin
2020-03-29 10:12 ` [PATCH v2 4/4] t3402: use POSIX compliant regex(7) Đoàn Trần Công Danh
2020-03-29 16:23 ` [PATCH v2 0/4] Travis + Azure jobs for linux with musl libc Junio C Hamano
2020-04-02 13:03 ` [PATCH v3 0/6] " Đoàn Trần Công Danh
2020-04-02 13:04 ` [PATCH v3 1/6] ci: make MAKEFLAGS available inside the Docker container in the Linux32 job Đoàn Trần Công Danh
2020-04-02 13:04 ` [PATCH v3 2/6] ci/lib-docker: preserve required environment variables Đoàn Trần Công Danh
2020-04-03 8:22 ` SZEDER Gábor
2020-04-03 10:09 ` Danh Doan
2020-04-03 19:55 ` SZEDER Gábor
2020-04-02 13:04 ` [PATCH v3 3/6] ci/linux32: parameterise command to switch arch Đoàn Trần Công Danh
2020-04-02 13:04 ` [PATCH v3 4/6] ci: refactor docker runner script Đoàn Trần Công Danh
2020-04-02 13:04 ` [PATCH v3 5/6] ci/linux32: libify install-dependencies step Đoàn Trần Công Danh
2020-04-02 13:04 ` [PATCH v3 6/6] travis: build and test on Linux with musl libc and busybox Đoàn Trần Công Danh
2020-04-02 17:53 ` [PATCH v3 0/6] Travis + Azure jobs for linux with musl libc Junio C Hamano
2020-04-03 0:23 ` Danh Doan
2020-04-04 1:08 ` [PATCH v4 0/6] Travis " Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 1/6] ci: make MAKEFLAGS available inside the Docker container in the Linux32 job Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 2/6] ci/lib-docker: preserve required environment variables Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 3/6] ci/linux32: parameterise command to switch arch Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 4/6] ci: refactor docker runner script Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 5/6] ci/linux32: libify install-dependencies step Đoàn Trần Công Danh
2020-04-04 1:08 ` [PATCH v4 6/6] travis: build and test on Linux with musl libc and busybox Đoàn Trần Công Danh
2020-04-05 20:39 ` [PATCH v4 0/6] Travis jobs for linux with musl libc Junio C Hamano
2020-04-07 14:55 ` Johannes Schindelin
2020-04-07 19:25 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2020-03-09 20:55 [PATCH] rebase --merge: optionally skip upstreamed commits Jonathan Tan
2020-03-10 2:10 ` Taylor Blau
2020-03-10 15:51 ` Jonathan Tan
2020-03-10 12:17 ` Johannes Schindelin
2020-03-10 16:00 ` Jonathan Tan
2020-03-10 18:56 ` Elijah Newren
2020-03-10 22:56 ` Jonathan Tan
2020-03-12 18:04 ` Jonathan Tan
2020-03-12 22:40 ` Elijah Newren
2020-03-14 8:04 ` Elijah Newren
2020-03-17 3:03 ` Jonathan Tan
2020-03-18 17:30 ` [PATCH v2] " Jonathan Tan
2020-03-18 18:47 ` Junio C Hamano
2020-03-18 19:28 ` Jonathan Tan
2020-03-18 19:55 ` Junio C Hamano
2020-03-18 20:41 ` Elijah Newren
2020-03-18 23:39 ` Junio C Hamano
2020-03-19 0:17 ` Elijah Newren
2020-03-18 20:20 ` Junio C Hamano
2020-03-26 17:50 ` Jonathan Tan
2020-03-26 19:17 ` Elijah Newren
2020-03-26 19:27 ` Junio C Hamano
2020-03-30 4:06 ` [PATCH v3] " Jonathan Tan
2020-03-30 5:09 ` Junio C Hamano
2020-03-30 5:22 ` Danh Doan
2020-03-30 12:13 ` Derrick Stolee
2020-03-30 16:49 ` Junio C Hamano
2020-03-30 16:57 ` Jonathan Tan
2020-03-31 11:55 ` Derrick Stolee
2020-03-31 16:27 ` Elijah Newren
2020-03-31 18:34 ` Junio C Hamano
2020-03-31 18:43 ` Junio C Hamano
2020-04-10 22:27 ` Jonathan Tan
2020-04-11 0:06 ` Elijah Newren
2020-04-11 1:11 ` Jonathan Tan
2020-04-11 2:46 ` Elijah Newren
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.1585474409.git.congdanhqx@gmail.com \
--to=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=sunshine@sunshineco.com \
--cc=szeder.dev@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.