{"id":13794683,"url":"https://github.com/bevyengine/bevy_github_ci_template","last_synced_at":"2025-10-26T00:42:07.541Z","repository":{"id":38081236,"uuid":"454603369","full_name":"bevyengine/bevy_github_ci_template","owner":"bevyengine","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-28T19:47:40.000Z","size":75,"stargazers_count":220,"open_issues_count":13,"forks_count":49,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-03T14:09:45.966Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bevyengine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-Apache-2.0","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":"2022-02-02T00:58:15.000Z","updated_at":"2025-03-10T15:09:36.000Z","dependencies_parsed_at":"2023-12-04T00:21:11.942Z","dependency_job_id":"e489a75f-6703-4165-884a-c62a06169344","html_url":"https://github.com/bevyengine/bevy_github_ci_template","commit_stats":{"total_commits":32,"total_committers":17,"mean_commits":"1.8823529411764706","dds":0.78125,"last_synced_commit":"1df452e77ac768c75001fcbaa39b93d67834aaaa"},"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevyengine%2Fbevy_github_ci_template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevyengine%2Fbevy_github_ci_template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevyengine%2Fbevy_github_ci_template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevyengine%2Fbevy_github_ci_template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bevyengine","download_url":"https://codeload.github.com/bevyengine/bevy_github_ci_template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586244,"owners_count":21128995,"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-08-03T23:00:45.931Z","updated_at":"2025-10-26T00:42:07.475Z","avatar_url":"https://github.com/bevyengine.png","language":"JavaScript","readme":"# Bevy GitHub CI Template\n\nThis repo show how to set up CI on a GitHub project for Bevy.\n\nIt creates two workflows:\n\n* [CI](#CI)\n* [Release](#Release)\n\n## CI\n\nDefinition: [.github/workflows/ci.yaml](./.github/workflows/ci.yaml)\n\nThis workflow runs on every commit to `main` branch, and on every PR targeting the `main` branch.\n\nIt will use rust stable on linux, with cache between different executions, those commands:\n\n* `cargo test`\n* `cargo clippy -- -D warnings`\n* `cargo fmt --all -- --check`\n\nIf you are using anything OS specific or rust nightly, you should update the file [ci.yaml](./.github/workflows/ci.yaml) to use those.\n\n## Release\n\nDefinition: [.github/workflows/release.yaml](./.github/workflows/release.yaml)\n\nThis workflow runs on every tag.\n\nIt will build:\n* For Linux and Windows, a .zip archive containing the executable and the `assets`.\n* For macOS, a dmg image with a .app containing the `assets`.\n* For wasm, a .zip archive with the wasm binary, the js bindings, an html file loading it, and the `assets`.\n\nIf you don't want to target some of those platforms, you can remove the corresponding job from the file [release.yaml](./.github/workflows/release.yaml).\n\nIf you don't want to attach the builds to the GitHub release, set `env.add_binaries_to_github_release` to `false`.\n\nIf you are using Git LFS, set `env.use_git_lfs` to `true` so your assets are properly checked out.\n\n\u003e [!Warning]\n\u003e GitHub's LFS storage has a quota. Please take a look at GitHub's documentation [here](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-storage-and-bandwidth-usage) to understand the quota and costs before enabling this option.\n\n### Git Tag from GitHub UI\n\nYou can follow [Managing releases in a repository](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)\n\n### Git Tag from the CLI\n\nExecute the following commands: \n\n```sh\ngit tag -a \"my-game-1.0\" -m \"First official release\"\ngit push --tags\n```\n\n### Result\n\nA new release will be available in GitHub, with the archives per platform available as downloadable assets.\n\nThe `git` commands above produced this release: [my-game-1.0](\nhttps://github.com/bevyengine/bevy_github_ci_template/releases/tag/my-game-1.0).\n\n## Using the workflows in your own project\n\nIf you would like to use the GitHub workflows included here for your own project, there are a few things you might have to adapt:\n\n1. The release workflow relies on the `index.html` file under `/wasm` for web builds\n2. Make sure that the env variable `binary` ([release.yaml](.github/workflows/release.yaml#L10)) matches the name of your binary\n3. Adapt the used toolchain if you are using nightly\n4. In your GitHub repo's settings, under `Actions -\u003e General` make sure \"Read and Write permissions\" is selected under \"Workflow permissions\" near the bottom. This fixes the error `Error: Resource not accessible by integration`.\n\n\n### Publish on itch.io\n\nThe release flow can be configured to push the releases to itch.io:\n\n1. Create an API key in https://itch.io/user/settings/api-keys\n2. Go to the repository's Settings tab in GitHub, click on Secrets-\u003eActions in the sidebar,and add a repository secret named `BUTLER_CREDENTIALS` set to the API key.\n3. Uncomment `env.itch_target` in `release.yaml` and set it to the itch.io username and the name of the game on itch.io, separated by a slash (`/`)\n\nOnce that is done, any tag pushed to GitHub will trigger an itch.io release and use the tag as the [user version](https://itch.io/docs/butler/pushing.html#specifying-your-own-version-number).\n\n## License\n\nLicensed under either of\n\n* Apache License, Version 2.0\n   ([LICENSE-APACHE-2.0](LICENSE-Apache-2.0) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n* MIT License\n   ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n* CC0-1.0 License\n   ([LICENSE-CC0-1.0](LICENSE-CC0-1.0) or \u003chttps://creativecommons.org/publicdomain/zero/1.0/legalcode\u003e)\n\nat your option.\n\nThe Ducky sprite is CC-0 licensed by [Caz Creates Games](https://caz-creates-games.itch.io/ducky-2).\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ntriple licensed as above, without any additional terms or conditions.\n","funding_links":[],"categories":["Starters","AI"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevyengine%2Fbevy_github_ci_template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbevyengine%2Fbevy_github_ci_template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevyengine%2Fbevy_github_ci_template/lists"}