{"id":16085222,"url":"https://github.com/Insality/defold-deployer","last_synced_at":"2025-10-23T02:30:24.694Z","repository":{"id":43492813,"uuid":"191510480","full_name":"Insality/defold-deployer","owner":"Insality","description":"Universal build \u0026\u0026 deploy script for Defold projects","archived":false,"fork":false,"pushed_at":"2024-02-20T19:52:01.000Z","size":201,"stargazers_count":37,"open_issues_count":8,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-24T20:11:10.342Z","etag":null,"topics":["build","defold","defold-game-engine","scripts"],"latest_commit_sha":null,"homepage":"","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/Insality.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}},"created_at":"2019-06-12T06:25:01.000Z","updated_at":"2024-11-20T08:57:38.000Z","dependencies_parsed_at":"2024-02-20T20:46:11.680Z","dependency_job_id":"c56bc605-3e45-40d1-a413-3c61d57674ed","html_url":"https://github.com/Insality/defold-deployer","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Insality%2Fdefold-deployer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Insality%2Fdefold-deployer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Insality%2Fdefold-deployer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Insality%2Fdefold-deployer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Insality","download_url":"https://codeload.github.com/Insality/defold-deployer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237763855,"owners_count":19362310,"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":["build","defold","defold-game-engine","scripts"],"created_at":"2024-10-09T13:01:53.680Z","updated_at":"2025-10-23T02:30:19.422Z","avatar_url":"https://github.com/Insality.png","language":"Shell","funding_links":[],"categories":["Libraries"],"sub_categories":["Programming Language"],"readme":"![](defold-deployer.png)\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/insality/defold-deployer?style=for-the-badge)](https://github.com/Insality/defold-deployer/releases)\n\n# Defold Deployer\nUniversal build \u0026\u0026 deploy script for *Defold* projects (Android, iOS, HTML5, Linux, MacOS, Windows)\n**Deployer** is configurable via settings_deployer file. It's allow use single deployer script for different projects\n\n## Features\n- Single deployment script on all Defold projects (Android, iOS, HTML5, Linux, MacOS, Windows)\n- One command to build, deploy and read logs from the mobile\n- Global and custom settings on project (provisions, bob version, etc)\n- Useful build output\n- Save your time on preparing debug \u0026\u0026 release builds\n- Nice naming builds to save history of product versions\n- Auto *bob.jar* downloading. Flag **use_latest_bob** for using always last version of *Defold*\n- Select Bob channel (stable/beta/alpha) and Defold build server via settings file\n- Headless build \u0026\u0026 run for your unit-tests on CI _[here example](https://github.com/Insality/druid/blob/develop/.github/workflows/ci-workflow.yml#L20)_\n- Add additional info to *game.project*: *project.commit_sha* and *project.build time*\n- Android Instant build in one command (`deployer abr --instant`)\n- Redownload dependencies, if they are corrupted\n- [Optional] Build stats history with build size, build time and other info\n- [Optional] Local build cache and separate build folder to prevent cache reset\n- [Optional] Use incremental value for last number in version and android.version_code (enable via _enable incremental version_, _enable_incremental_android_version_code_)\n- [Optional] Pre and post build hooks\n\n## Install\nFor bob build tool you need to install java JDK: https://openjdk.java.net/projects/jdk/11/\n\nFor ios deploy by cable you need to install:\n- *ios-deploy*: https://github.com/ios-control/ios-deploy\n\nFor android deploy and read logs you need to install:\n- *adb*: https://developer.android.com/studio/releases/platform-tools\n\nFor running `bob.jar` you need to install:\n- *java*: https://openjdk.java.net/projects/jdk/11/\n\nFor HTML5 builds you need to install:\n- Deployer use `zip` command to pack HTML5 build into zip file\n- Deployer use `python 2` to run HTTP Server for deploy\n\nFor building Android Instant you need to make prepare:\n- *Insctructions*: [https://forum.defold.com/t/instruction-android-instant-app-creation/48471](https://forum.defold.com/t/instruction-android-instant-app-creation/48471)\n - Deployer use `zip` command to prepare bundle for _Google Play_\n\n\n## Setup\nRun `deployer.sh` inside your `game.project` folder.\n\nTo create your settings file, just copy `setting_deployer.template` with name `settings_deployer` and place it in right place:\n\n- **Global settings** - `settings_deployer` file nearby `deployer.sh` script\n- **Custom project settings** - `settings_deployer` file nearby `game.project` file\n\nCustom projects settings will override your global settings\n\n#### Recommendation\nMake link to `deployer.sh` file in your system path with name `deployer` (via `ln -s deployer.sh deployer`)\n\nAdd execution mode to it via `chmod +x` \n\nPlace your **global settings** file nearby new `deployer` file link\n\nCall it in your project folder like: `deployer abd`\n\n\n## Usage\n`bash deployer.sh [a][i][h][w][l][m][r][b][d] [--fast] [--resolve] [--instant] [--settings {filename}] [--headless]`\n- `a` - add target platform Android\n- `i` - add target platform iOS\n- `h` - add target platform HTML5\n- `w` - add target platform Windows\n- `l`- add target platform Linux\n- `m` - add target platform MacOS\n- `r` - set build mode to Release\n- `b` - build project (game bundle will be in ./dist/bundle/ folder)\n- `d` - deploy bundle \u0026\u0026 run to connected device. Auto start logging from connected device\n- `--settings {filename}` - add settings file to build params. Can be used several times\n- `--fast` - build only one Android platform (for faster builds)\n- `--headless` - set mode to headless. Override release mode\n- `--resolve` - build with dependency resolve\n- `--instant` - it preparing bundle for Android Instant Apps. Always in release mode\n\nBundle files will be located at *./dist/bundle/{Version}/*\n\nIf no version found in `game.project`, it will be *0.0.0* as default\n\nDeployer need to run on root of your Defold project\n\nFilename will be name {ProjectName}\\_{Version}\\_{BuildMode}.[apk|ipa]\n\n##\tExamples\n```bash\n# Build, deploy and run Android bundle\ndeployer.sh abd\n# Deploy and run iOS release bundle\ndeployer.sh ird\n# Build Android and iOS release bundles\ndeployer.sh aibr\n# Build and run HTML5 debug build\ndeployer.sh hdb\n# Build and preparing Android Instant Apps bundle\ndeployer.sh ab --instant\n# Build, deploy and run Android bundle in fast mode (useful for testing)\ndeployer.sh abd --fast\n# You can pass params in any order you want, for example:\n# Same behaviour as aibr\ndeployer.sh riba\n# Build MacOS debug build and run it\ndeployer.sh mbd\n# Build linux headless build with unit_test.txt settings and run it\ndeployer.sh lbd --settings unit_test.txt --headless \n# Build Windows release build\ndeployer.sh wbr\n```\n\n## Deployer parameters\n- **Global settings** setup by `settings_deployer` file nearby with deployer script\n- **Custom project settings** setup by `settings_deployer` file nearby your `game.project` file on root of your project:\n\nCopy `settings_deployer.template` with name `settings_deployer` and change it for your needs\n\nDeployer parameters:\n```bash\n# Path to bob folder. It will find and save new bob.jar files inside\nbob_folder={path_to_bob_folder}\n\n# Path to android keystore for debug\nandroid_keystore_dev={path_to_keystore.jks}\n\n# Path to android keystore for release\nandroid_keystore_dist={path_to_keystore.jks}\n\n# Path to android keystore password for debug. This file should contains keystore password\nandroid_keystore_password_dev=\"{path_to_keystore_password.txt}\"\n\n# Path to android keystore password for release. This file should contains keystore password\nandroid_keystore_password_dist=\"{path_to_keystore_password.txt}\"\n\n# Name of alias from provided keystore to use for android development build\nandroid_keystore_alias_dev=\"keystore_alias\"\n\n# Name of alias from provided keystore to use for android release build\nandroid_keystore_alias_dist=\"keystore_alias\"\n\n# ID of your ios development identity\nios_identity_dev=\"AAXBBYY\"\n\n# ID of your iod distribution identity\nios_identity_dist=\"YYBBXXAA\"\n\n# Path to ios development mobileprovision\nios_prov_dev={path_to_ios_dev.mobileprovision}\n\n# Path to ios distribution mobileprovision\nios_prov_dist={path_to_ios_dist.mobileprovision}\n\n# You can point bob version for project in format \"filename:sha\"\nbob_sha=\"184:1f5712609c345f870b691a85d611d4825d22a718\"\n\n# Select Defold channel. Values: stable, beta, alpha\nbob_channel=\"stable\"\n\n# If true, it will check and download latest bob version. It will ignore bob_sha param\nuse_latest_bob=false\n\n# Select Defold build server\nbuild_server=\"https://build.defold.com\"\n\n# Pre-build hook bash script path. The path relative from game project folder\npre_build_script=false\n\n# Post-build hook bash script path. The path relative from game project folder\npost_build_script=false\n\n# Set patch (last value after dot) game version value as total git commits count (1.2.0 -\u003e 1.2.{commits_count})\n# You allow to get SHA commit from version via: git rev-list --all --reverse | sed -n {N}p\nenable_incremental_version=false\n\n# Use git commits count as android.version_code on build\nenable_incremental_android_version_code=false\n\n# Local resource cache folder for deployer script. This folder will be added to gitignore if exists\nresource_cache_local=\".cache_deployer\"\n\n# If true, add `-l yes` build param for publish live content\nis_live_content=false\n\n# Set to true, if you do not need to strip executables\nno_strip_executable=false\n\n# Is need to build html report\nis_build_html_report=false\n\n# Enable to start record build stats of every deployer build in csv format\nbuild_stats_report_file=\"./deployer_build_stats.csv\"\n\n# Android instant app settings.ini path to override\n# (Usually, you need it to override AndroidManifest.xml)\n# See instruction here: https://forum.defold.com/t/instruction-android-instant-app-creation/48471\nandroid_instant_app_settings={path_to_android_settings_ini}\n\n# SDK path to build Android Instant app\nsdk_path={path_to_android_sdk}\n\n# Path to android signature key for release (Since Defold 174 only using for Android Instant games)\nandroid_key_dist={path_to_key.pk8}\n\n# Path to android signature certificate for release (Since Defold 174 only using for Android Instant games)\nandroid_cer_dist={path_to_certificate.pem}\n```\n\n## Author\nMaxim Tuprikov, [Insality](http://github.com/Insality)\n**MIT** License\n\n\n## Issues and suggestions\n\nIf you have any issues, questions or suggestions please  [create an issue](https://github.com/Insality/druid/issues)  or contact me:  [insality@gmail.com](mailto:insality@gmail.com)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInsality%2Fdefold-deployer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FInsality%2Fdefold-deployer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInsality%2Fdefold-deployer/lists"}