{"id":21034684,"url":"https://github.com/lpenz/ghworkflow-rust","last_synced_at":"2026-03-04T01:34:10.722Z","repository":{"id":41521646,"uuid":"499853358","full_name":"lpenz/ghworkflow-rust","owner":"lpenz","description":"A reusable github workflow for rust projects","archived":false,"fork":false,"pushed_at":"2026-03-01T22:52:29.000Z","size":98,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-02T01:46:58.003Z","etag":null,"topics":["cargo","github-actions","github-workflows","rust"],"latest_commit_sha":null,"homepage":"","language":null,"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/lpenz.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-06-04T14:43:35.000Z","updated_at":"2026-03-01T22:36:23.000Z","dependencies_parsed_at":"2023-02-08T05:45:35.001Z","dependency_job_id":"11d36104-9833-42ca-a2d2-8af9d18f297b","html_url":"https://github.com/lpenz/ghworkflow-rust","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/lpenz/ghworkflow-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpenz%2Fghworkflow-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpenz%2Fghworkflow-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpenz%2Fghworkflow-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpenz%2Fghworkflow-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lpenz","download_url":"https://codeload.github.com/lpenz/ghworkflow-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpenz%2Fghworkflow-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30068557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T01:03:42.280Z","status":"ssl_error","status_checked_at":"2026-03-04T01:03:23.410Z","response_time":61,"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":["cargo","github-actions","github-workflows","rust"],"created_at":"2024-11-19T13:07:59.924Z","updated_at":"2026-03-04T01:34:10.705Z","avatar_url":"https://github.com/lpenz.png","language":null,"readme":"[![CI](https://github.com/lpenz/ghworkflow-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/lpenz/ghworkflow-rust/actions/workflows/ci.yml)\n[![github](https://img.shields.io/github/v/release/lpenz/ghworkflow-rust?logo=github)](https://github.com/lpenz/ghworkflow-rust/releases)\n\n\n# ghworkflow-rust\n\nThis repository provides a reusable github workflow for rust\nprojects. The workflow runs the following jobs:\n- *[cargo-build-release]*: does a `cargo build --release` and makes the `target`\n  directory available for other jobs.\n- *[cargo-check]*\n- *[cargo-doc]*\n- *[cargo-test]*: runs `cargo test` with coverage and uploads results\n  to [coveralls.io] and/or [codecov.io].\n- *[rustfmt]*\n- *[clippy]*\n- *[cargo-audit]*\n- *deb*: installs and runs [cargo-deb]; copies manual to the\n  crate directory, if present.\n  (optional)\n- *rpm*: installs and runs [cargo-generate-rpm]; copies manual\n  to the crate directory, if present.\n  (optional)\n- *rust-misc*: misc checks; for now it checks if the Cargo.lock\n  version matches the one in Cargo.toml.\n- *[cargo-semver-checks]*: checks semver violantions before\n  publishing.\n- *publish-cratesio*: uses [publish-crate] to publish the crate\n  to [crates.io] when the repository is tagged with a version.\n  Requires the `CARGO_REGISTRY_TOKEN` secret.\n  (optional)\n- *publish-packagecloud-deb*: uses [packagecloud] to upload\n  the Debian package built by the `deb` job to\n  [packagecloud.io] when the repository is tagged with a\n  version. Requires the `PACKAGECLOUD_TOKEN` secret and the\n  `deb` input to be `true`.\n  (optional)\n- *publish-packagecloud-rpm*: uses [packagecloud] to upload\n  the RPM package built by the `rpm` job to\n  [packagecloud.io] when the repository is tagged with a\n  version. Requires the `PACKAGECLOUD_TOKEN` secret and the\n  `rpm` input to be `true`.\n  (optional)\n- *publish-github-release*: uses\n  [action-automatic-releases] to publish a [github release]\n  when the repository is tagged with a version.\n  (optional)\n\n\n## Usage\n\nTo use this worflow, with both packagecloud and crates.io uploads\nenabled, use the following in your `.github/workflows/ci.yml`:\n\n```.yml\n---\nname: CI\non: [ push, pull_request ]\njobs:\n  rust:\n    uses: lpenz/ghworkflow-rust/.github/workflows/rust.yml@v0.26.4\n    with:\n      coveralls: true\n      codecov: true\n      deb: true\n      packagecloud: true\n      publish_packagecloud_repository_deb: |\n        [\"debian/debian/bookworm\", \"ubuntu/ubuntu/jammy\"]\n    secrets:\n      CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}\n      PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}\n```\n\nYou may have to enable public reusable workflow usage in your\norganization. See [reusing-workflows] for more information.\n\n\n### Inputs\n\n- `enable_cargo-semver-checks`: enables cargo-semver-checks - default\n  is `true`.\n- `coveralls`: makes *cargo-test* upload test coverage data to\n  [coveralls.io] when `true`.\n- `codecov`: makes *cargo-test* upload test coverage data to [codecov.io]\n  when `true`.\n- `deb`: enables *deb* when `true`.\n- `dependencies_debian`: dependencies as Debian packages to install;\n   used in the appropriate actions if defined\n- `publish_cratesio`: enables the *publish-cratesio* job.\n- `publish_github_release`: enables the *publish-github-release* job.\n- `publish_github_release_files`: files to publish in the github\n  release.\n- `publish_packagecloud_repository_deb`: json list with packagecloud\n  repositories to publish .deb. When defined, it enables the\n  *publish-packagecloud-deb* job.\n- `publish_packagecloud_repository_rpm`: json list with packagecloud\n  repositories to publish .rpm. When defined, it enables the\n  *publish-packagecloud-rpm* job.\n\n\n[cargo-build-release]: https://doc.rust-lang.org/cargo/commands/cargo-build.html\n[cargo-check]: https://doc.rust-lang.org/cargo/commands/cargo-check.html\n[cargo-doc]: https://doc.rust-lang.org/cargo/commands/cargo-doc.html\n[cargo-test]: https://doc.rust-lang.org/cargo/commands/cargo-test.html\n[rustfmt]: https://crates.io/crates/rustfmt-nightly\n[clippy]: https://github.com/actions-rs/clippy-check\n[cargo-audit]: https://crates.io/crates/cargo-audit\n[cargo-deb]: https://crates.io/crates/cargo-deb\n[cargo-generate-rpm]: https://crates.io/crates/cargo-generate-rpm\n[publish-crate]: https://github.com/marketplace/actions/publish-crates\n[packagecloud]: https://github.com/marketplace/actions/deploy-to-packagecloud-io\n[action-automatic-releases]: https://github.com/marketplace/actions/automatic-releases\n[github release]: https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository\n[crates.io]: https://crates.io/\n[packagecloud.io]: https://packagecloud.io/\n[reusing-workflows]: https://docs.github.com/en/actions/using-workflows/reusing-workflows\n[coveralls.io]: https://coveralls.io/\n[codecov.io]: https://codecov.io/\n[cargo-semver-checks]: https://github.com/obi1kenobi/cargo-semver-checks-action\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpenz%2Fghworkflow-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flpenz%2Fghworkflow-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpenz%2Fghworkflow-rust/lists"}