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@xxxxxxxxx/ Æ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@xxxxxxxxx> @@ .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