{"id":26202489,"url":"https://github.com/blazium-engine/export-blazium-game","last_synced_at":"2025-10-17T01:15:43.612Z","repository":{"id":280778366,"uuid":"942878403","full_name":"blazium-engine/export-blazium-game","owner":"blazium-engine","description":"Actions to build Blazium game for all platforms","archived":false,"fork":false,"pushed_at":"2025-03-07T22:36:29.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-07T23:25:18.316Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blazium-engine.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":"2025-03-04T20:29:21.000Z","updated_at":"2025-03-07T22:36:33.000Z","dependencies_parsed_at":"2025-03-07T23:25:19.769Z","dependency_job_id":null,"html_url":"https://github.com/blazium-engine/export-blazium-game","commit_stats":null,"previous_names":["blazium-engine/build-game","blazium-engine/export-blazium-game"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blazium-engine%2Fexport-blazium-game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blazium-engine%2Fexport-blazium-game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blazium-engine%2Fexport-blazium-game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blazium-engine%2Fexport-blazium-game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blazium-engine","download_url":"https://codeload.github.com/blazium-engine/export-blazium-game/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243152888,"owners_count":20244657,"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":"2025-03-12T03:38:09.782Z","updated_at":"2025-10-17T01:15:43.597Z","avatar_url":"https://github.com/blazium-engine.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Export Blazium Game Action\n\nReusable Action that build a Blazium game. These actions build and sign the games with the [Blazium Engine](https://blazium.app/download/prebuilt-binaries) of the version specified. The `platform-name` has to match the export name you set up in the Export tab in Blazium Engine. This action overrides `export_presets.cfg` file.\n\nSample usage:\n```yml\n- name: Build Game Linux\n  uses: blazium-engine/export-blazium-game@master\n  with:\n    game-name: MyGame\n    platform-name: Linux x86_64\n```\n\nComplete usage (for example usage visit [blazium-engine/project-tictactoe](https://github.com/blazium-engine/project-tictactoe) or [blazium-engine/blazium-project-autobuild](https://github.com/blazium-engine/blazium-project-autobuild)):\n\n```yml\nenv:\n  GAME_NAME: GameName\n  ANDROID_PACKAGE: com.blazium.game\n  IOS_PACKAGE: com.blazium.game\njobs:\n  build:\n    runs-on: ${{ matrix.platform.os }}\n    strategy:\n      fail-fast: false\n      matrix:\n        platform: [\n          { name: \"Windows Desktop x86_64\", os: \"ubuntu-latest\" },\n          { name: \"Windows Desktop x86_32\", os: \"ubuntu-latest\" },\n          { name: \"Windows Desktop arm64\", os: \"ubuntu-latest\" },\n          { name: \"Windows Desktop arm32\", os: \"ubuntu-latest\" },\n          { name: \"Linux x86_64\", os: \"ubuntu-latest\" },\n          { name: \"Linux x86_32\", os: \"ubuntu-latest\" },\n          { name: \"macOS\", os: \"macos-latest\" },\n          { name: \"iOS\", os: \"macos-latest\" },\n          { name: \"Android\", os: \"ubuntu-latest\" },\n          { name: \"Web\", os: \"ubuntu-latest\" },\n        ]\n\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - name: Build Game\n        uses: blazium-engine/export-blazium-game@master\n        with:\n          blazium-version: latest\n          game-name: ${{ env.GAME_NAME }}\n          android-package: ${{ env.ANDROID_PACKAGE }}\n          ios-package: ${{ env.IOS_PACKAGE }}\n          platform-name: ${{ matrix.platform }}\n          secret-macos-build-certificate-base64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}\n          secret-p12-password: ${{ secrets.P12_PASSWORD }}\n          secret-keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}\n          secret-ios-distribution-certificate-base64: ${{ secrets.DISTRIBUTION_CERTIFICATE_BASE64 }}\n          secret-ios-deploy-provision-profile-ios-base64: ${{ secrets.DEPLOY_PROVISION_PROFILE_IOS_BASE64 }}\n          secret-apple-id: ${{ secrets.APPLE_ID }}\n          secret-apple-team-id: ${{ secrets.APPLE_TEAM_ID }}\n          secret-apple-password: ${{ secrets.APP_SPECIFIC_PASSWORD }}\n          secret-android-keystore-base64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}\n          secret-android-keystore-password: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}\n          secret-android-keystore-user: ${{ secrets.ANDROID_KEYSTORE_USER }}\n```\n\nIf you want to build for steam, you need to send `steam-app-id` and `store-name` set to `steam`:\n\n```yml\n- name: Build Game Steam\n  uses: blazium-engine/export-blazium-game@master\n  with:\n    game-name: MyGame\n    platform-name: Linux x86_64\n    steam-app-id: 1234\n    store-name: steam\n```\n\n\n## Inputs\n\n\n| Name                                      | Description                                                      | Required | Secret |\n|-------------------------------------------|------------------------------------------------------------------|----------|--------|\n| blazium-version                           | Blazium Engine version to use (e.g. `latest`, `4.2.1`)           | No       | No     |\n| game-name                                 | Name of the game to export                                       | Yes      | No     |\n| android-package                           | Android package name (e.g. app.blazium.game_android)             | No      | No     |\n| ios-package                               | iOS package name (e.g. app.blazium.game_ios)                     | No      | No     |\n| platform-name                             | Platform export preset name (must match export preset)            | Yes      | No     |\n| secret-macos-build-certificate-base64      | macOS build certificate (base64)                                 | No       | Yes    |\n| secret-p12-password                       | Password for P12 certificate                                     | No       | Yes    |\n| secret-keychain-password                  | Keychain password for macOS/iOS builds                           | No       | Yes    |\n| secret-ios-distribution-certificate-base64 | iOS distribution certificate (base64)                            | No       | Yes    |\n| secret-ios-deploy-provision-profile-ios-base64 | iOS deploy provision profile (base64)                        | No       | Yes    |\n| secret-apple-id                           | Apple ID (for macOS/iOS deployment)                              | No       | Yes    |\n| secret-apple-team-id                      | Apple Team ID                                                    | No       | Yes    |\n| secret-apple-password                     | Apple app-specific password                                      | No       | Yes    |\n| secret-android-keystore-base64            | Android keystore (base64)                                        | No       | Yes    |\n| secret-android-keystore-password          | Android keystore password                                        | No       | Yes    |\n| secret-android-keystore-user              | Android keystore alias                                           | No       | Yes    |\n| steam-app-id                              | Steam App ID (for Steam builds)                                  | No       | No     |\n| store-name                                | Store name (e.g. `steam`, `itch`)                                | No       | No     |\n| base-game-version                         | Base version of the game (for versioning/export presets)         | No       | No     |\n| use-cache                                 | Use cache (default: true)                                        | No       | No     |\n\n## Outputs\n\n| Name         | Description                |\n|--------------|---------------------------|\n| game_version | The version of the game.  |\n\nThis action will also generate exported game builds for the specified platform(s) in the configured output directory.\n\nFor all of the job inputs that need to be secrets, add them to the github actions secrets.\n\n# Apple Secrets configuration\n\nThe deploy secrets are needed for deploying to App Store or Mac App Store.\n\n## Apple Mac Flow for Export\n\n### 1. How to get Certificate P12 to Mac\n\nPrerequisites:\n\n- P12 Password (You create this manually, keep it safe)\n\nFirst go to `Certificates, Identifiers \u0026 Profiles` -\u003e `Certificates`:\n\n- `https://developer.apple.com/account/resources/certificates/list`\n\nThen, download the certificate which was previously generated using a file called `CertificateSigningRequest.certSigningReque` (PRIVATE KEY). The private key is created by following this link `https://developer.apple.com/help/account/create-certificates/create-a-certificate-signing-request`. The public key is unusable without the private key for our use cases.\n\nAfter this, import the public key and also import the privat key. Now, go to XCode -\u003e Settings -\u003e Accounts -(Click the team to which the certificate belongs to)\u003e Manage Certificates... -\u003e (Right Click the Certificate) it has to match by name, DO NOT import multiple certificates with same name -\u003e Export Certificate - put password\u003e Obtain a P12 file\n\nCertificate Types:\n- Developer ID Application - For Mac Binary Exports\n- Mac App Distribution - For Mac Binary to be sent to Mac App Store (inside the installer)\n- Mac Installer Distribution - For Mac Installer (contains the Mac Binary) to be sent to the Mac App Store\n\n#### Generate base64 from Certificate P12\n\nTo use them in CI/CD you need to make them in base64 so they can be put in env vars:\n```sh\n# eg.\nbase64 -i DeveloperID.p12 \u003e certificate_development_id_base64.txt\n```\n\n### 2. Obtain the certificates\n\nPrerquisites:\n- Developer ID Certificate\n- P12 Password\n- Keychain Password (you set this)\n\n#### How to list certificates installed\n\nYou installed the certificate by a file, but now you need a name to use it. In order to get that name, you can do:\n\n```sh\nsecurity find-identity -v -p codesigning\n```\n\n### 3. Build the mac app without signing and without notarization\n\nThere are 3 types of mac apps:\n- .app: Folder with files\n- .dmg: Virtual Volume, basically a single file\n- .pkg: Installer\n\nYou want to use the .app and create a .pkg with it. Using .dmg is also possible but more difficult.\n\n### 4. Sign the app\n\nPrerequisite:\n\n- APPLE_ID: Your apple id (usually email)\n- APP_SPECIFIC_PASSWORD: https://support.apple.com/en-us/102654\n- APPLE_TEAM_ID: Your apple team id (usually a number, eg. 12345678)\n- entitlements file:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n  \u003cdict\u003e\n    \u003ckey\u003ecom.apple.security.app-sandbox\u003c/key\u003e\n    \u003ctrue/\u003e\n    \u003ckey\u003ecom.apple.security.files.user-selected.read-write\u003c/key\u003e\n    \u003ctrue/\u003e\n    \u003ckey\u003ecom.apple.security.network.client\u003c/key\u003e\n    \u003ctrue/\u003e\n  \u003c/dict\u003e\n\u003c/plist\u003e\n```\n\nYou need to sign the app using the `Developer ID Application` for your team if you want to export it (outside of Mac App Store).\n\n## Apple Mac Flow for Publish\n\n### 1. Provisioning Profile\n\nIn order to deploy to Mac App Store you need a `Mac App Store Connect` Distribution Profile from `https://developer.apple.com/account/resources/profiles/add`. The distribution profile is a text file that contains also some entitlements, these will be added to the entitlements file later on.\n\nHow to get it:\n- Go to Certificates, Identifiers \u0026 Profiles: `https://developer.apple.com/account/resources/profiles/add`. Add a provisioning profile of type `Mac App Store Connect` at the `Distribution` section. Select App Id that matches your game. This is how it will know to link the provisioning profile with the certificate. Then click Next, Next..\n\n### 2. Obtain the certificates\n\nPrerquisites:\n- Mac App Distribution\n- Mac Installer Distribution\n- P12 Password\n- Keychain Password (you set this)\n- Provisioning Profile of type `Mac App Store Connect`\n\n### 3. Code Sign\n\nPrerequisites:\n- `DEPLOY_SIGNING_IDENTITY` you obtained from Step 2.\n\n### 4. Make an installer\n\nPrerequisites:\n- `INSTALL_SIGNING_IDENTITY` you obtained from Step 2.\n\n### 5. Deploy to Test Flight\n\nPrerequisites:\n- `APPLE_ID`: Your apple id (usually email)\n- `APP_SPECIFIC_PASSWORD`: https://support.apple.com/en-us/102654\n\n\n## Apple iOS Flow for Publish\n\nThis flow works pretty well from Godot. All you need to do is set in Godot same stuff in export window as for actions:\n\n### 1. Obtain certificates and provisioning profile\n\nPrerequisites:\n- `DISTRIBUTION_CERTIFICATE_BASE64`: Apple Distribution Certificate\n- `P12_PASSWORD`: Password used to encrypt P12 Certificates\n- `DEPLOY_PROVISION_PROFILE_IOS_BASE64`: iOS Deploy Certificate for App\n- `KEYCHAIN_PASSWORD`: Keychain Password (you enter this manually to what you want)\n\n# Android Secrets configuration\n\nFor android you need the :\n- secret-android-keystore-base64: Base64 encoded keystore for Android.\n- secret-android-keystore-password: Android keystore password.\n- secret-android-keystore-user: Android keystore alias.\n\nHow to generate android keystore:\n\n```sh\nkeytool -genkey -v -keystore release.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000\n```\n\nTo list aliases run:\n\n```sh\nkeytool -v -list -keystore blazium.keystore\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblazium-engine%2Fexport-blazium-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblazium-engine%2Fexport-blazium-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblazium-engine%2Fexport-blazium-game/lists"}