{"id":18478143,"url":"https://github.com/socialgouv/runners-bench","last_synced_at":"2026-03-02T18:07:01.077Z","repository":{"id":54197167,"uuid":"337696497","full_name":"SocialGouv/runners-bench","owner":"SocialGouv","description":"Benchmark GitLab VS GitHub runners performance","archived":false,"fork":false,"pushed_at":"2021-03-31T06:52:31.000Z","size":1851,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-06T21:10:27.378Z","etag":null,"topics":["gitlab","runner-github","runner-gitlab"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SocialGouv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-10T11:00:05.000Z","updated_at":"2021-09-30T14:19:08.000Z","dependencies_parsed_at":"2022-08-13T09:00:31.928Z","dependency_job_id":null,"html_url":"https://github.com/SocialGouv/runners-bench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SocialGouv%2Frunners-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SocialGouv%2Frunners-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SocialGouv%2Frunners-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SocialGouv%2Frunners-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SocialGouv","download_url":"https://codeload.github.com/SocialGouv/runners-bench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240788620,"owners_count":19857691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitlab","runner-github","runner-gitlab"],"created_at":"2024-11-06T12:09:04.115Z","updated_at":"2026-03-02T18:06:56.055Z","avatar_url":"https://github.com/SocialGouv.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# runners-bench\n\nBench GitLab VS GitHub runners performance.\n\n- runner github : `ubuntu-latest` with free plan\n- runner gitlab : `node:14.15` with free plan and on AKS (France central)\n\n## Network\n\nThis is our numbers for big file transfers from data.gouv.fr :\n\nname            | speed\n----------------|-------:\nGitHub runner   |   20mb/s\nGitLab on-prem  | \u003e100mb/s\n\n## Jobs\n\nname       | description\n-----------|-------\nno-cache   | run a yarn install from scratch\ncache      | run a yarn install with `node_modules` runner caching\nyarn-cache | run a yarn install using a yarn `.cache` runner caching\n\n## Results\n\nTime in seconds as reported by both UIs.\n\n[![bench](./results.png)](https://excalidraw.com/#json=6269295034105856,oVPVZjXuE1Kt5lHc5D4ITw)\n\n### SaaS (Free accounts)\n\n| runner           | job        | 1st run | 2nd   | 3rd  | 4th  | 5th  | Avg after 1st |\n| ---------------- | ---------- | ------: | ----: | ---: | ---: | ---: | ------------: |\n| gitlab.com       | no-cache   | 116     | 123   | 114  | 136  | 128  |   **122**     |\n| gitlab.com       | cache      | 138     | 87    | 78   | 80   | 84   |   **82**      |\n| giltab.com       | yarn-cache | 299     | 111   | 116  | 114  | 114  |   **114**     |\n| github.com       | no-cache   | 61      | 61    | 58   | 58   | 58   |   **57**      |\n| github.com       | cache      | 64      | 16    | 17   | 19   | 17   |   **18**      |\n| github.com       | yarn-cache | 65      | 45    | 49   | 46   | 49   |   **47**      |\n\n### With GitLab on-prem (AKS France)\n\n| runner           | job        | 1st run | 2nd   | 3rd  | 4th  | 5th  | 6th  | 7th  | Avg after 1st |\n| ---------------- | ---------- | ------: | ----: | ---: | ---: | ---: | ---: | ---: | :-----------: |\n| gitlab #1        | no-cache   | 120     | 141   | 136  | 86   | 86   | 86   | 97   |   **105**     |\n| gitlab #1        | cache      | 123     | 113   | 108  | 60   | 62   | 59   | 77   |   **80**      |\n| gitlab #2        | no-cache   | 170     | 85    | 85   | 82   | 69   | 81   | 70   |   **78**      |\n| gitlab #2        | cache      | 199     | 44    | 34   | 34   | 37   | 36   | 37   |   **37**      |\n| gitlab #2        | yarn-cache | 95      | 95    | 96   | 71   | 68   | 69   | 71   |   **78**      |\n\n3x [standard_e4s_v3 nodes](https://pcr.cloud-mercato.com/providers/azure/flavors/standard_e4s_v3) : 4vCPU, 32Gb RAM\n\n\\# | description\n--|---------------\n1 | runner 13.4 + [Cache =  minio + blob Azure STD]\n2 | runner 13.8 + [Cache =  blob Azure STD]\n\n#### Runners Config :\n\n```yml\nhelper_cpu_request = \"50m\"\nhelper_memory_request = \"256Mi\"\ncpu_request = \"250m\"\nmemory_request = \"1Gi\"\nservice_cpu_request = \"250m\"\nservice_memory_request = \"1Gi\"\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsocialgouv%2Frunners-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsocialgouv%2Frunners-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsocialgouv%2Frunners-bench/lists"}