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

Re: [PATCH 3/5] ci: configure GitHub Actions for CI/PR

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Apr 3, 2020, 22:07 UTC
Message-ID
<20200403220732.GL2224@szeder.dev>
In-Reply-To
<36621bdd31a53046450f73ed197585469b1a1b96.1585658913.git.gitgitgadget@gmail.com>
On Tue, Mar 31, 2020 at 12:48:31PM +0000, Johannes Schindelin via GitGitGadget wrote:
Show 7 quoted lines
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> This patch adds CI builds via GitHub Actions. While the underlying
> technology is at least _very_ similar to that of Azure Pipelines, GitHub
> Actions are much easier to set up than Azure Pipelines: no need to
> install a GitHub App, no need to set up an Azure DevOps account, all you
> need to do is push to your fork on GitHub.

And then receive emails from GitHub if a build fails, even though you never asked for it? Well, I've always preferred opt-in instead of opt-out.

Btw, does it offer direct shell access for debugging?
Show 14 quoted lines
> Therefore, it makes a lot of sense for us to have a working GitHub
> Actions setup.
> 
> While transmogrifying `azure-pipelines.yml` into
> `.github/workflows/main.yml`, we also use the opportunity to accelerate
> the step that sets up a minimal subset of Git for Windows' SDK in the
> Windows-build job: we now download a `.tar.xz` stored in Azure Blobs and
> extract it simultaneously (by calling `curl` and piping the result to
> `tar`, decompressing via `xz`, all three utilities being available by
> grace of using Git for Windows' Bash that is installed on the build
> agents). This accelerates that step from ~1m50s to ~7s.
> 
> Also, we do away with the parts that try to mount a file share on which
> `prove` can store data between runs.

... and on which we store the list of already successfully tested trees, so when a branch is rebased changing e.g. only the commit messages but leaving the code intact, then the CI won't run unnecessary builds.

Show 5 quoted lines
> It is just too complicated to set
> up, so it's little return on investment there.
> 
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
Show 10 quoted lines
> +  linux-clang:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      env:
> +        CC: clang
> +      run: |
> +        sudo apt-get update &&
> +        sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin &&

Why install all these dependencies here, when the very next command is 'ci/install-dependencies.sh', whose purpose is to install the dependencies?

Show 18 quoted lines
> +        ci/install-dependencies.sh
> +    - name: ci/run-build-and-test.sh
> +      env:
> +        CC: clang
> +      run: |
> +        ci/run-build-and-tests.sh || {
> +          ci/print-test-failures.sh
> +          exit 1
> +        }
> +  linux-gcc:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      run: |
> +        sudo add-apt-repository ppa:ubuntu-toolchain-r/test &&
> +        sudo apt-get update &&
> +        sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2 language-pack-is git-svn gcc-8 &&

Likewise, and here you install some additional packages compared to the clang job as well.

Show 67 quoted lines
> +        ci/install-dependencies.sh
> +    - name: ci/run-build-and-tests.sh
> +      run: |
> +        ci/run-build-and-tests.sh || {
> +          ci/print-test-failures.sh
> +          exit 1
> +        }
> +  osx-clang:
> +    runs-on: macos-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      env:
> +        CC: clang
> +      run: ci/install-dependencies.sh
> +    - name: ci/run-build-and-tests.sh
> +      env:
> +        CC: clang
> +      run: |
> +        ci/run-build-and-tests.sh || {
> +          ci/print-test-failures.sh
> +          exit 1
> +        }
> +  osx-gcc:
> +    runs-on: macos-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      run: ci/install-dependencies.sh
> +    - name: ci/run-build-and-tests.sh
> +      run: |
> +        ci/run-build-and-tests.sh || {
> +          ci/print-test-failures.sh
> +          exit 1
> +        }
> +  GETTEXT_POISON:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      run: |
> +        sudo apt-get update &&
> +        sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev
> +    - name: ci/run-build-and-tests.sh
> +      env:
> +        jobname: GETTEXT_POISON
> +      run: |
> +        ci/run-build-and-tests.sh || {
> +          ci/print-test-failures.sh
> +          exit 1
> +        }
> +  linux32:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: ci/run-linux32-docker.sh
> +      run: |
> +        res=0
> +        sudo GITHUB_ACTIONS="$GITHUB_ACTIONS" RUNNER_OS="$RUNNER_OS" GITHUB_REF="$GITHUB_REF" GITHUB_SHA="$GITHUB_SHA" GITHUB_REPOSITORY="$GITHUB_REPOSITORY" GITHUB_RUN_ID="$GITHUB_RUN_ID" CC=$CC MAKEFLAGS="$MAKEFLAGS" bash -lxc ci/run-linux32-docker.sh || res=1
> +  static-analysis:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      run: |
> +        sudo apt-get update &&
> +        sudo apt-get install -y coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext

Likewise, except here you don't even run 'ci/install-dependencies.sh' (which would install the same packages, btw.)

Show 20 quoted lines
> +    - name: ci/run-static-analysis.sh
> +      env:
> +        jobname: StaticAnalysis
> +      run: ci/run-static-analysis.sh
> +  documentation:
> +    runs-on: ubuntu-latest
> +    steps:
> +    - uses: actions/checkout@v1
> +    - name: install dependencies
> +      run: |
> +        sudo apt-get update &&
> +        sudo apt-get install -y asciidoc xmlto asciidoctor docbook-xsl-ns
> +    - name: ci/test-documentation.sh
> +      env:
> +        ALREADY_HAVE_ASCIIDOCTOR: yes.
> +        jobname: Documentation
> +      run: ci/test-documentation.sh
> -- 
> gitgitgadget
> 
Previous: Johannes Schindelin via GitGitGadgetNext: Johannes Schindelin
Message 16 of 110 in “ci: replace our Azure Pipeline by GitHub Actions”
  1. 0/5 ci: replace our Azure Pipeline by GitHub ActionsJohannes Schindelin via GitGitGadget, Mar 31, 2020
  2. 1/5 ci/lib: if CI type is unknown, show the environment variablesJohannes Schindelin via GitGitGadget, Mar 31, 2020
  3. 4/5 README: add a build badge for the GitHub Actions runsJohannes Schindelin via GitGitGadget, Mar 31, 2020
  4. 2/5 ci/lib: allow running in GitHub ActionsJohannes Schindelin via GitGitGadget, Mar 31, 2020
  5. SZEDER GáborApr 3, 2020
  6. Johannes SchindelinApr 4, 2020
  7. Danh DoanApr 5, 2020
  8. Johannes SchindelinApr 7, 2020
  9. SZEDER GáborApr 10, 2020
  10. Junio C HamanoApr 10, 2020
  11. Johannes SchindelinApr 12, 2020
  12. Junio C HamanoApr 12, 2020
  13. Junio C HamanoApr 12, 2020
  14. 5/5 ci: retire the Azure Pipelines definitionJohannes Schindelin via GitGitGadget, Mar 31, 2020
  15. 3/5 ci: configure GitHub Actions for CI/PRJohannes Schindelin via GitGitGadget, Mar 31, 2020
  16. SZEDER GáborApr 3, 2020
  17. Johannes SchindelinApr 4, 2020
  18. Danh DoanApr 4, 2020
  19. Danh DoanMar 31, 2020
  20. Junio C HamanoMar 31, 2020
  21. 0/6 ci: replace our Azure Pipeline by GitHub ActionsĐoàn Trần Công Danh, Apr 1, 2020
  22. 1/6 ci/lib: if CI type is unknown, show the environment variablesĐoàn Trần Công Danh, Apr 1, 2020
  23. 2/6 ci/lib: allow running in GitHub ActionsĐoàn Trần Công Danh, Apr 1, 2020
  24. 3/6 ci/lib: set TERM environment variable if not existĐoàn Trần Công Danh, Apr 1, 2020
  25. 5/6 README: add a build badge for the GitHub Actions runsĐoàn Trần Công Danh, Apr 1, 2020
  26. 4/6 ci: configure GitHub Actions for CI/PRĐoàn Trần Công Danh, Apr 1, 2020
  27. 6/6 ci: retire the Azure Pipelines definitionĐoàn Trần Công Danh, Apr 1, 2020
  28. Junio C HamanoApr 1, 2020
  29. Danh DoanApr 2, 2020
  30. 0/6 ci: replace our Azure Pipeline by GitHub ActionsĐoàn Trần Công Danh, Apr 2, 2020
  31. 1/6 ci/lib: if CI type is unknown, show the environment variablesĐoàn Trần Công Danh, Apr 2, 2020
  32. 3/6 ci/lib: set TERM environment variable if not existĐoàn Trần Công Danh, Apr 2, 2020
  33. 2/6 ci/lib: allow running in GitHub ActionsĐoàn Trần Công Danh, Apr 2, 2020
  34. 5/6 README: add a build badge for the GitHub Actions runsĐoàn Trần Công Danh, Apr 2, 2020
  35. 4/6 ci: configure GitHub Actions for CI/PRĐoàn Trần Công Danh, Apr 2, 2020
  36. 6/6 ci: retire the Azure Pipelines definitionĐoàn Trần Công Danh, Apr 2, 2020
  37. 00/12 ci: replace our Azure Pipeline by GitHub ActionsĐoàn Trần Công Danh, Apr 8, 2020
  38. 01/12 ci/lib: if CI type is unknown, show the environment variablesĐoàn Trần Công Danh, Apr 8, 2020
  39. 03/12 ci/lib: set TERM environment variable if not existĐoàn Trần Công Danh, Apr 8, 2020
  40. 02/12 ci/lib: allow running in GitHub ActionsĐoàn Trần Công Danh, Apr 8, 2020
  41. 04/12 ci: fix the `jobname` of the `GETTEXT_POISON` jobĐoàn Trần Công Danh, Apr 8, 2020
  42. 05/12 ci: explicit install all required packagesĐoàn Trần Công Danh, Apr 8, 2020
  43. SZEDER GáborApr 10, 2020
  44. Danh DoanApr 10, 2020
  45. Junio C HamanoApr 10, 2020
  46. 06/12 ci: run gem with sudo to install asciidoctorĐoàn Trần Công Danh, Apr 8, 2020
  47. 07/12 ci: configure GitHub Actions for CI/PRĐoàn Trần Công Danh, Apr 8, 2020
  48. 08/12 README: add a build badge for the GitHub Actions runsĐoàn Trần Công Danh, Apr 8, 2020
  49. 09/12 ci: retire the Azure Pipelines definitionĐoàn Trần Công Danh, Apr 8, 2020
  50. 10/12 tests: when run in Bash, annotate test failures with file name/line numberĐoàn Trần Công Danh, Apr 8, 2020
  51. 12/12 ci: let GitHub Actions upload failed tests' directoriesĐoàn Trần Công Danh, Apr 8, 2020
  52. 11/12 ci: add a problem matcher for GitHub ActionsĐoàn Trần Công Danh, Apr 8, 2020
  53. Junio C HamanoApr 9, 2020
  54. Johannes SchindelinApr 10, 2020
  55. Johannes SchindelinApr 10, 2020
  56. Danh DoanApr 10, 2020
  57. Junio C HamanoApr 10, 2020
  58. Danh DoanApr 10, 2020
  59. Junio C HamanoApr 16, 2020
  60. fixing ci failure of 'pu' with the es/bugreport topicJunio C Hamano, Apr 16, 2020
  61. Emily ShafferApr 16, 2020
  62. Junio C HamanoApr 16, 2020
  63. Elijah NewrenApr 16, 2020
  64. Emily ShafferApr 16, 2020
  65. Junio C HamanoApr 16, 2020
  66. Danh DoanApr 16, 2020
  67. Johannes SchindelinApr 16, 2020
  68. Johannes SchindelinApr 16, 2020
  69. Junio C HamanoApr 16, 2020
  70. 00/12 ci: replace our Azure Pipeline by GitHub ActionsĐoàn Trần Công Danh, Apr 10, 2020
  71. 01/12 ci/lib: if CI type is unknown, show the environment variablesĐoàn Trần Công Danh, Apr 10, 2020
  72. 03/12 ci/lib: set TERM environment variable if not existĐoàn Trần Công Danh, Apr 10, 2020
  73. 02/12 ci/lib: allow running in GitHub ActionsĐoàn Trần Công Danh, Apr 10, 2020
  74. 05/12 ci: explicit install all required packagesĐoàn Trần Công Danh, Apr 10, 2020
  75. 04/12 ci: fix the `jobname` of the `GETTEXT_POISON` jobĐoàn Trần Công Danh, Apr 10, 2020
  76. 06/12 ci: run gem with sudo to install asciidoctorĐoàn Trần Công Danh, Apr 10, 2020
  77. 07/12 ci: configure GitHub Actions for CI/PRĐoàn Trần Công Danh, Apr 10, 2020
  78. 08/12 README: add a build badge for the GitHub Actions runsĐoàn Trần Công Danh, Apr 10, 2020
  79. 10/12 tests: when run in Bash, annotate test failures with file name/line numberĐoàn Trần Công Danh, Apr 10, 2020
  80. Carlo Marcelo Arenas BelónMay 4, 2020
  81. Danh DoanMay 4, 2020
  82. Junio C HamanoMay 5, 2020
  83. Carlo Marcelo Arenas BelónMay 6, 2020
  84. Johannes SchindelinMay 6, 2020
  85. Carlo Marcelo Arenas BelónMay 6, 2020
  86. Johannes SchindelinMay 6, 2020
  87. Carlo Marcelo Arenas BelónMay 7, 2020
  88. Junio C HamanoMay 6, 2020
  89. Carlo Marcelo Arenas BelónMay 5, 2020
  90. Alban GruinMay 15, 2020
  91. t: move metadata into TAP test descriptionCarlo Marcelo Arenas Belón, May 15, 2020
  92. Eric SunshineMay 15, 2020
  93. Alban GruinMay 15, 2020
  94. Carlo Marcelo Arenas BelónMay 15, 2020
  95. Junio C HamanoMay 15, 2020
  96. Carlo Marcelo Arenas BelónMay 15, 2020
  97. Junio C HamanoMay 15, 2020
  98. Johannes SchindelinMay 15, 2020
  99. Junio C HamanoMay 15, 2020
  100. 0/2 Unbreak TAP output under bashJunio C Hamano, May 15, 2020
  101. 1/2 Revert "t/test_lib: avoid naked bash arrays in file_lineno"Junio C Hamano, May 15, 2020
  102. 2/2 Revert "tests: when run in Bash, annotate test failures with file name/line number"Junio C Hamano, May 15, 2020
  103. Junio C HamanoMay 15, 2020
  104. Carlo Marcelo Arenas BelónMay 15, 2020
  105. Alban GruinMay 15, 2020
  106. Carlo Marcelo Arenas BelónMay 15, 2020
  107. Alban GruinMay 15, 2020
  108. 12/12 ci: let GitHub Actions upload failed tests' directoriesĐoàn Trần Công Danh, Apr 10, 2020
  109. 09/12 ci: retire the Azure Pipelines definitionĐoàn Trần Công Danh, Apr 10, 2020
  110. 11/12 ci: add a problem matcher for GitHub ActionsĐoàn Trần Công Danh, Apr 10, 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.