git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Johannes Schindelin" <johannes.schindelin@gmx.de>,
	"SZEDER Gábor" <szeder.dev@gmail.com>,
	"Victoria Dye" <vdye@github.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs
Date: Sat, 20 Nov 2021 04:28:30 +0100	[thread overview]
Message-ID: <cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com> (raw)
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


  parent reply	other threads:[~2021-11-20  3:28 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-19 13:56 [PATCH 0/2] CI: use shorter names for CI jobs, less truncation Ævar Arnfjörð Bjarmason
2021-11-19 13:56 ` [PATCH 1/2] CI: use shorter names that fit in UX tooltips Ævar Arnfjörð Bjarmason
2021-11-19 14:58   ` Johannes Schindelin
2021-11-19 20:39     ` Ævar Arnfjörð Bjarmason
2021-11-19 16:02   ` Victoria Dye
2021-11-19 20:33     ` Ævar Arnfjörð Bjarmason
2021-11-19 21:55       ` Victoria Dye
2021-11-20  2:51         ` Ævar Arnfjörð Bjarmason
2021-11-19 22:14     ` Junio C Hamano
2021-11-19 13:56 ` [PATCH 2/2] CI: rename the "Linux32" job to lower-case "linux32" Ævar Arnfjörð Bjarmason
2021-11-19 14:57   ` Jeff King
2021-11-19 15:03 ` [PATCH 0/2] CI: use shorter names for CI jobs, less truncation Jeff King
2021-11-19 19:57 ` Junio C Hamano
2021-11-19 20:48   ` Ævar Arnfjörð Bjarmason
2021-11-20  3:28 ` Ævar Arnfjörð Bjarmason [this message]
2021-11-20  3:28   ` [PATCH v2 1/6] CI: remove Travis CI support Ævar Arnfjörð Bjarmason
2021-11-20  3:28   ` [PATCH v2 2/6] CI: use shorter names that fit in UX tooltips Ævar Arnfjörð Bjarmason
2021-11-20  7:01     ` Victoria Dye
2021-11-20  3:28   ` [PATCH v2 3/6] CI: rename the "Linux32" job to lower-case "linux32" Ævar Arnfjörð Bjarmason
2021-11-20  3:28   ` [PATCH v2 4/6] CI: use "$runs_on_pool", not "$jobname" to select packages & config Ævar Arnfjörð Bjarmason
2021-11-20  3:28   ` [PATCH v2 5/6] CI: don't run "make test" twice in one job Ævar Arnfjörð Bjarmason
2021-11-20  3:28   ` [PATCH v2 6/6] CI: run "documentation" via run-build-and-test.sh Ævar Arnfjörð Bjarmason
2021-11-20  8:05   ` [PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs Johannes Schindelin
2021-11-20 12:14     ` Ævar Arnfjörð Bjarmason
2021-11-20 12:10   ` [PATCH v3 0/5] " Ævar Arnfjörð Bjarmason
2021-11-20 12:10     ` [PATCH v3 1/5] CI: remove Travis CI support Ævar Arnfjörð Bjarmason
2021-11-20 12:10     ` [PATCH v3 2/5] CI: use shorter names that fit in UX tooltips Ævar Arnfjörð Bjarmason
2021-11-20 19:06       ` Victoria Dye
2021-11-20 12:10     ` [PATCH v3 3/5] CI: rename the "Linux32" job to lower-case "linux32" Ævar Arnfjörð Bjarmason
2021-11-20 12:10     ` [PATCH v3 4/5] CI: use "$runs_on_pool", not "$jobname" to select packages & config Ævar Arnfjörð Bjarmason
2021-11-21  7:21       ` Junio C Hamano
2021-11-20 12:10     ` [PATCH v3 5/5] CI: don't run "make test" twice in one job Ævar Arnfjörð Bjarmason
2021-11-23 16:29     ` [PATCH v4 0/5] CI: Remove Travis CI, shorten names for GH tooltips, split jobs Ævar Arnfjörð Bjarmason
2021-11-23 16:29       ` [PATCH v4 1/5] CI: remove Travis CI support Ævar Arnfjörð Bjarmason
2021-11-23 16:29       ` [PATCH v4 2/5] CI: use shorter names that fit in UX tooltips Ævar Arnfjörð Bjarmason
2021-11-23 16:29       ` [PATCH v4 3/5] CI: rename the "Linux32" job to lower-case "linux32" Ævar Arnfjörð Bjarmason
2021-11-23 16:29       ` [PATCH v4 4/5] CI: use "$runs_on_pool", not "$jobname" to select packages & config Ævar Arnfjörð Bjarmason
2021-11-23 16:29       ` [PATCH v4 5/5] CI: don't run "make test" twice in one job Ævar Arnfjörð Bjarmason

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=szeder.dev@gmail.com \
    --cc=vdye@github.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).