Chaste icon indicating copy to clipboard operation
Chaste copied to clipboard

GitHub Actions Node 16 and Artifacts deprecations

Open ptheywood opened this issue 10 months ago • 0 comments

Node.js 16 GitHub Actions are deprecated

Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.

And v1, 2 and v3 of artifact actions (upload-artifact and download-artifact) are independenlty deprecated:

The following artifacts were uploaded using a version of actions/upload-artifact that is scheduled for deprecation: "coverage-info". Please update your workflow to use v4 of the artifact actions. Learn more: https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/

From November 30, 2024, v1-3 of actions/upload-artifact and actions/download-artifact will stop working. There are also breaking changes in the upgrade related to using the same name for multiple artifacts in a single workflow, but that does not appear to effect the current workflows.


The full list of actions used in chaste as of f2ff7ee04e70ac9d06c57344df8d017dbb12b97b is:

$ grep -rni "uses:" .github/ | cut -d: -f4 | sort | uniq
 actions/checkout@v1
 actions/checkout@v3
 actions/checkout@v4
 actions/download-artifact@v3
 actions/setup-python@v4
 actions/upload-artifact@v3
 docker/build-push-action@v5
 docker/login-action@v3
 docker/metadata-action@v5
 docker/setup-buildx-action@v3
 docker/setup-qemu-action@v3

Some of these are already nodejs 20 compatible actions(checkout@v4, docker/*), others are not. Workflow runs have warnings emitted for old versions, which is probably the simplest (but manual) way to check which are valid.

  • [x] actions/checkout
  • [x] actions/setup-python
  • [x] actions/upload-artifact
  • [x] actions/download-artifact

However, when attempting to upgrade actions in a separate repository I encountered isses where Node.js 20 actions are not compatible with older linux distributions in containers, due to the required glibc version.

I.e. checkout@v4 and upload-artifcat@v4 are not compatible with Centos7-based containers (i.e. for Manylinux2014 wheel production) or ubuntu 18.04 containers.

This does not appear to currently be an issue for Chaste, subject to the OS on self-hosted-docker and self-hosted-np3, as all the containers used on CI are jammy based, and pychaste is distributed via conda-forge, not as binary wheels from pip/pypi.

$ grep -rni "runs-on:" .github/ | cut -d: -f4 | sort | uniq
 ${{ matrix.os }}
 macos-latest
 self-hosted-docker
 self-hosted-np3
 ubuntu-20.04
 ubuntu-22.04
 ubuntu-latest
$ grep -rni "chaste/runner" .github/ | cut -d: -f 4- | sort | uniq
 chaste/runner:jammy
 chaste/runner:jammy.portability-01
 chaste/runner:jammy.portability-02
 chaste/runner:jammy.portability-03
 chaste/runner:jammy.portability-04
 chaste/runner:jammy.portability-05
 chaste/runner:jammy.portability-06
 chaste/runner:oldest-boost

ptheywood avatar Apr 29 '24 10:04 ptheywood