Skip to content

feat: add multi-platform build and release workflows#8

Merged
anonymoussoft merged 6 commits intomasterfrom
codex/github-actions-release-publish
Mar 25, 2026
Merged

feat: add multi-platform build and release workflows#8
anonymoussoft merged 6 commits intomasterfrom
codex/github-actions-release-publish

Conversation

@anonymoussoft
Copy link
Copy Markdown
Owner

Summary

  • add a GitHub Actions workflow that builds Windows, Linux, macOS, Android, and iOS packages
  • add CI helper scripts for native Tim2Tox builds, packaging, release publishing, and iOS signing setup
  • fix Android JNI staging, Linux libsodium bundling, and iOS publish semantics so GitHub Releases only gets installable iOS assets when signing secrets are configured
  • document build/release behavior and required Android/iOS signing secrets in the English and Chinese READMEs

Verification

  • bash tool/test_ci_packaging.sh
  • bash -n tool/ci/common.sh && bash -n tool/ci/build_tim2tox.sh && bash -n tool/ci/package_artifacts.sh && bash -n tool/ci/publish_release.sh && bash -n tool/ci/prepare_ios_signing.sh && bash -n build_all.sh
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/build-packages.yml"); puts "workflow yaml ok"'
  • dart analyze tool/bootstrap_deps.dart

Notes

  • iOS GitHub Release publishing requires IOS_CERTIFICATE_P12_BASE64, IOS_CERTIFICATE_PASSWORD, and IOS_PROVISIONING_PROFILE_BASE64; without them the workflow only performs an unsigned validation build and writes dist/ios/NOTES.txt
  • Android release signing remains optional and uses the existing debug-key fallback when keystore secrets are absent

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: de43f329a0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +191 to +194
if [[ -f "$signed_marker" ]]; then
mkdir -p "$payload_dir"
cp -R "$app_bundle" "$payload_dir/"
(cd "$DIST_DIR" && zip -qry "$(basename "$archive_path")" Payload)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Inject staged iOS FFI binaries before IPA packaging

In package_ios, the signed path zips Runner.app as soon as embedded.mobileprovision is present, but it never copies framework_src/dylib_src into the app bundle first. That means artifacts staged by build_tim2tox.sh from TIM2TOX_IOS_FRAMEWORK_PATH or TIM2TOX_IOS_DYLIB_PATH are ignored, so signed CI releases can publish an installable IPA that still lacks the tim2tox_ffi native binary required at runtime.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 9fbee81. package_ios now injects the staged tim2tox_ffi.framework / libtim2tox_ffi.dylib into Runner.app/Frameworks before packaging the signed IPA, and the regression script now verifies that the IPA actually contains the injected binary.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9fbee81efc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +202 to +205
if [[ -f "$signed_marker" ]]; then
mkdir -p "$payload_dir"
cp -R "$app_bundle" "$payload_dir/"
(cd "$DIST_DIR" && zip -qry "$(basename "$archive_path")" Payload)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-sign iOS bundle after injecting native framework

When TIM2TOX_IOS_FRAMEWORK_PATH/TIM2TOX_IOS_DYLIB_PATH is provided, this function copies new binaries into Runner.app and then immediately packages the app as soon as embedded.mobileprovision is present, but it never re-signs the modified app. On signed iOS builds, changing Runner.app/Frameworks after flutter build ios invalidates the code signature, so the generated IPA can fail installation/verification at runtime. Re-sign the injected framework and app bundle (or inject before signing) before zipping.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

1 similar comment
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 77484b0 to b04a554 Compare March 25, 2026 03:32
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from b04a554 to 0aad955 Compare March 25, 2026 03:42
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 0aad955 to 3eac3da Compare March 25, 2026 03:51
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 3eac3da to 40dad81 Compare March 25, 2026 06:04
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch 2 times, most recently from 83c5340 to 23c591b Compare March 25, 2026 06:32
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 23c591b to 5f8b7aa Compare March 25, 2026 06:44
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 5f8b7aa to 2eccbf7 Compare March 25, 2026 07:03
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Windows fix:
- Update tim2tox submodule to include git repo initialization before
  applying SDK patches. git apply requires a git repository context.

Linux fix:
- Add gstreamer-1.0 development libraries to Linux dependencies for
  audioplayers_linux plugin compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@anonymoussoft anonymoussoft force-pushed the codex/github-actions-release-publish branch from 2eccbf7 to b2fa63a Compare March 25, 2026 07:16
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@anonymoussoft anonymoussoft merged commit 14bec99 into master Mar 25, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant