GitHub
GitHub Actions Runners
By default ASWF projects under the AcademySoftwareFoundation GitHub organization have access to the Standard GitHub-hosted runners for public repositories for Linux, Windows and macOS. Our GitHub organization qualifies as an Enterprise organization which increases the limits for job concurrency and usable monthly minutes.
Some ASWF projects have their own top-level GitHub organization: these are included under our Enterprise account and should have the same access as projects / repos under the AcademySofftwareFoundation GitHub organization.
ASWF also has a limited monthly budget for Larger Runners which add runners to support larger numbers of CPU, more RAM, different CPU architectures and GPUs. These Larger Runners are managed by Linux Foundation Release Engineering team and can be selected by the runs-on
directive in the workflow file. They can only be used by CI jobs running in the context of the project repository, they cannot be accessed from a fork.
Since the monthly budget is limited, projects should make judicious use of these Larger Runners, possibly for lower frequency jobs to validate different CPU architectures, or to run a GPU-accelerated test suite rather than a full compilation. Projects wishing to use these Larger Runners may want to bring up their requirements for discussion in the #wg-ci Slack channel.
Per minute pricing is listed under Per-minute rates for x64-powered larger runners and Per-minute rates for arm64-powered larger runners. These charges add up fast, especially for matrixed builds. Keep in mind that:
Windows runners are 2x the cost of Linux runners
4 core GPU runners cost the same as 16 core CPU only runners
For projects needing access to GPUs, you would typically want to build on a CPU only runner, upload build artifacts “somewhere”, and then only run the GPU-dependent test suite on a GPU runner.
Users with commit access to a repository can show the larger runners available to the repo under Actions → Runners → Github-hosted runners
:
As of July 2024, the following Larger Runners are available. Additional configurations can be discussed in the #wg-ci Slack channel and requested via a Linux Foundation help desk ticket:
4 core x86_64 / 16GB / 150GB disk
ubuntu-latest-m
4 core x86_64 / 16GB / 176GB disk NVIDIA Tesla T4 GPU
ubuntu-20.04-gpu-t4-4c-16g-176h
windows-ds-2019-gpu-t4-4c-16g-176h
8 core x86_64 / 32GB / 300GB disk
ubuntu-20.04-8c-32g-300h
ubuntu-22.04-8c-32g-300h
ubuntu-latest-8c-32g-300h
windows-2022-8c-32g-300h
windows-latest-l
16 core x86_64 / 64GB / 600GB disk
ubuntu-20.04-16c-64g-600h
ubuntu-22.04-16c-64g-600h
ubuntu-latest-16c-64g-600h
windows-2022-16c-64g-600h
2 core arm64 / 8GB / 75GB disk
ubuntu-24.04-arm64-2C-8G-75H
ubuntu-24.04-arm64-2C-8G-75H
4 core arm64 / 16GB / 150GB disk
ubuntu-22.04-arm64-4C-16G-150H
ubuntu-24.04-arm64-4C-16G-150H
windows-11-arm64-4C-16G-150H
8 core arm64 / 32GB / 300GB disk
ubuntu-22.04-arm64-8C-32G-300H
ubuntu-24.04-arm64-8C-32G-300H
windows-11-arm64-8C-32G-300H
16 core arm64 / 64GB / 600GB disk
ubuntu-22.04-arm64-16C-64G-600H
ubuntu-24.04-arm64-16C-64G-600H
windows-11-arm64-16C-64G-600H
Issue with GitHub Actions and CentOS 7 based aswf-docker containers
The GitHub Actions runner is based on Node.js, and in the transition from Node 16 to 20, uses a build of Node linked against libc 2.27. This will prevent CI builds using aswf-docker containers based on the VFX Reference Platform 2022 or older from running:
/__e/node20/bin/node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /__e/node20/bin/node)
This issue is discussed here: https://github.com/actions/runner/issues/2906
The workaround for now is to add the following environment variables to the workflow file:
env:
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
and to keep using version 3 of the checkout
action:
- uses: actions/checkout@
but there is no guarantee how long this will continue working.