Commit Graph

279 Commits

Author SHA1 Message Date
Michael Sproul
4e35e9d587 Add cargo deny on CI (#8580)
Closes:

- https://github.com/sigp/lighthouse/issues/8408


  Add `cargo deny` on CI with deprecated crates (`ethers` and `ethereum-types`) banned and duplicates banned for `reqwest`.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2025-12-16 09:02:34 +00:00
Jimmy Chen
f42b14ac58 Update local testnet scripts for the fulu fork (#8489)
* Remove `fulu-devnet-3` testing on CI
* Delete `scripts/local_testnet/network_params_das.yaml` and consolidate it into the main `network_params.yaml` file we use on CI
* Delete enclave before building image, so it doesn't cause slow image building.


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2025-12-01 22:09:08 +00:00
Moe Mahhouk
713e477912 feat: Add reproducible builds release workflows and push images to DockerHub (#7614)
This pull request introduces workflows and updates to ensure reproducible builds for the Lighthouse project. It adds two GitHub Actions workflows for building and testing reproducible Docker images and binaries, updates the `Makefile` to streamline reproducible build configurations, and modifies the `Dockerfile.reproducible` to align with the new build process. Additionally, it removes the `reproducible` profile from `Cargo.toml`.


  ### New GitHub Actions Workflows:

* [`.github/workflows/docker-reproducible.yml`](diffhunk://#diff-222af23bee616920b04f5b92a83eb5106fce08abd885cd3a3b15b8beb5e789c3R1-R145): Adds a workflow to build and push reproducible multi-architecture Docker images for releases, including support for dry runs without pushing an image.

### Build Configuration Updates:

* [`Makefile`](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L85-R143): Refactors reproducible build targets, centralizes environment variables for reproducibility, and updates Docker build arguments for `x86_64` and `aarch64` architectures.
* [`Dockerfile.reproducible`](diffhunk://#diff-587298ff141278ce3be7c54a559f9f31472cc5b384e285e2105b3dee319ba31dL1-R24): Updates the base Rust image to version 1.86, removes hardcoded reproducibility settings, and delegates build logic to the `Makefile`.
* Switch to using jemalloc-sys from Debian repos instead of building it from source. A Debian version is [reproducible](https://tests.reproducible-builds.org/debian/rb-pkg/trixie/amd64/jemalloc.html) which is [hard to achieve](https://github.com/NixOS/nixpkgs/issues/380852) if you build it from source.

### Profile Removal:

* [`Cargo.toml`](diffhunk://#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542L289-L295): Removes the `reproducible` profile, simplifying build configurations and relying on external tooling for reproducibility.


Co-Authored-By: Moe Mahhouk <mohammed-mahhouk@hotmail.com>

Co-Authored-By: chonghe <44791194+chong-he@users.noreply.github.com>

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2025-11-27 23:06:31 +00:00
Jimmy Chen
d59e340d3b Add nightly tests workflow to test prior forks (#8319)
Once #8271 is merged, CI will only cover tests for `RECENT_FORKS` (prev, current, next)

To make sure functionalities aren't broken for prior forks, we run tests for these forks nightly. They can also be manually triggered.

Tested via manual trigger here: https://github.com/jimmygchen/lighthouse/actions/runs/18896690117

<img width="826" height="696" alt="image" src="https://github.com/user-attachments/assets/afdfb03b-a037-4094-9f1b-7466c0800f6b" />


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>

Co-Authored-By: Jimmy Chen <jimmy@sigmaprime.io>
2025-11-19 00:51:41 +00:00
lmnzx
e6e3d783ad CI workflows to use warpbuild ci runner (#8343)
Self hosted GitHub Runners review and improvements


  local testnet workflow now uses warpbuild ci runner


Co-Authored-By: lemon <snyxmk@gmail.com>

Co-Authored-By: antondlr <anton@sigmaprime.io>
2025-11-05 12:47:36 +00:00
antondlr
efadbb315a Remove Windows CI jobs (#8362)
Remove all Windows-related CI jobs


  


Co-Authored-By: antondlr <anton@sigmaprime.io>
2025-11-05 03:53:01 +00:00
Michael Sproul
c1fb060ae1 Merge remote-tracking branch 'origin/stable' into unstable 2025-09-22 11:03:46 +10:00
Jimmy Chen
366fb0ee0d Always upload sim test logs (#8082)
This CI job failed

https://github.com/sigp/lighthouse/actions/runs/17815533375/job/50647915897

But we lost the logs because they aren't uploaded when the job fails. This PR changes the step to always upload job, even in the case of failure.


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2025-09-19 12:58:46 +00:00
Jimmy Chen
3cb7e59be2 Update issue template (#7938)
* Update issue template

* Delete old issue template
2025-09-18 11:17:31 +10:00
Toki
5928407ce4 fix(rate_limiter): add missing prune calls for light client protocols (#8058)
Co-Authored-By: Jimmy Chen <jimmy@sigmaprime.io>

Co-Authored-By: gitToki <tokipro@proton.me>
2025-09-17 04:51:43 +00:00
Daniel Ramirez-Chiquillo
2ecbb7f90b Remove cargo test targets, use nextest exclusively (#7874)
Fixes #7835


  - Remove cargo test-based Make targets (`test-release`, `test-debug`, `run-ef-tests`)
- Update aliases (`test`, `test-full`, `test-ef`) to use existing nextest equivalents
- Update contributing documentation to use nextest examples
- Fix example commands that previously referenced non-existing packages (`ssz`/`eth2_ssz`)


Co-Authored-By: Daniel Ramirez-Chiquillo <hi@danielrachi.com>
2025-09-10 13:52:34 +00:00
Jimmy Chen
fd10b63274 Add co-author to mergify commits (#7993)
* Add co-author to mergify commits.

* Remove unnecessary pull request rules from mergify config.

* Revert automation removals
2025-09-05 07:54:30 +10:00
Jimmy Chen
78b4cca46b Run sync tests on CI by default. (#7929)
This PR enables some sync tests by default on CI - this will help catch breakages on sync happy paths, e.g. this would have caught the bug #7926 if lighthouse is not able to sync OR serve sync requests.

The enabled tests are genesis-sync with 120s / 300s offline time, and should cover both serving / consuming by root and by range requests.

I'm leaving the checkpoint sync tests optional, as it has external dependencies on checkpoint server (which may cause CI instability) and may cause extra loads on them.
2025-08-26 02:49:50 +00:00
antondlr
5ebb44e222 Try using sccache instead of disabling (#7873)
We temporarily can't build sccache on windows runners, but it's still available on linux.
this smol change lets us use it when available, instead of disabling across the board.


  The Windows runners now have a conditional check to disable (unset the `rustc-wrapper` env var) sccache in their entrypoint, just like the Linux ones have.
Also the workflows no longer fail when `sccache --show-stats` fails.
2025-08-14 00:10:13 +00:00
Michael Sproul
bd6b8b6a65 Disable sccache to fix Windows builds (#7867)
Quick fix to unblock Windows CI. I have a hammer and I'm using it.
2025-08-13 01:51:19 +00:00
antondlr
6604fd10b4 Deprecate macOS-x86 binaries (#7862)
Rust is demoting x86 for macOS: https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/
This makes it unfeasible to maintain such a build going forward.


  Stop publishing `x86_64-apple-darwin` binaries.
2025-08-12 07:23:31 +00:00
Eitan Seri-Levi
d6de8a7484 Add additional broadcast validation tests for Fulu/PeerDAS (#7325)
Closes #6855


  Add PeerDAS broadcast validation tests and fix a small bug where `sampling_columns_indices` is none (indicating that we've already sampled the necessary columns) and `process_gossip_data_columns` gets called
2025-07-17 07:50:28 +00:00
Michael Sproul
7b2f138ca7 Merge remote-tracking branch 'origin/stable' into release-v7.1.0 2025-07-09 11:19:16 +10:00
Michael Sproul
25ea8a83b7 Add Michael as codeowner for store crate (#7667)
I'm adding myself as a codeowner for the `store` crate so that I can more easily keep track of database-related PRs.
2025-06-30 10:47:52 +00:00
chonghe
7416d06dce Add genesis sync test to CI (#7561)
* #7550

Use existing code from  @jimmygchen in #7530 and modify for genesis sync test. Thanks @jimmygchen !
2025-06-11 09:51:37 +00:00
Jimmy Chen
9a4972053e Add e2e sync tests to CI (#7530)
This PR adds the following sync tests to CI workflow - triggered when a PR is labeled `syncing` - to ensure we have some e2e coverage on basic sync scenarios:
- [x] checkpoint sync to a live network (covers range and backfill sync for _current_ fork)
- [x] checkpoint sync to a running devnet (covers range and backfill sync for _next_ fork)

It seems to work fine running on github hosted runners - but if performance become an issue we could switch to using self hosted runners for sepolia sync test. (standard CPU runners have 4 CPU, 16 GB ram - i think it _should_ be enough on sepolia / devnet networks)

The following tests have been **removed** from this PR and moved to a separate issue *(#7550)
- [x] genesis sync on a local devnet (covers current and next fork)
- [x] brief shutdown and restart (covers lookup sync)
- [x] longer shutdown and restart (covers range sync)

I'm hoping to keep these e2e test maintenance effort to a minimum - hopefully longer term we could have some generic e2e tests that works for all clients and the maintenance effort can be spread across teams.

### Latest test run:
https://github.com/sigp/lighthouse/actions/runs/15411744248

### Results:
<img width="687" alt="image" src="https://github.com/user-attachments/assets/c7178291-7b39-4f3b-a339-d3715eb16081" />
<img width="693" alt="image" src="https://github.com/user-attachments/assets/a8fc3520-296c-4baf-ae1e-1e887e660a3c" />

#### logs are available as artifacts:
<img width="629" alt="image" src="https://github.com/user-attachments/assets/3c0e1cd7-9c94-4d0c-be62-5e45179ab8f3" />
2025-06-05 08:31:55 +00:00
Akihito Nakano
886ceb7e25 Run Assertoor tests in CI (#6882)
Added Assertoor tests to the local-testnet CI.


  - The assertoor logs are included in the `logs-local-testnet` that is uploaded to GitHub Artifacts.
- Use `start_local_testnet.sh` so that we can also easily run the test locally.
2025-06-02 00:47:06 +00:00
Jimmy Chen
9e9c51be6f Remove redundant and 2025-05-28 10:59:17 +10:00
Jimmy Chen
b7fc03437b Fix condition 2025-05-28 10:55:14 +10:00
Jimmy Chen
8dde5bdb44 Update mergify rules so that I can add waiting-on-author on a PR that's passing CI. Remove noisy comments. 2025-05-27 23:15:07 +10:00
Akihito Nakano
537fc5bde8 Revive network-test logs files in CI (#7459)
https://github.com/sigp/lighthouse/issues/7187


  This PR adds a writer that implements `tracing_subscriber::fmt::MakeWriter`, which writes logs to separate files for each test.
2025-05-22 02:51:22 +00:00
Jimmy Chen
7759cb8f91 Update mergify rule to not evaluate PRs that are not ready for review - to reduce noise and avoid updating stale PRs. (#7494) 2025-05-21 18:18:48 +10:00
Jimmy Chen
e21198c08b One more attempt to fix mergify condition. (#7472) 2025-05-16 13:55:06 +10:00
Jimmy Chen
e0ee148d6a Prevent mergify from updating labels while CI is still running. (#7470) 2025-05-16 11:46:21 +10:00
Jimmy Chen
cc6ae9d3f0 Fix mergify infinite loop. (#7463)
* Fix mergify infinite loop.

* Update rule for `ready-for-review` label.

* More fix to prevent infinite loop
2025-05-15 16:54:56 +10:00
Jimmy Chen
b1138c28fb Add additional mergify rules to automate triaging (#7451)
* Add additional mergify rules to automate triaging.

* Update mergify config.
2025-05-15 15:54:24 +10:00
Akihito Nakano
e0c1f27e13 simulator: Persist beacon logs (#7394)
Beacon logs in the simulator are printed only to stdout. The logs are usually large, so persisting them would be helpful for debugging.


  Added `--log-dir` parameter to the simulators and a step to upload the logs to Artifacts.

(Update)
Added `--disable-stdout-logging` to disable stdout logging, making the CI page cleaner.
2025-05-09 10:50:08 +00:00
Jimmy Chen
4b9c16fc71 Add Electra forks to basic sim tests (#7199)
This PR adds transitions to Electra ~~and Fulu~~ fork epochs in the simulator tests.

~~It also covers blob inclusion verification and data column syncing on a full node in Fulu.~~

UPDATE: Remove fulu fork from sim tests due to https://github.com/sigp/lighthouse/pull/7199#issuecomment-2852281176
2025-05-08 08:43:44 +00:00
chonghe
e90fcbe657 Add ARM binary for macOS in release (#7416)
* #5410
2025-05-08 06:12:57 +00:00
Tim Fan
5527125f5e Fix GitHub releases page looks bad in GitHub dark theme (#7340)
#2573


  Change release page display in dark theme.

Before

<img width="1028" alt="image" src="https://user-images.githubusercontent.com/574696/132262479-c1e5c904-576f-4878-8a10-6012e0c51620.png" />

After:

<img width="1028" alt="image" src="https://github.com/user-attachments/assets/e6f42090-f9eb-4da7-9567-521124ea2f10" />

Others stay unchanged
2025-04-22 09:40:36 +00:00
Michael Sproul
e61e92b926 Merge remote-tracking branch 'origin/stable' into unstable 2025-04-22 18:55:06 +10:00
chonghe
80fe133d2c Update Lighthouse Book for Electra features (#7280)
* #7227
2025-04-17 09:31:26 +00:00
Michael Sproul
c7acffc171 Merge remote-tracking branch 'origin/stable' into release-v7.0.0 2025-04-17 17:40:00 +10:00
Mac L
1235d44802 Remove watch (#7048)
Removes the WIP chain indexer known as beacon watch.
2025-03-05 05:57:09 +00:00
João Oliveira
01df433dfd update codeowners, to be more specific (#7021)
I keep being notified for PR's like https://github.com/sigp/lighthouse/pull/7009 where it doesn't touch the specified directories in the `CODEOWNERS` file.
After reading the [docs](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) not having a forward slash in beginning of the path means:
>  In this example, @octocat owns any file in an apps directory
> anywhere in your repository.

whereas with the slashes:
> In this example, @doctocat owns any file in the `/docs`
> directory in the root of your repository and any of its
> subdirectories.

this update makes it more rigid for the files in the jxs ownership
2025-02-24 03:39:18 +00:00
Pawan Dhananjay
b3b6aea1c5 Rust 1.85 lints (#7019)
N/A


  2 changes:
1. Replace Option::map_or(true, ...) with is_none_or(...)
2. Remove unnecessary `Into::into` blocks where the type conversion is apparent from the types
2025-02-24 02:36:13 +00:00
Jimmy Chen
bf955c7543 Update mergify conditions for trivial and ready-for-merge labels to satisfy if base is not stable (#6997) 2025-02-14 10:23:38 +11:00
Eitan Seri-Levi
56f201a257 Add check to Lockbud CI job (#6898) 2025-02-04 02:00:37 +00:00
Jimmy Chen
e4183f8e4d Fix mdbook build. (#6891)
https://github.com/sigp/lighthouse/actions/runs/13063781937/job/36452383133

`mdbook` ci job above is failing because the latest release now requires a newer version of glibc:

> Updated the Linux pre-built binaries which requires a newer version of glibc (2.34). https://github.com/rust-lang/mdBook/pull/2523

https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md

Updating to latest ubuntu to fix this.
2025-01-31 03:39:34 +00:00
João Oliveira
029b4f2104 Improve mergify config (#6852)
* improve mergify config

* negate conflict
2025-01-24 11:43:51 +11:00
Michael Sproul
6b6f2beb7d Fix branch/tag names in mergify config (#6842) 2025-01-23 11:01:11 +11:00
João Oliveira
dc73791f35 update script for new mergify syntax (#6597) 2025-01-23 09:55:55 +11:00
Eitan Seri-Levi
a244aa3a69 Add libssl install to udeps task (#6777)
* Add libssl install to udeps task

* Use HTTPS
2025-01-10 01:13:32 +00:00
realbigsean
84519010f2 add joao CODEOWNERS (#6762)
* add joao CODEOWNERS
2025-01-08 00:39:48 +00:00
Daniel Knopik
f51a292f77 fully lint only explicitly to avoid unnecessary rebuilds (#6753)
* fully lint only explicitly to avoid unnecessary rebuilds
2025-01-03 19:27:21 +00:00