Skip to content

Cache the hexpm build the integration tests run against - #1277

Merged
ericmj merged 1 commit into
mainfrom
ci-tuning
Oct 15, 2026
Merged

ericmj merged 1 commit into
mainfrom
ci-tuning

Conversation

@ericmj

@ericmj ericmj commented Oct 15, 2026

Copy link
Copy Markdown
Member

Every matrix entry cloned hexpm main and compiled it with the same OTP and Elixir. Since 2026-10-09 that step took a median of 114 s of each 210 s job, 117 s in https://github.com/hexpm/hex/actions/runs/38722458025/job/116380099081, 87 s of it compiling dependencies in a single process. The build is now cached under one key for all entries, only main writes it, and a change to hexpm's mix.lock or config restores the newest entry instead of compiling from scratch. Dependencies compile across two OS processes and the clone is shallow.

A pull request from a branch in this repository ran CI for the commit its branch push had already tested: 49 runs and 2,522 minutes of runner time from 2026-09-15 to 2026-10-15. Jobs now run for pushes and for pull requests from forks.

The hexpm the tests start runs on Postgres 18, the version production runs.

Jobs have timeouts. A hung run, https://github.com/hexpm/hex/actions/runs/36333046898, ran for 47 minutes before it was cancelled.

Every matrix entry cloned hexpm main and compiled it with the same OTP and
Elixir. Since 2026-10-09 that step took a median of 114 s of each 210 s job,
117 s in https://github.com/hexpm/hex/actions/runs/38722458025/job/116380099081,
87 s of it compiling dependencies in a single process. The build is now
cached under one key for all entries, only main writes it, and a change to
hexpm's mix.lock or config restores the newest entry instead of compiling
from scratch. Dependencies compile across two OS processes and the clone is
shallow.

A pull request from a branch in this repository ran CI for the commit its
branch push had already tested: 49 runs and 2,522 minutes of runner time
from 2026-09-15 to 2026-10-15. Jobs now run for pushes and for pull requests
from forks.

The hexpm the tests start runs on Postgres 18, the version production runs.

Jobs have timeouts. A hung run,
https://github.com/hexpm/hex/actions/runs/36333046898, ran for 47 minutes
before it was cancelled.
@ericmj
ericmj marked this pull request as ready for review October 15, 2026 21:14
@ericmj
ericmj merged commit 2fd2598 into main Oct 15, 2026
15 checks passed
@ericmj
ericmj deleted the ci-tuning branch October 15, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant