Skip to content

Conversation

@ssestak
Copy link
Contributor

@ssestak ssestak commented Oct 24, 2025

This PR modularizes iOS Fastlane operations into reusable GitHub Actions and refactors existing workflows to leverage them. It introduces new dedicated workflows for nightly and on-demand iOS builds, enhancing CI/CD structure.

Key Features:

  • New Fastlane Composite Actions:
    • ios-fastlane-beta: Standardizes Fastlane beta execution.
    • ios-fastlane-release: Standardizes Fastlane release execution.
    • ios-fastlane-test: Standardizes Fastlane test execution.
  • Workflow Refactoring:
    • ios-kmp-build.yml: Updated to use the new ios-fastlane-beta action.
    • ios-selfhosted-release.yml: Updated to use the new ios-fastlane-release action.
    • ios-selfhosted-test.yml: Updated to use the new ios-fastlane-test action and GITHUB_TOKEN_DANGER.
  • New Self-hosted Workflows:
    • ios-selfhosted-nightly-build.yml: Implements a new workflow for nightly iOS builds with change detection and artifact uploads.
    • ios-selfhosted-on-demand-build.yml: Provides a new workflow for manual, on-demand iOS builds with changelog input.
  • Deprecated Workflow: ios-selfhosted-build.yml is now deprecated and calls ios-selfhosted-nightly-build.yml.
  • Git Ignore Update: Added *.DS_Store to .gitignore.

Workflow Changes Overview:

Old Workflow (ios-selfhosted-build.yml) New Workflow (ios-selfhosted-build.yml)
Contained full build logic Calls ios-selfhosted-nightly-build.yml
Direct Fastlane calls Uses composite actions

Šimon Šesták added 13 commits October 16, 2025 19:18
…rkflows

Automates Fastlane operations for iOS applications, streamlining CI/CD processes. Also adds *.DS_Store to .gitignore.
…icated Fastlane action

Refactored the Fastlane Beta step into a reusable composite action, removed redundant inputs, and added explicit changelog and timeout inputs for improved flexibility and clarity.
…nd add Danger token

Refactor the Fastlane test step to use the `ios-fastlane-test` reusable action for improved maintainability. Introduce a dedicated `GITHUB_TOKEN_DANGER` secret for Danger integration and add a configurable `timeout_minutes` input.
Extracts the Fastlane release logic into a reusable GitHub Action for improved modularity and maintainability. Also introduces a configurable 'timeout_minutes' input for the job.
This workflow automates the nightly build process for iOS applications using self-hosted GitHub Actions runners, including changelog generation, secret export, Fastlane Beta deployment, and artifact uploads.
…reference

Conditionally skips build-related steps based on change detection output and updates the 'ios-fastlane-beta' action to use a centralized reference.
Fastlane scripts in iOS beta, release, and test actions were not receiving necessary input parameters, leading to failures or incorrect behavior.
…ta step

Replaced inline shell commands with a dedicated GitHub Action to improve maintainability and reusability.
This commit temporarily updates the iOS workflows to use the 'feature/refactor-iOS-workflows' branch for Fastlane actions. This change must be reverted before merging into the main branch.
The working directory for these actions is now configured at the workflow level, making the explicit `cd iosApp` command unnecessary and potentially problematic.
…hens

Standardize workflow file naming convention.
@ssestak ssestak force-pushed the feature/refactor-iOS-workflows branch from 1a2da70 to 9b955c1 Compare October 24, 2025 14:53
Šimon Šesták added 3 commits October 24, 2025 16:53
…lfhosted-on-demand-build.yml

Moved the original build logic from `ios-selfhosted-build.yml` to `ios-selfhosted-on-demand-build.yml` to distinguish on-demand builds. The `ios-selfhosted-build.yml` now calls `ios-selfhosted-nightly-build.yml`.
Update README to reflect the deprecation of `ios-selfhosted-build` in favor of `ios-selfhosted-nightly-build` and `ios-selfhosted-on-demand-build`.
Ensures robustness of shell commands by properly quoting the output file path.
@ssestak ssestak force-pushed the feature/refactor-iOS-workflows branch from 4fbbf46 to b962669 Compare October 24, 2025 14:58
This workflow is deprecated and users should migrate to ios-selfhosted-nightly-build.yml.
bundle install --jobs 4 --retry 3
bundle exec fastlane test
env:
DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do you know how this token was provided before ? 🤔

Copy link
Member

Choose a reason for hiding this comment

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

Do you mean this?
Screenshot 2025-10-24 at 19 38 24

Copy link
Contributor Author

@ssestak ssestak Oct 24, 2025

Choose a reason for hiding this comment

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

Was the token injected into the called workflow automatically ? I don't see explicit token injection in any of ours projects 🤔. So question is it is still necessary for danger to had that token or there is some magic I don't know about.

image

@ssestak ssestak marked this pull request as ready for review October 24, 2025 15:01
Copy link
Member

@jmarek41 jmarek41 left a comment

Choose a reason for hiding this comment

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

👏

Šimon Šesták added 3 commits October 29, 2025 08:36
Environment variables are now directly set in `action.yml`, eliminating the need for explicit re-exporting in the associated shell scripts.
The github_token and GITHUB_TOKEN_DANGER inputs are no longer strictly required for iOS Fastlane test actions and self-hosted test workflows, allowing for more flexible execution.
Fastlane expects `PR_TITLE` environment variable for the changelog when building beta versions.
…workflows

# Conflicts:
#	.github/actions/ios-kmp-build/action.yml
@ssestak ssestak merged commit 97ad3c5 into main Nov 4, 2025
1 check passed
@ssestak ssestak deleted the feature/refactor-iOS-workflows branch November 4, 2025 08:22
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.

4 participants