{"thread":{"id":"63272","subject":"[RFH] GitHub deprecates Ubuntu 20.04 Actions runner image","startedAt":"2025-04-08T20:16:10Z","lastAt":"2025-04-08T22:30:33Z","messageCount":3,"participants":["Junio C Hamano","brian m. carlson"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"515895","messageId":"xmqqo6x6wgs8.fsf@gitster.g","threadId":"63272","inReplyTo":null,"subject":"[RFH] GitHub deprecates Ubuntu 20.04 Actions runner image","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-08T20:16:07Z","receivedAt":"2025-04-08T20:16:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It seems that we are hitting https://github.com/actions/runner-images/issues/11101\nwhich deliberately breaks CI jobs running on Ubuntu 20.04 images, in preparation\nfor its removal targetted for Apr 15th, 2025.\n\nThe following is a random/blind attempt, but I need a lot of help ;-).\n\n[jc: brian and Taylor CC'ed for their ac112fd4 (Add additional CI\njobs to avoid accidental breakage, 2024-10-31)]\n\n (1) I do not know if the deprecation schedule at GitHub is the same\n     for native runner images and dockerized ones.  Do we want to\n     leave the linux-TEST-vars that uses image ubuntu:20.04 alone\n     for now?\n\n (2) If we were to update it to ubuntu:22.04, would gcc-8 still be\n     the right \"ancient-ish\" version of the compiler, or should we\n     update it as well?\n\n (3) Linux32 job running on image i386/ubuntu:focal has comments\n     that says it is supported until 2025-04-02; should we simply\n     drop that job, as 32-bit platforms are less and less relevant\n     these days?  It is not so urgent but debian-11 job also should\n     be replaced with something slightly newer next summer.\n\n (4) I have no idea how the \"sparse\" job, which seems to download\n     pre-built sparse using magic incantation\n\n      - name: Download a current `sparse` package\n        uses: git-for-windows/get-azure-pipelines-artifact@v0\n        with:\n          repository: git/git\n          definitionId: 10\n          artifact: sparse-20.04\n      - name: Install the current `sparse` package\n        run: sudo dpkg -i sparse-20.04/sparse_*.deb\n\n     is supposed to be updated.  Should that be coordinated with the\n     git-for-windows project, where its .github/workflows/test.yml\n     has a similar insn to build sparse-20.04?\n\n     It appears that Dscho (CC'ed) is futzing with the generation of\n     sparse package on Ubuntu 20.04 and 22.04 and getting affected\n     by the same 20.04 brownout\n\n     https://dev.azure.com/git/git/_build/results?buildId=2396&view=results\n\n     so probably I do not have to worry about it and let Dscho take\n     care of the whole thing?\n\n\n .github/workflows/main.yml | 8 ++++----\n 1 file changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git c/.github/workflows/main.yml w/.github/workflows/main.yml\nindex 9959b61ece..1d4422c898 100644\n--- c/.github/workflows/main.yml\n+++ w/.github/workflows/main.yml\n@@ -372,7 +372,7 @@ jobs:\n           image: ubuntu:rolling\n           cc: clang\n         - jobname: linux-TEST-vars\n-          image: ubuntu:20.04\n+          image: ubuntu:22.04\n           cc: gcc\n           cc_package: gcc-8\n         - jobname: linux-breaking-changes\n@@ -446,7 +446,7 @@ jobs:\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\n       jobname: sparse\n-    runs-on: ubuntu-20.04\n+    runs-on: ubuntu-22.04\n     concurrency:\n       group: sparse-${{ github.ref }}\n       cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}\n@@ -457,9 +457,9 @@ jobs:\n       with:\n         repository: git/git\n         definitionId: 10\n-        artifact: sparse-20.04\n+        artifact: sparse-22.04\n     - name: Install the current `sparse` package\n-      run: sudo dpkg -i sparse-20.04/sparse_*.deb\n+      run: sudo dpkg -i sparse-22.04/sparse_*.deb\n     - uses: actions/checkout@v4\n     - name: Install other dependencies\n       run: ci/install-dependencies.sh\n"},{"id":"515899","messageId":"Z_WagT6zeeQGNa0k@tapette.crustytoothpaste.net","threadId":"63272","inReplyTo":"xmqqo6x6wgs8.fsf@gitster.g","subject":"Re: [RFH] GitHub deprecates Ubuntu 20.04 Actions runner image","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2025-04-08T21:52:01Z","receivedAt":"2025-04-08T21:52:04Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2025-04-08 at 20:16:07, Junio C Hamano wrote:\n> It seems that we are hitting https://github.com/actions/runner-images/issues/11101\n> which deliberately breaks CI jobs running on Ubuntu 20.04 images, in preparation\n> for its removal targetted for Apr 15th, 2025.\n> \n> The following is a random/blind attempt, but I need a lot of help ;-).\n> \n> [jc: brian and Taylor CC'ed for their ac112fd4 (Add additional CI\n> jobs to avoid accidental breakage, 2024-10-31)]\n> \n>  (1) I do not know if the deprecation schedule at GitHub is the same\n>      for native runner images and dockerized ones.  Do we want to\n>      leave the linux-TEST-vars that uses image ubuntu:20.04 alone\n>      for now?\n\nYeah, that's a Docker image and we can leave it.  As long as Docker Hub\ncontinues to host that image, there's no problem with us using it.  I\nwould argue that it's a good idea to use a supported OS, but it's not\nurgent to fix.\n\n>  (2) If we were to update it to ubuntu:22.04, would gcc-8 still be\n>      the right \"ancient-ish\" version of the compiler, or should we\n>      update it as well?\n\nWe should update that as well, since I doubt GCC 8 is still available.\nI'd normally look at https://packages.ubuntu.com/gcc to see what version\nis the default but it's down right now.\n\n>  (3) Linux32 job running on image i386/ubuntu:focal has comments\n>      that says it is supported until 2025-04-02; should we simply\n>      drop that job, as 32-bit platforms are less and less relevant\n>      these days?  It is not so urgent but debian-11 job also should\n>      be replaced with something slightly newer next summer.\n\nWe could update it to a newer version of Ubuntu, such as\ni386/ubuntu:jammy.  That would probably work fine, although I know\nUbuntu was making i386 a more limited distro with fewer packages.\nPerhaps Debian might be a better choice, then.\n\n>  (4) I have no idea how the \"sparse\" job, which seems to download\n>      pre-built sparse using magic incantation\n> \n>       - name: Download a current `sparse` package\n>         uses: git-for-windows/get-azure-pipelines-artifact@v0\n>         with:\n>           repository: git/git\n>           definitionId: 10\n>           artifact: sparse-20.04\n>       - name: Install the current `sparse` package\n>         run: sudo dpkg -i sparse-20.04/sparse_*.deb\n> \n>      is supposed to be updated.  Should that be coordinated with the\n>      git-for-windows project, where its .github/workflows/test.yml\n>      has a similar insn to build sparse-20.04?\n> \n>      It appears that Dscho (CC'ed) is futzing with the generation of\n>      sparse package on Ubuntu 20.04 and 22.04 and getting affected\n>      by the same 20.04 brownout\n> \n>      https://dev.azure.com/git/git/_build/results?buildId=2396&view=results\n> \n>      so probably I do not have to worry about it and let Dscho take\n>      care of the whole thing?\n\nI think Dscho may find a good solution for this, so we can let him start\nto look at it.\n\nI apologize that I don't have a lot of time today to look into this,\nsince I have something to do this evening, but if we don't get it sorted\nout in the next couple of days, I can try to send a patch to fix things.\n\n> diff --git c/.github/workflows/main.yml w/.github/workflows/main.yml\n> index 9959b61ece..1d4422c898 100644\n> --- c/.github/workflows/main.yml\n> +++ w/.github/workflows/main.yml\n> @@ -372,7 +372,7 @@ jobs:\n>            image: ubuntu:rolling\n>            cc: clang\n>          - jobname: linux-TEST-vars\n> -          image: ubuntu:20.04\n> +          image: ubuntu:22.04\n\nThis doesn't strictly have to change, but because Ubuntu 20.04 is going\nEOL, we probably should change it.  Nothing will break if we don't,\nthough.\n\n>            cc: gcc\n>            cc_package: gcc-8\n>          - jobname: linux-breaking-changes\n> @@ -446,7 +446,7 @@ jobs:\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n>        jobname: sparse\n> -    runs-on: ubuntu-20.04\n> +    runs-on: ubuntu-22.04\n\nThis definitely needs to change.  Anything that does \"runs-on\" is a\nrunner type and Ubuntu 20.04 is going away for runners.\n\n>      concurrency:\n>        group: sparse-${{ github.ref }}\n>        cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}\n> @@ -457,9 +457,9 @@ jobs:\n>        with:\n>          repository: git/git\n>          definitionId: 10\n> -        artifact: sparse-20.04\n> +        artifact: sparse-22.04\n>      - name: Install the current `sparse` package\n> -      run: sudo dpkg -i sparse-20.04/sparse_*.deb\n> +      run: sudo dpkg -i sparse-22.04/sparse_*.deb\n\nI don't know how these are generated, but this seems like a good start\nto try and we can adjust it later on if there's more moving parts to\nfix.\n-- \nbrian m. carlson (they/them)\nToronto, Ontario, CA\n"},{"id":"515901","messageId":"xmqqcydmuvzt.fsf@gitster.g","threadId":"63272","inReplyTo":"Z_WagT6zeeQGNa0k@tapette.crustytoothpaste.net","subject":"Re: [RFH] GitHub deprecates Ubuntu 20.04 Actions runner image","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-08T22:30:30Z","receivedAt":"2025-04-08T22:30:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n\n>>      It appears that Dscho (CC'ed) is futzing with the generation of\n>>      sparse package on Ubuntu 20.04 and 22.04 and getting affected\n>>      by the same 20.04 brownout\n>> \n>>      https://dev.azure.com/git/git/_build/results?buildId=2396&view=results\n>> \n>>      so probably I do not have to worry about it and let Dscho take\n>>      care of the whole thing?\n> ...\n>> @@ -457,9 +457,9 @@ jobs:\n>>        with:\n>>          repository: git/git\n>>          definitionId: 10\n>> -        artifact: sparse-20.04\n>> +        artifact: sparse-22.04\n>>      - name: Install the current `sparse` package\n>> -      run: sudo dpkg -i sparse-20.04/sparse_*.deb\n>> +      run: sudo dpkg -i sparse-22.04/sparse_*.deb\n>\n> I don't know how these are generated, but this seems like a good start\n> to try and we can adjust it later on if there's more moving parts to\n> fix.\n\nI think mails crossed among three of us.\n\n<77f82414-261c-d2bc-f911-ed3d4b06c86e@gmx.de>\n"}]}