{"id":11772261,"name":"ethpandaops/hive-github-action","ecosystem":"actions","description":"Run Ethereum Hive tests with a given client and simulator","homepage":"https://github.com/ethereum/hive","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/ethpandaops/hive-github-action","keywords_array":["ci","continuous-integration","ethereum","hive","simulation","specification","testing"],"namespace":"ethpandaops","versions_count":9,"first_release_published_at":"2025-01-15T21:35:56.000Z","latest_release_published_at":"2026-02-19T13:44:48.000Z","latest_release_number":"v0.6.3","last_synced_at":"2026-05-17T22:47:23.529Z","created_at":"2025-06-07T21:20:21.862Z","updated_at":"2026-05-17T22:47:23.529Z","registry_url":"https://github.com/ethpandaops/hive-github-action","install_command":null,"documentation_url":null,"metadata":{"name":"Ethereum Hive","description":"Run Ethereum Hive tests with a given client and simulator","branding":{"icon":"align-justify","color":"orange"},"inputs":{"simulator":{"description":"Simulator to run (e.g. ethereum/sync)","required":true,"default":"ethereum/sync"},"client":{"description":"Client to test","required":true,"default":"go-ethereum"},"client_config":{"description":"Client configuration in YAML format","required":false},"extra_flags":{"description":"Additional flags for hive","required":false},"skip_tests":{"description":"Skip tests. Useful when used together with input.website_upload = \"true\" to upload the website without running tests.","required":false,"default":"false"},"hive_repository":{"description":"Hive repository to use","required":false,"default":"ethereum/hive"},"hive_version":{"description":"Hive version/branch to use","required":false,"default":"master"},"go_version":{"description":"Go version used to build hive","required":false,"default":"1.24"},"docker_version":{"description":"Docker version to use","required":false,"default":"latest"},"s3_upload":{"description":"Upload test results to S3","required":false,"default":"false"},"s3_bucket":{"description":"S3 bucket name","required":false},"s3_path":{"description":"Path prefix in S3 bucket","required":false,"default":""},"s3_public_url":{"description":"Public URL prefix for Hive UI. Used to generate links to detailed results in the summary.","required":false,"default":""},"rclone_config":{"description":"Rclone config file","required":false,"default":""},"rclone_version":{"description":"Rclone version to use","required":false,"default":"latest"},"website_upload":{"description":"Upload Hive View website to S3","required":false,"default":"true"},"website_listing_limit":{"description":"Limit the number of listings to generate for the website index","required":false,"default":"2000"},"website_index_generation":{"description":"(Re)generate the test results index for the website","required":false,"default":"true"},"workflow_artifact_upload":{"description":"Upload test results as an workflow artifact","required":false,"default":"false"},"workflow_artifact_prefix":{"description":"Prefix for the workflow artifacts. If not provided, the prefix will be the simulator and client name.","required":false,"default":""}},"runs":{"using":"composite","steps":[{"name":"Install go","uses":"actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c","with":{"go-version":"${{ inputs.go_version }}","cache":false}},{"name":"Install docker","uses":"docker/setup-docker-action@e61617a16c407a86262fb923c35a616ddbe070b3","with":{"version":"${{ inputs.docker_version }}"}},{"name":"Restart docker (iptables bug)","shell":"bash","run":"sudo systemctl restart docker"},{"name":"Checkout hive","uses":"actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3","with":{"repository":"${{ inputs.hive_repository }}","ref":"${{ inputs.hive_version }}","path":"./src"}},{"name":"Build hive and hiveview","working-directory":"./src","shell":"bash","run":"go build -o hive .\ngo build -o hiveview ./cmd/hiveview\n"},{"name":"Create results directory","working-directory":"./src","shell":"bash","run":"mkdir -p results"},{"name":"Setup client config","if":"inputs.client_config != ''","working-directory":"./src","shell":"bash","run":"echo \"${{ inputs.client_config }}\" \u003e client-config.yaml\necho \"CLIENT_CONFIG_FLAG=--client-file=client-config.yaml\" \u003e\u003e $GITHUB_ENV\n"},{"name":"Run hive tests","if":"inputs.skip_tests != 'true'","working-directory":"./src","shell":"bash","run":"set -x\n(./hive \\\n  --sim \"${{ inputs.simulator }}\" \\\n  --client \"${{ inputs.client }}\" \\\n  --results-root results \\\n  ${CLIENT_CONFIG_FLAG:-} \\\n  ${{ inputs.extra_flags }} \\\n   2\u003e\u00261 || true ) | tee hive.log\n\n# Check the last 10 lines of the log for the success message\nif tail -n 10 hive.log | grep -q \"simulation .* finished\"; then\n  echo \"RUN_SUCCESS=true\" \u003e\u003e $GITHUB_ENV\n  exit 0\nelse\n  echo \"RUN_SUCCESS=false\" \u003e\u003e $GITHUB_ENV\n  exit 1\nfi\n"},{"name":"Inform of skipped tests","if":"inputs.skip_tests == 'true'","shell":"bash","run":"echo \"RUN_SUCCESS=true\" \u003e\u003e $GITHUB_ENV\necho \"Tests were skipped\"\n"},{"name":"Set artifact name","if":"${{ inputs.workflow_artifact_upload == 'true' \u0026\u0026 inputs.skip_tests != 'true' }}","shell":"bash","run":"if [ -n \"${{ inputs.workflow_artifact_prefix }}\" ]; then\n  echo \"WORKFLOW_ARTIFACT_PREFIX=${{ inputs.workflow_artifact_prefix }}\" \u003e\u003e $GITHUB_ENV\nelse\n  SIMULATOR_NAME=${{ inputs.simulator }}\n  # replace / in simulator name with - because artifact names cannot contain /\n  SIMULATOR_NAME=\"${SIMULATOR_NAME//\\//-}\"\n  CLIENT_NAME=${{ inputs.client }}\n  echo \"WORKFLOW_ARTIFACT_PREFIX=$SIMULATOR_NAME-$CLIENT_NAME\" \u003e\u003e $GITHUB_ENV\nfi\n"},{"name":"Upload test results as workflow artifact","if":"${{ inputs.workflow_artifact_upload == 'true' \u0026\u0026 inputs.skip_tests != 'true' }}","uses":"actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4","with":{"name":"${{ env.WORKFLOW_ARTIFACT_PREFIX }}-results.zip","path":"src/results"}},{"name":"Upload client config as workflow artifact","if":"${{ inputs.workflow_artifact_upload == 'true' \u0026\u0026 inputs.client_config != '' \u0026\u0026 inputs.skip_tests != 'true' }}","uses":"actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4","with":{"name":"${{ env.WORKFLOW_ARTIFACT_PREFIX }}-client-config.yaml","path":"src/client-config.yaml"}},{"name":"Setup Rclone for S3 upload","if":"${{ inputs.s3_upload == 'true' \u0026\u0026 env.RUN_SUCCESS == 'true' }}","uses":"AnimMouse/setup-rclone@0d99fa3878a334d3e307c1a8372ad55550fdaea7","with":{"rclone_config":"${{ inputs.rclone_config }}","version":"${{ inputs.rclone_version }}"}},{"name":"Upload results to S3","if":"${{ inputs.s3_upload == 'true' \u0026\u0026 env.RUN_SUCCESS == 'true' \u0026\u0026 inputs.skip_tests != 'true' }}","shell":"bash","run":"rclone copy --no-traverse --exclude \"hive.json\" src/results s3:${{ inputs.s3_bucket }}/${{ inputs.s3_path }}/results\n"},{"name":"Generate hive view website assets and upload to S3","if":"${{\n  inputs.s3_upload == 'true' \u0026\u0026\n  inputs.website_upload == 'true' \u0026\u0026\n  env.RUN_SUCCESS == 'true'\n}}","working-directory":"./src","shell":"bash","run":"echo \"Deploying hive view\"\n./hiveview --deploy hive-www\necho \"Uploading hive view to S3\"\nrclone copy --no-traverse hive-www s3:${{ inputs.s3_bucket }}/${{ inputs.s3_path }}\n"},{"name":"Update hive view index and upload to S3","if":"${{\n  inputs.s3_upload == 'true' \u0026\u0026\n  env.RUN_SUCCESS == 'true' \u0026\u0026\n  inputs.website_index_generation == 'true'\n}}","working-directory":"./src","shell":"bash","run":"echo \"Fetching results from S3\"\nrclone copy --progress --transfers=100 --include \"*.json\" s3://${{ inputs.s3_bucket }}/${{ inputs.s3_path }}/results tmp_results\necho \"Generate listings file:\"\n./hiveview --listing --limit=${{ inputs.website_listing_limit }} --logdir tmp_results \u003e listing.jsonl\ncat listing.jsonl\necho \"Upload listings file to S3\"\nrclone copy listing.jsonl s3:${{ inputs.s3_bucket }}/${{ inputs.s3_path }}/\n"},{"name":"Inform that only the website was uploaded","if":"inputs.skip_tests == 'true' \u0026\u0026 inputs.website_upload == 'true'","shell":"bash","run":"echo \"\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"No tests were run. Just the website was uploaded and the index was updated.\" \u003e\u003e $GITHUB_STEP_SUMMARY\n"},{"name":"Generate summary","if":"inputs.skip_tests != 'true'","shell":"bash","run":"# Add the command executed\necho \"\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"## Command\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\\`\\`\\`bash\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"hive --sim \\\"${{ inputs.simulator }}\\\" --client \\\"${{ inputs.client }}\\\" --results-root results ${CLIENT_CONFIG_FLAG:-} ${{ inputs.extra_flags }}\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\\`\\`\\`\" \u003e\u003e $GITHUB_STEP_SUMMARY\n"},{"name":"Generate summary for client config","if":"${{ inputs.client_config != '' \u0026\u0026 inputs.skip_tests != 'true' }}","shell":"bash","run":"echo \"\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\u003cdetails\u003e\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\u003csummary\u003eclient-config.yaml\u003c/summary\u003e\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\\`\\`\\`yaml\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"${{ inputs.client_config }}\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\\`\\`\\`\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\" \u003e\u003e $GITHUB_STEP_SUMMARY\necho \"\u003c/details\u003e\" \u003e\u003e $GITHUB_STEP_SUMMARY\n"},{"name":"Convert JSON results to markdown summaries","if":"env.RUN_SUCCESS == 'true' \u0026\u0026 inputs.skip_tests != 'true'","shell":"bash","run":"set -x\nls -lah $GITHUB_ACTION_PATH/\nfor json_file in src/results/*.json; do\n  if [ -f \"$json_file\" ] \u0026\u0026 [[ \"$json_file\" != *\"hive.json\" ]]; then\n    $GITHUB_ACTION_PATH/scripts/json-result-to-md-summary.sh \"$json_file\" \"${{ inputs.s3_public_url }}\"\n    cat \"${json_file%.*}.md\" \u003e\u003e $GITHUB_STEP_SUMMARY\n  fi\ndone\n"}]},"default_branch":"master","path":null},"repo_metadata":{"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":"2025-12-01T13:48:29.000Z","size":103,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-04T00:41:57.984Z","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":"2025-12-01T13:48:24.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":7,"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":29322999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"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"},"tags":[]},"repo_metadata_updated_at":"2026-02-11T15:21:24.004Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":34.34343434343434,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":17.17171717171717},"purl":"pkg:githubactions/ethpandaops/hive-github-action","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/actions/ethpandaops/hive-github-action","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/actions/ethpandaops/hive-github-action","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/actions/ethpandaops/hive-github-action/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-01T12:13:38.210Z","issues_count":0,"pull_requests_count":26,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":488762.63157894736,"issues_closed_count":0,"pull_requests_closed_count":19,"pull_request_authors_count":4,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.038461538461538464,"merged_pull_requests_count":18,"bot_issues_count":0,"bot_pull_requests_count":6,"past_year_issues_count":0,"past_year_pull_requests_count":26,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":488762.63157894736,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":19,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.038461538461538464,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":6,"past_year_merged_pull_requests_count":18,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethpandaops%2Fhive-github-action/issues","maintainers":[{"login":"skylenet","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skylenet"},{"login":"EthPandaOpsBot","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/EthPandaOpsBot"}],"active_maintainers":[{"login":"skylenet","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skylenet"},{"login":"EthPandaOpsBot","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/EthPandaOpsBot"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/ethpandaops%2Fhive-github-action/codemeta","maintainers":[]}