Chaste
Chaste copied to clipboard
GitHub Actions Node 16 and Artifacts deprecations
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