[PATCH v4 0/6] Travis jobs for linux with musl libc
- From
Đoàn Trần Công Danh <congdanhqx@gmail.com>
- Date
- Apr 4, 2020, 01:08 UTC
- Message-ID
- <cover.1585961568.git.congdanhqx@gmail.com>
- In-Reply-To
- <cover.1585474409.git.congdanhqx@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, SZEDER Gábor <szeder.dev@gmail.com>, Eric Sunshine <sunshine@sunshineco.com>, Johannes Schindelin <johannes.schindelin@gmx.de>
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.
Change from v3: * reword 2/6: adding su behavior in util-linux and busybox * 6/6: Drop change to azure-pipelines.yml, and declare this series will be used for Travis only. Since Azure will be replaced by GitHub Action in a later series.
Hi Junio, The series for GitHub Actions will need to be rebased on this series again. 6/6 in that seriess will have UD conflicts. Please "git rm azure-pipelines.yml" to fix conflicts.
SZEDER Gábor (1):
ci: make MAKEFLAGS available inside the Docker container in the
Linux32 jobĐoàn Trần Công Danh (5): ci/lib-docker: preserve required environment variables ci/linux32: parameterise command to switch arch ci: refactor docker runner script ci/linux32: libify install-dependencies step travis: build and test on Linux with musl libc and busybox
.travis.yml | 10 ++++-
azure-pipelines.yml | 4 +-
ci/install-docker-dependencies.sh | 18 +++++++++
ci/lib.sh | 8 ++++
...n-linux32-build.sh => run-docker-build.sh} | 39 +++++++++++++------
ci/{run-linux32-docker.sh => run-docker.sh} | 28 ++++++++++---
6 files changed, 86 insertions(+), 21 deletions(-)
create mode 100755 ci/install-docker-dependencies.sh
rename ci/{run-linux32-build.sh => run-docker-build.sh} (63%)
rename ci/{run-linux32-docker.sh => run-docker.sh} (43%)Range-diff against v3:
1: 2fdce60075 = 1: 2fdce60075 ci: make MAKEFLAGS available inside the Docker container in the Linux32 job
2: b7b079f559 ! 2: db574b3ff9 ci/lib-docker: preserve required environment variables
@@ Commit message
We're using "su -m" to preserve environment variables in the shell run
by "su". But, that options will be ignored while "-l" (aka "--login") is
- specified.
+ specified in util-linux and busybox's su.
+
+ In a later patch this script will be reused for checking Git for Linux
+ with musl libc on Alpine Linux, Alpine Linux uses "su" from busybox.
Since we don't have interest in all environment variables,
pass only those necessary variables to the inner script.
3: 8c8cf3eb24 = 3: a13715245f ci/linux32: parameterise command to switch arch
4: 22cc7960c3 = 4: b5de868c1e ci: refactor docker runner script
5: 2e0d54f81e = 5: c39451ffe5 ci/linux32: libify install-dependencies step
6: b61ed50cf6 ! 6: 231affae83 travis: build and test on Linux with musl libc and busybox
@@ .travis.yml: matrix:
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/install-docker-dependencies.sh ##
@@ ci/install-docker-dependencies.sh: Linux32)
libssl-dev libexpat-dev gettext python >/dev/null-- 2.26.0.334.g6536db25bb