It is common practice for CI's to simply state the amount of vCPUs at the user's disposal. We do the same and find it generally to be a good abstraction. Cross-service comparison gets easier and the users don't need to dabble with the details. As this post is meant to explore the hardware of GitHub Actions, we decided to dabble with the details. To do this we ran lscpu 50 times on the GitHub Actions hardware (source):

name: Display information about GitHub Actions CPU architecture
on: push
jobs:
  build:
    strategy:
      matrix:
        runs-on: [ubuntu-latest]
        name: [1...50]
    name: Display lscpu - ${{matrix.name}}
    runs-on: ${{matrix.runs-on}}
    steps:
      - name: Run lscpu
        run: lscpu

After running the above workflow and cross-pollinating it with cpubenchmark data, we got the following results: Currently available GitHub Actions hardware Looking at the GitHub hardware table we can extract a few things:

  • If you're unlucky, GitHub Actions runs your workflow with old hardware from 2015.
  • One of the processors, the 8272CL (C = Cloud, L = Large memory) is only sold through OEM channels and we were not able to find a normalized benchmark for it, hence the lack of a single-thread score. Although we did find a benchmark for the newer and better 8275CL. It lands on an underwhelming 2375 single-thread score, so the 8272CL would likely score less than that.
  • Low clock speed becomes a problem, especially in single-threaded workloads. However, the lack of a single-thread score could be mitigated by only offering it to projects that can and want to utilize many cores.