{"id":23496448,"url":"https://github.com/macawls/unitydeployexample","last_synced_at":"2025-10-31T07:31:24.981Z","repository":{"id":41429246,"uuid":"502765068","full_name":"Macawls/UnityDeployExample","owner":"Macawls","description":"A Guide on Deploying Unity Games To Itch.io with GitHub Actions!","archived":false,"fork":false,"pushed_at":"2024-10-29T16:27:13.000Z","size":10936,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"based","last_synced_at":"2024-12-25T04:13:02.583Z","etag":null,"topics":["cicd","github-actions","itchio","unity"],"latest_commit_sha":null,"homepage":"https://macawls.github.io/UnityDeployExample/","language":"C#","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/Macawls.png","metadata":{"files":{"readme":".github/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":"2022-06-13T01:04:33.000Z","updated_at":"2024-10-29T16:27:17.000Z","dependencies_parsed_at":"2024-10-29T17:52:26.083Z","dependency_job_id":null,"html_url":"https://github.com/Macawls/UnityDeployExample","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macawls%2FUnityDeployExample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macawls%2FUnityDeployExample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macawls%2FUnityDeployExample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macawls%2FUnityDeployExample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Macawls","download_url":"https://codeload.github.com/Macawls/UnityDeployExample/tar.gz/refs/heads/based","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239139716,"owners_count":19588246,"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":["cicd","github-actions","itchio","unity"],"created_at":"2024-12-25T04:13:05.131Z","updated_at":"2025-10-31T07:31:22.906Z","avatar_url":"https://github.com/Macawls.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003ePresentation\u003c/h2\u003e\u003chr/\u003e\n\nhttps://macawls.github.io/UnityDeployExample/\n\n\u003ch2 align=\"center\"\u003eDocs and Resources\u003c/h2\u003e\u003chr/\u003e\n\n[![Build, Test and Deploy 💻](https://github.com/Macawls/unitydeployexample/actions/workflows/main.yml/badge.svg?branch=based)](https://github.com/Macawls/unitydeployexample/actions/workflows/main.yml)\n\n* [Game CI Link](https://game.ci/)\n* [Youtube Tutorial by Rohan Mayya](https://youtu.be/JjKCy3H0A30)\n* [Marp for Presentation](https://marp.app/)\n* [David Finol Website](https://davidmfinol.website/)\n\n\u003ch2 align=\"center\"\u003eSetting Up a Repository for Unity\u003c/h2\u003e\u003chr/\u003e\n\n![](https://cdn.frankerfacez.com/emoticon/236895/2) \\\nAn alternative is [GitHub Desktop](https://desktop.github.com/), which makes this process much easier and allows you to skip some steps.\n\nInitialize the repository at the root of the project.\n```bash\ngit init\n```\nUse a .gitignore file to tell git which files to ignore. \\\nHere's a repo with a bunch of templates https://github.com/github/gitignore\n```\nwget https://raw.githubusercontent.com/Macawls/unitydeployexample/based/.gitignore -o \".gitignore\"\n```\n[Download Git LFS](https://git-lfs.github.com/) \\\nInstall LFS in your repository:\n```\ngit lfs install\n```\nUse a .gitattributes file for LFS to tell it which files to track.\n```\nwget https://raw.githubusercontent.com/Macawls/unitydeployexample/based/.gitattributes -o \".gitattributes\"\n```\nAll done! Have a look at which files are going to be tracked using:\n```\ngit status\n```\n\n\u003ch2 align=\"center\"\u003eBuilding and Deploying to Itch.IO with GitHub Actions\u003c/h2\u003e\u003chr/\u003e\n\n![](https://cdn.frankerfacez.com/emoticon/218530/2)\n### Testing\n\n\nIt's best practice to test your project before building your game to increase reliability and confidence in merging changes. \n\n\u003ch2 align=\"center\"\u003eUnity License Setup\u003c/h2\u003e\u003chr/\u003e\n\nWe need to tell Unity we're legit.\nCreate a file at **.github/workflows/activation.yml** and push your changes. You'll only need to run this once.\n\n```yml\nname: Acquire activation file\non:\n  workflow_dispatch: {}\njobs:\n  activation:\n    name: Request manual activation file 🔑\n    runs-on: ubuntu-latest\n    steps:\n      # Request manual activation file\n      - name: Request manual activation file\n        id: getManualLicenseFile\n        uses: game-ci/unity-request-activation-file@v2\n      # Upload artifact (Unity_v20XX.X.XXXX.alf)\n      - name: Expose as artifact\n        uses: actions/upload-artifact@v2\n        with:\n          name: ${{ steps.getManualLicenseFile.outputs.filePath }}\n          path: ${{ steps.getManualLicenseFile.outputs.filePath }}\n```\nThe workflow is meant to be run manually, defined by\n```yml\non:\n  workflow_dispatch: {}\n```\nRun the workflow under the actions tab and download the artifact once it's done.\n\nSign into [Unity License](https://license.unity3d.com/) with your credentials and upload the artifact.\n\nYou should now receive your license file (Unity_v20XX.x.ulf).\n\nHead over to the settings tab of your Github repository. \n\nCreate the following **Secrets** under your repository settings\n* UNITY_LICENSE - (Contents of your downloaded license file)\n* UNITY_EMAIL - (Unity email address)\n* UNITY_PASSWORD - (Unity password)\n\nMake sure this is step is completed before continuing.\n\n\u003ch2 align=\"center\"\u003eSetting Up Itch.IO\u003c/h2\u003e\u003chr/\u003e\n\n[Create a new Itch.Io Page](https://itch.io/game/new).\n\nNote the name of the game, for example at this url\nhttps://macawls.itch.io/deployexample the name would be \"deployexample\".\n\nCreate a new Itch.io API key [here](https://itch.io/user/settings/api-keys)\nand store that value as a secret named **\"BUTLER_CREDENTIALS\"**.\n\n\n\u003ch2 align=\"center\"\u003eBuilding and Deploying\u003c/h2\u003e\u003chr/\u003e \n\nCreate a file at **.github/workflows/main.yml** and copy the contents of\n[this file](https://github.com/Macawls/UnityDeployExample/blob/based/.github/workflows/main.yml).\n\nUse the values from the previous step in the this section of the file.\n```yml\n# Publish to Itch.IO\n- uses: manleydev/butler-publish-itchio-action@master\n  env:\n    BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }}\n    CHANNEL: ${{ matrix.targetPlatform }}\n    ITCH_GAME: \u003cName of the Game\u003e\n    ITCH_USER: \u003cYour Itch.Io Username\u003e\n    PACKAGE: build/${{ matrix.targetPlatform }}\n```\nDecide which platforms you'd like to publish to.\n\nOnly use the [allowed](https://docs.unity3d.com/ScriptReference/BuildTarget.html) platform names.\n```yml\n  buildForAllSupportedPlatforms:\n    name: Build and Deploy for ${{ matrix.targetPlatform }}\n    runs-on: ubuntu-latest\n    strategy:\n      fail-fast: false # if one build fails, other platforms will still be built\n      matrix:\n        targetPlatform:\n          - StandaloneWindows64\n          - WebGL\n          - StandaloneOSX #etc\n```\n* * *\n\u003ch2 align=\"center\"\u003eAll Done!\u003c/h2\u003e\n\n![]() \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://cdn.betterttv.net/emote/603c008d7c74605395f360da/3x\"\u003e\n\u003c/p\u003e\nIf you want to embed the WebGL build to your Itch.IO Page tick this checkbox. You'll only need to do this \u003cstrong\u003eonce\u003c/strong\u003e because the build is tied to the WebGL \u003cstrong\u003echannel\u003c/strong\u003e in Itch.Io.\n\n![](https://i.imgur.com/i5OoZXF.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacawls%2Funitydeployexample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacawls%2Funitydeployexample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacawls%2Funitydeployexample/lists"}