{"id":46014363,"url":"https://github.com/ethpandaops/hive-github-action","last_synced_at":"2026-03-01T01:01:08.821Z","repository":{"id":271571974,"uuid":"913775707","full_name":"ethpandaops/hive-github-action","owner":"ethpandaops","description":"GitHub action to run Ethereum Hive","archived":false,"fork":false,"pushed_at":"2026-02-19T14:02:13.000Z","size":110,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-02-19T17:33:37.296Z","etag":null,"topics":["ci","continuous-integration","ethereum","hive","simulation","specification","testing"],"latest_commit_sha":null,"homepage":"https://github.com/ethereum/hive","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethpandaops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-08T10:30:03.000Z","updated_at":"2026-02-19T13:44:52.000Z","dependencies_parsed_at":"2025-01-08T15:58:01.417Z","dependency_job_id":"83675399-cdb7-4aaa-9cb9-6b8c07dd0bbb","html_url":"https://github.com/ethpandaops/hive-github-action","commit_stats":null,"previous_names":["ethpandaops/hive-github-action"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ethpandaops/hive-github-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethpandaops","download_url":"https://codeload.github.com/ethpandaops/hive-github-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29957128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ci","continuous-integration","ethereum","hive","simulation","specification","testing"],"created_at":"2026-03-01T01:01:08.117Z","updated_at":"2026-03-01T01:01:08.776Z","avatar_url":"https://github.com/ethpandaops.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ethereum Hive 🐝 Github Action\n\nThis action is a wrapper around [Ethereum Hive](https://github.com/ethereum/hive). It allows you to run tests with different clients and simulators. It also supports uploading test results to S3 and/or as a workflow artifact.\n\n\u003e ⚠️ **Note:** This action is still under development and may introduce breaking changes. If you want to use it in your workflows, make sure to reference to a specific commit hash or tag/release.\n\n## Used in\n\nHere are some examples of how this action is used in other repositories:\n\n- [`ethpandaops/hive-testnets`](https://github.com/ethpandaops/hive-tests/tree/master/.github/workflows) - Runs some generic hive tests targeting the latest client releases and hive simulators.\n- [`ethpandaops/fusaka-devnets`](https://github.com/ethpandaops/fusaka-devnets/tree/master/.github/workflows) - Runs tests for the [Fusaka](https://eips.ethereum.org/EIPS/eip-7607) hardfork.\n- [`ethpandaops/pectra-devnets`](https://github.com/ethpandaops/pectra-devnets/tree/master/.github/workflows) - Runs tests for the [Pectra](https://eips.ethereum.org/EIPS/eip-7600) hardfork.\n\n## Input\n## Inputs\n\n### Test Configuration\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `simulator` | Simulator to run (e.g. ethereum/sync) | Yes | `ethereum/sync` |\n| `client` | Client to test | Yes | `go-ethereum` |\n| `client_config` | Client configuration in YAML format | No | - |\n| `extra_flags` | Additional flags to pass to hive | No | - |\n| `skip_tests` | Skip tests. Useful when used together with input.website_upload = \"true\" to upload the website without running tests. | No | `false` |\n\n### Hive Configuration\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `hive_repository` | Hive repository to use | No | `ethereum/hive` |\n| `hive_version` | Hive version/branch to use | No | `master` |\n| `go_version` | Go version used to build hive | No | `1.24` |\n| `docker_version` | Docker version to use | No | `latest` |\n\n### S3 Upload Configuration\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `s3_upload` | Upload test results to S3 | No | `false` |\n| `s3_bucket` | S3 bucket name | No* | - |\n| `s3_path` | Path prefix in S3 bucket | No | `hive-results` |\n| `rclone_version` | Rclone version to use | No | `latest` |\n| `rclone_config` | Base64 encoded rclone config file | No | - |\n| `website_upload` | Upload Hive View website | No | `true` |\n| `website_listing_limit` | The amount of listings to generate for the website index | No | `2000` |\n| `website_index_generation` | (Re)generate the test results index for the website | No | `true` |\n\n*Required if `s3_upload` is `true`\n\n### GitHub Workflow Artifact Configuration\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `workflow_artifact_upload` | Upload test results as a workflow artifact | No | `false` |\n| `workflow_artifact_prefix` | Name of the workflow prefix. If not provided, the prefix will be the simulator and client name. | No | - |\n\n## Examples\n\n### Simple example doing sync tests with the latest go-ethereum\n\n```yaml\n- uses: ethpandaops/hive-github-action@v0.2.0\n  with:\n    client: go-ethereum\n    simulator: ethereum/sync\n```\n\n### With custom client config\n\nYou can customize the [client configuration](https://github.com/ethereum/hive/blob/master/docs/commandline.md#client-build-parameters). This allows using different docker files that are available for each client and their respective build arguments.\n\n```yaml\nenv:\n  CLIENT_CONFIG: |\n    - client: go-ethereum\n      nametag: prague-devnet-5\n      dockerfile: git\n      build_args:\n        github: ethpandaops/go-ethereum\n        tag: my-custom-branch\n```\n\nThen you can use the `CLIENT_CONFIG` environment variable in your workflow.\n\n```yaml\n- uses: ethpandaops/hive-github-action@v0.2.0\n  with:\n    client: go-ethereum\n    simulator: ethereum/sync\n    client_config: ${{ env.CLIENT_CONFIG }}\n```\n\n### Uploading the results directory to S3\n\nYou'll need to create an rclone config and base64 encode it. Then store it as a github actions secret on your repository.\n\nAn example rclone config could look like this:\n\n```toml\n# Content of rclone.conf\n[s3]\ntype = s3\nprovider = Cloudflare\nregion = auto\nendpoint = https://your-r2-account-id.r2.cloudflarestorage.com\naccess_key_id = your-access-key-id\nsecret_access_key = your-secret-access-key\nno_check_bucket = true\n```\n\nThen you can run `base64 -w 0 rclone.conf` and store the output as a github actions secret.\n\nAfterwards you just need to reference the secret for the `rclone_config` input.\n\n```yaml\n- uses: ethpandaops/hive-github-action@v0.2.0\n  with:\n    client: go-ethereum\n    simulator: ethereum/sync\n    client_config: ${{ env.CLIENT_CONFIG }}\n    s3_upload: true\n    s3_bucket: my-bucket\n    s3_path: my-path\n    rclone_config: ${{ secrets.RCLONE_CONFIG }}\n```\n\n### Just upload the website using hiveview without running tests\n\n```yaml\n- uses: ethpandaops/hive-github-action@v0.2.0\n  with:\n    website_upload: true # This is required to upload the website\n    skip_tests: true # This is required to skip the tests\n    s3_upload: true\n    s3_bucket: my-bucket\n    s3_path: my-path\n    rclone_config: ${{ secrets.RCLONE_CONFIG }}\n```\n\n### Uploading the results directory as an GitHub workflow artifact\n\nThis will upload the test results as a workflow artifact. By default the artifact prefix will be the simulator and client name. You can override this by providing a `workflow_artifact_prefix` input.\n```yaml\n- uses: ethpandaops/hive-github-action@v0.2.0\n  with:\n    client: go-ethereum\n    simulator: ethereum/sync\n    workflow_artifact_upload: true\n    # workflow_artifact_prefix: my-custom-prefix\n```\n\n## Local testing and development\n\nTo test the action locally, you can run [act](https://github.com/nektos/act) with the following command:\n\n```bash\nact -s GITHUB_TOKEN=\"$(gh auth token)\" -W '.github/workflows/test.yaml'\n```\n\nOr if you configured a custom runner, you can run `act` with the following command:\n\n```bash\nact -s GITHUB_TOKEN=\"$(gh auth token)\" -W '.github/workflows/your-workflow.yaml' -P your-self-hosted-runner=catthehacker/ubuntu:act-latest\n```\n\n## License\n\nRefer to the repository's license file for information on the licensing of this GitHub Action and the associated software.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethpandaops%2Fhive-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethpandaops%2Fhive-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethpandaops%2Fhive-github-action/lists"}