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

[PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Nov 20, 2021, 03:28 UTC
Message-ID
<cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com>
In-Reply-To
<cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com>

I thought I'd submit a smaller change to just address the GitHub CI name truncation in tooltips (now 2/6), but part of the feedback was why we needed to update Travis CI code, and can't we split up the "default" job etc.

So here's a larger series I'd initially peeled v1[1] from a WIP version of.

The end-state is that the job names are shorter, and some are now split up, before:

    https://github.com/git/git/runs/4214600139
After:
    https://github.com/avar/git/runs/4271369035
1. https://lore.kernel.org/git/cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com/
Ævar Arnfjörð Bjarmason (6):
  CI: remove Travis CI support
  CI: use shorter names that fit in UX tooltips
  CI: rename the "Linux32" job to lower-case "linux32"
  CI: use "$runs_on_pool", not "$jobname" to select packages & config
  CI: don't run "make test" twice in one job
  CI: run "documentation" via run-build-and-test.sh
 .github/workflows/main.yml        | 44 ++++++++++++++++++++--
 .travis.yml                       | 60 ------------------------------
 README.md                         |  2 +-
 ci/install-dependencies.sh        | 35 ++++++++---------
 ci/install-docker-dependencies.sh |  2 +-
 ci/lib.sh                         | 62 ++++++++-----------------------
 ci/print-test-failures.sh         | 10 -----
 ci/run-build-and-tests.sh         | 47 +++++++++++++++--------
 ci/run-docker-build.sh            | 11 +-----
 ci/run-docker.sh                  |  4 +-
 ci/test-documentation.sh          | 39 ++++++++-----------
 11 files changed, 123 insertions(+), 193 deletions(-)
 delete mode 100644 .travis.yml
Range-diff against v1:
-:  ----------- > 1:  cc94a353ccb CI: remove Travis CI support
1:  26f80c87c8d ! 2:  73981cedee8 CI: use shorter names that fit in UX tooltips
    @@ Commit message
         commit view. I.e. when mouse-clicking on the passing or failing
         check-mark next to the commit subject.
     
    -    That description is truncated to 24 characters, with the 3 at the end
    -    being placed by "...".
    -
    -    E.g. the full job name (visible at [1]):
    -
    -        "regular (linux-gcc-default, gcc, ubuntu-latest)"
    -
    -    Will, when shown in the tool-tip be truncated to:
    -
    -        "CI/PR / regular (linu..."
    -
    -    There's then a further limit in the expanded view where the job names
    -    are observably truncated to 44 characters (including "..."). I.e.:
    -
    -        "regular (linux-gcc-default, gcc, ubuntu-l..."
    -
    -    With this change we shorten both the job names, and change the
    -    top-level "name" from "CI/PR" to "CI", since it will be used as a
    -    prefix in the tooltips. We also remove redundant or superfluous
    -    information from the name, e.g. "ubuntu-latest" isn't really needed
    -    for "linux-leaks", it'll suffice to say linux. For discovering what
    -    image runs that specifically we can consult main.yml itself.
    -
    -    The above "regular (linux-gcc-default, gcc, ubuntu-latest)" job name
    -    then becomes a 1=1 match to the "$jobname" used in
    -    "ci/run-build-and-tests.sh". A "( push" or " (pull_request" is then
    -    added implicitly as before (from the top-level "on" parameter in
    -    "main.yml"). In the tooltip we'll now show:
    -
    -        "CI / linux-leaks (pu..."
    -
    -    We then have no truncation in the expanded view. See [2] for a
    -    currently visible CI run using this commit, and [3] for the GitHub
    -    workflow syntax involved being changed here.
    -
    -    We could avoid even more truncation with more compact names,
    -    e.g. changing "linux" to "lin" or "lnx", but I didn't do that since
    -    any additional shortening seemed counterproductive, i.e. "w32" is a
    -    well-known way of referring to "Windows", but "lin" isn't). We could
    -    also shorten e.g. "::build" and "::test" to "+bld" and "+tst", but
    -    those seem similarly to be overly obtuse.
    +    These names are seemingly truncated to 17-20 characters followed by
    +    three dots ("..."). Since a "CI/PR / " prefix is added to them the job
    +    names looked like this before (windows-test and vs-test jobs omitted):
    +
    +        CI/PR / ci-config (p...
    +        CI/PR / windows-buil...
    +        CI/PR / vs-build (pu...
    +        CI/PR / regular (lin...
    +        CI/PR / regular (lin...
    +        CI/PR / regular (os...
    +        CI/PR / regular (os...
    +        CI/PR / regular (lin...
    +        CI/PR / regular (lin...
    +        CI/PR / dockerized (...
    +        CI/PR / dockerized (...
    +        CI/PR / dockerized (...
    +        CI/PR / static-anal...
    +        CI/PR / sparse (pu...
    +        CI/PR / documenta...
    +
    +    By omitting the "/PR" from the top-level name, and pushing the
    +    $jobname to the front we'll now instead get:
    +
    +        CI / config (push)
    +        CI / win build (push...
    +        CI / win+VS build (...
    +        CI / linux-clang (ub...
    +        CI / linux-gcc (ubun...
    +        CI / osx-clang (osx)...
    +        CI / osx-gcc (osx) (...
    +        CI / linux-gcc-defau...
    +        CI / linux-leaks (ub...
    +        CI / linux-musl (alp...
    +        CI / Linux32 (daald/...
    +        CI / pedantic (fedor...
    +        CI / static-analysis...
    +        CI / sparse (push)...
    +        CI / documentation
    +
    +    We then have no truncation in the expanded view. See [1] for how it
    +    looked before, [2] for a currently visible CI run using this commit,
    +    and [3] for the GitHub workflow syntax involved being changed here.
    +
    +    Let's also add a field for the "os" and use it where appropriate, it's
    +    occasionally useful to know we're running on say ubuntu
    +    v.s. fedora (but the "-latest" suffix isn't very useful, that applies
    +    to almost all the jobs.
     
         1. https://github.com/git/git/tree/master/
    -    2. https://github.com/avar/git/tree/avar/ci-shorter-names
    +    2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-2
         3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
     
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
    @@ .github/workflows/main.yml: jobs:
                  }
      
        windows-build:
    -+    name: w32::build
    ++    name: win build
          needs: ci-config
          if: needs.ci-config.outputs.enabled == 'yes'
          runs-on: windows-latest
    @@ .github/workflows/main.yml: jobs:
              name: windows-artifacts
              path: artifacts
        windows-test:
    -+    name: w32::test
    ++    name: win test
          runs-on: windows-latest
          needs: [windows-build]
          strategy:
    @@ .github/workflows/main.yml: jobs:
              name: failed-tests-windows
              path: ${{env.FAILED_TEST_ARTIFACTS}}
        vs-build:
    -+    name: w32/VS::build
    ++    name: win+VS build
          needs: ci-config
          if: needs.ci-config.outputs.enabled == 'yes'
          env:
    @@ .github/workflows/main.yml: jobs:
              name: vs-artifacts
              path: artifacts
        vs-test:
    -+    name: w32/VS::test
    ++    name: win+VS test
          runs-on: windows-latest
          needs: vs-build
          strategy:
    @@ .github/workflows/main.yml: jobs:
              name: failed-tests-windows
              path: ${{env.FAILED_TEST_ARTIFACTS}}
        regular:
    -+    name: ${{matrix.vector.jobname}}
    ++    name: ${{matrix.vector.jobname}} (${{matrix.vector.os}})
          needs: ci-config
          if: needs.ci-config.outputs.enabled == 'yes'
          strategy:
    +@@ .github/workflows/main.yml: jobs:
    +         vector:
    +           - jobname: linux-clang
    +             cc: clang
    ++            os: ubuntu
    +             pool: ubuntu-latest
    +           - jobname: linux-gcc
    +             cc: gcc
    ++            os: ubuntu
    +             pool: ubuntu-latest
    +           - jobname: osx-clang
    +             cc: clang
    ++            os: osx
    +             pool: macos-latest
    +           - jobname: osx-gcc
    +             cc: gcc
    ++            os: osx
    +             pool: macos-latest
    +           - jobname: linux-gcc-default
    +             cc: gcc
    ++            os: ubuntu
    +             pool: ubuntu-latest
    +           - jobname: linux-leaks
    +             cc: gcc
    ++            os: ubuntu
    +             pool: ubuntu-latest
    +     env:
    +       CC: ${{matrix.vector.cc}}
     @@ .github/workflows/main.yml: jobs:
              name: failed-tests-${{matrix.vector.jobname}}
              path: ${{env.FAILED_TEST_ARTIFACTS}}
        dockerized:
    -+    name: ${{matrix.vector.jobname}} (docker)
    ++    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})
          needs: ci-config
          if: needs.ci-config.outputs.enabled == 'yes'
          strategy:
    -@@ .github/workflows/main.yml: jobs:
    -       matrix:
    -         vector:
    -         - jobname: linux-musl
    -+          os: alpine
    -           image: alpine
    -         - jobname: Linux32
    -+          os: ubuntu32
    -           image: daald/ubuntu32:xenial
    -         - jobname: pedantic
    -+          os: fedora
    -           image: fedora
    -     env:
    -       jobname: ${{matrix.vector.jobname}}
     @@ .github/workflows/main.yml: jobs:
            run: ci/install-dependencies.sh
          - run: make sparse
2:  9b8a3f0cdc4 ! 3:  002c183fff4 CI: rename the "Linux32" job to lower-case "linux32"
    @@ Commit message
     
      ## .github/workflows/main.yml ##
     @@ .github/workflows/main.yml: jobs:
    +         vector:
              - jobname: linux-musl
    -           os: alpine
                image: alpine
     -        - jobname: Linux32
     +        - jobname: linux32
    -           os: ubuntu32
    ++          os: ubuntu32
                image: daald/ubuntu32:xenial
              - jobname: pedantic
    -
    - ## .travis.yml ##
    -@@ .travis.yml: matrix:
    -       os: linux
    -       dist: trusty
    -       compiler:
    --    - env: jobname=Linux32
    -+    - env: jobname=linux32
    -       os: linux
    -       compiler:
    -       addons:
    +           image: fedora
     
      ## ci/install-docker-dependencies.sh ##
     @@
-:  ----------- > 4:  eca0ad08d4b CI: use "$runs_on_pool", not "$jobname" to select packages & config
-:  ----------- > 5:  a113b8404ed CI: don't run "make test" twice in one job
-:  ----------- > 6:  7c423c8283d CI: run "documentation" via run-build-and-test.sh
-- 
2.34.0.823.gcc3243ae16c
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 15 of 38 in “CI: use shorter names for CI jobs, less truncation”
  1. 0/2 CI: use shorter names for CI jobs, less truncationÆvar Arnfjörð Bjarmason, Nov 19, 2021
  2. 1/2 CI: use shorter names that fit in UX tooltipsÆvar Arnfjörð Bjarmason, Nov 19, 2021
  3. Johannes SchindelinNov 19, 2021
  4. Ævar Arnfjörð BjarmasonNov 19, 2021
  5. Victoria DyeNov 19, 2021
  6. Ævar Arnfjörð BjarmasonNov 19, 2021
  7. Victoria DyeNov 19, 2021
  8. Ævar Arnfjörð BjarmasonNov 20, 2021
  9. Junio C HamanoNov 19, 2021
  10. 2/2 CI: rename the "Linux32" job to lower-case "linux32"Ævar Arnfjörð Bjarmason, Nov 19, 2021
  11. Jeff KingNov 19, 2021
  12. Jeff KingNov 19, 2021
  13. Junio C HamanoNov 19, 2021
  14. Ævar Arnfjörð BjarmasonNov 19, 2021
  15. 0/6 CI: Remove Travis CI, shorten names for GH tooltips, split jobsÆvar Arnfjörð Bjarmason, Nov 20, 2021
  16. 1/6 CI: remove Travis CI supportÆvar Arnfjörð Bjarmason, Nov 20, 2021
  17. 2/6 CI: use shorter names that fit in UX tooltipsÆvar Arnfjörð Bjarmason, Nov 20, 2021
  18. Victoria DyeNov 20, 2021
  19. 3/6 CI: rename the "Linux32" job to lower-case "linux32"Ævar Arnfjörð Bjarmason, Nov 20, 2021
  20. 4/6 CI: use "$runs_on_pool", not "$jobname" to select packages & configÆvar Arnfjörð Bjarmason, Nov 20, 2021
  21. 5/6 CI: don't run "make test" twice in one jobÆvar Arnfjörð Bjarmason, Nov 20, 2021
  22. 6/6 CI: run "documentation" via run-build-and-test.shÆvar Arnfjörð Bjarmason, Nov 20, 2021
  23. Johannes SchindelinNov 20, 2021
  24. Ævar Arnfjörð BjarmasonNov 20, 2021
  25. 0/5 CI: Remove Travis CI, shorten names for GH tooltips, split jobsÆvar Arnfjörð Bjarmason, Nov 20, 2021
  26. 1/5 CI: remove Travis CI supportÆvar Arnfjörð Bjarmason, Nov 20, 2021
  27. 2/5 CI: use shorter names that fit in UX tooltipsÆvar Arnfjörð Bjarmason, Nov 20, 2021
  28. Victoria DyeNov 20, 2021
  29. 5/5 CI: don't run "make test" twice in one jobÆvar Arnfjörð Bjarmason, Nov 20, 2021
  30. 4/5 CI: use "$runs_on_pool", not "$jobname" to select packages & configÆvar Arnfjörð Bjarmason, Nov 20, 2021
  31. Junio C HamanoNov 21, 2021
  32. 3/5 CI: rename the "Linux32" job to lower-case "linux32"Ævar Arnfjörð Bjarmason, Nov 20, 2021
  33. 0/5 CI: Remove Travis CI, shorten names for GH tooltips, split jobsÆvar Arnfjörð Bjarmason, Nov 23, 2021
  34. 1/5 CI: remove Travis CI supportÆvar Arnfjörð Bjarmason, Nov 23, 2021
  35. 2/5 CI: use shorter names that fit in UX tooltipsÆvar Arnfjörð Bjarmason, Nov 23, 2021
  36. 4/5 CI: use "$runs_on_pool", not "$jobname" to select packages & configÆvar Arnfjörð Bjarmason, Nov 23, 2021
  37. 3/5 CI: rename the "Linux32" job to lower-case "linux32"Ævar Arnfjörð Bjarmason, Nov 23, 2021
  38. 5/5 CI: don't run "make test" twice in one jobÆvar Arnfjörð Bjarmason, Nov 23, 2021

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.