{"id":16113198,"url":"https://github.com/joshka/github-workflows","last_synced_at":"2025-10-03T23:18:24.129Z","repository":{"id":227199832,"uuid":"770747425","full_name":"joshka/github-workflows","owner":"joshka","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-25T05:48:48.000Z","size":16,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-12T12:56:23.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-12T04:52:38.000Z","updated_at":"2025-01-08T02:05:49.000Z","dependencies_parsed_at":"2024-03-30T19:47:55.328Z","dependency_job_id":null,"html_url":"https://github.com/joshka/github-workflows","commit_stats":null,"previous_names":["joshka/github-workflows"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshka%2Fgithub-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshka%2Fgithub-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshka%2Fgithub-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshka%2Fgithub-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshka","download_url":"https://codeload.github.com/joshka/github-workflows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247447921,"owners_count":20940416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-09T20:10:32.624Z","updated_at":"2025-10-03T23:18:19.096Z","avatar_url":"https://github.com/joshka.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub workflows\n\nThis repository contains a collection of [reusable GitHub workflows] for use in Rust projects.\n\n- [rust-check](#rust-check)\n- [rust-release-plz](#rust-release-plz)\n- [rust-test](#rust-test)\n\n[reusable GitHub workflows]: https://docs.github.com/en/actions/using-workflows/reusing-workflows\n\n## Usage\n\n- Fork this repo to your own user.\n- In your application or library crate, add 3 files pointing to your fork.\n- Copy the contents below and change the username (If you skip this step, any changes to this template will directly affect your builds).\n  - .github/workflows/check.yml\n  - .github/workflows/test.yml\n  - .github/workflows/release-plz.yml\n- Follow the instructions on each of the workflows to set the right settings\n\n## Rust Check\n\n[rust-check.yml](.github/workflows/rust-check.yml)\n\n- formatting using rustfmt\n- lints using clippy and [rs-clippy-check](https://github.com/marketplace/actions/rs-clippy-check)\n- docs (using nightly)\n- msrv\n\n```yaml\n# .github/workflows/check.yml\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  check:\n    permissions:\n      checks: write\n    uses: joshka/github-workflows/.github/workflows/rust-check.yml@main\n    with:\n      msrv: 1.76.0 # this is optional defaults to 1.56.0\n```\n\n## Rust Test\n\n[rust-test.yml](.github/workflows/rust-test.yml)\n\nRuns tests:\n\n- ubuntu with stable and beta\n- mac / windows with stable\n- minimal versions\n- upload coverage to codecov.io (requires CODECOV_TOKEN to be added to the repository secrets)\n\n```yaml\n# .github/workflows/test.yml\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  test:\n    uses: joshka/github-workflows/.github/workflows/rust-test.yml@main\n    with:\n      crate_type: lib # (optional) change to bin to avoid running cargo test --doc\n    secrets:\n      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}\n```\n\n## Rust Release-plz\n\n[rust-release-plz.yml](.github/workflows/rust-replease-plz.yml)\n\nPublishes the crate using [Release-plz]. This is pretty neat, it automatically creates or updates\na release PR every time you push to main. Merging the PR automatically releases your crate.\n\nRequired Settings:\n\n- `Settings | Actions | General | Allow GitHub Actions to create and approve pull requests`:  \\\n  ticked\n- `Settings | Secrets and Variables | Actions | Repository Secret | CARGO_REGISTRY_TOKEN`:  \\\n  set to value from \u003chttps://crates.io/settings/tokens\u003e\n\n[Release-plz]: https://release-plz.ieni.dev\n\n```yaml\n# .github/workflows/release-plz.yml\npermissions:\n  pull-requests: write\n  contents: write\n\non:\n  push:\n    branches:\n      - main\njobs:\n  release-plz:\n    uses: joshka/github-workflows/.github/workflows/rust-release-plz.yml@main\n    permissions:\n      pull-requests: write\n      contents: write\n    secrets:\n      CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshka%2Fgithub-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshka%2Fgithub-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshka%2Fgithub-workflows/lists"}