git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Danh DoanNext: Đoàn Trần Công Danh
Message 33 of 42 in “add travis job for linux with musl libc”
  1. 0/3 add travis job for linux with musl libcĐoàn Trần Công Danh, Mar 26, 2020
  2. 1/3 ci: libify logic for usage and checking CI_USERĐoàn Trần Công Danh, Mar 26, 2020
  3. 2/3 ci: refactor docker runner scriptĐoàn Trần Công Danh, Mar 26, 2020
  4. Eric SunshineMar 26, 2020
  5. SZEDER GáborMar 28, 2020
  6. Danh DoanMar 29, 2020
  7. 3/3 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Mar 26, 2020
  8. Junio C HamanoMar 29, 2020
  9. 0/4 Travis + Azure jobs for linux with musl libcĐoàn Trần Công Danh, Mar 29, 2020
  10. 1/4 ci: libify logic for usage and checking CI_USERĐoàn Trần Công Danh, Mar 29, 2020
  11. 2/4 ci: refactor docker runner scriptĐoàn Trần Công Danh, Mar 29, 2020
  12. SZEDER GáborApr 1, 2020
  13. 3/4 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Mar 29, 2020
  14. SZEDER GáborApr 1, 2020
  15. Danh DoanApr 2, 2020
  16. Johannes SchindelinApr 7, 2020
  17. Junio C HamanoApr 7, 2020
  18. Johannes SchindelinApr 10, 2020
  19. 4/4 t3402: use POSIX compliant regex(7)Đoàn Trần Công Danh, Mar 29, 2020
  20. Junio C HamanoMar 29, 2020
  21. 0/6 Travis + Azure jobs for linux with musl libcĐoàn Trần Công Danh, Apr 2, 2020
  22. 1/6 ci: make MAKEFLAGS available inside the Docker container in the Linux32 jobĐoàn Trần Công Danh, Apr 2, 2020
  23. 2/6 ci/lib-docker: preserve required environment variablesĐoàn Trần Công Danh, Apr 2, 2020
  24. SZEDER GáborApr 3, 2020
  25. Danh DoanApr 3, 2020
  26. SZEDER GáborApr 3, 2020
  27. 3/6 ci/linux32: parameterise command to switch archĐoàn Trần Công Danh, Apr 2, 2020
  28. 4/6 ci: refactor docker runner scriptĐoàn Trần Công Danh, Apr 2, 2020
  29. 5/6 ci/linux32: libify install-dependencies stepĐoàn Trần Công Danh, Apr 2, 2020
  30. 6/6 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Apr 2, 2020
  31. Junio C HamanoApr 2, 2020
  32. Danh DoanApr 3, 2020
  33. 0/6 Travis jobs for linux with musl libcĐoàn Trần Công Danh, Apr 4, 2020
  34. 1/6 ci: make MAKEFLAGS available inside the Docker container in the Linux32 jobĐoàn Trần Công Danh, Apr 4, 2020
  35. 2/6 ci/lib-docker: preserve required environment variablesĐoàn Trần Công Danh, Apr 4, 2020
  36. 3/6 ci/linux32: parameterise command to switch archĐoàn Trần Công Danh, Apr 4, 2020
  37. 4/6 ci: refactor docker runner scriptĐoàn Trần Công Danh, Apr 4, 2020
  38. 5/6 ci/linux32: libify install-dependencies stepĐoàn Trần Công Danh, Apr 4, 2020
  39. 6/6 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Apr 4, 2020
  40. Junio C HamanoApr 5, 2020
  41. Johannes SchindelinApr 7, 2020
  42. Junio C HamanoApr 7, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.