name: prepare-ios-build description: Action to prepare environment for ios build inputs: intune-enabled: description: 'Enable Intune MAM features (requires Xcode 26.1+)' required: false default: 'false' intune-ssh-private-key: description: 'SSH private key for Intune submodule repository access (required if intune-enabled is true)' required: false runs: using: composite steps: - name: ci/setup-xcode uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 with: xcode-version: '26.1' - name: ci/prepare-mobile-build uses: ./.github/actions/prepare-mobile-build - name: ci/setup-intune if: inputs.intune-enabled == 'true' uses: ./.github/actions/setup-intune with: ssh-private-key: ${{ inputs.intune-ssh-private-key }} - name: Get Intune submodule commit hash if: inputs.intune-enabled == 'true' id: intune-hash shell: bash run: | if [ -e "libraries/@mattermost/intune/.git" ]; then INTUNE_HASH=$(cd libraries/@mattermost/intune && git rev-parse --short HEAD) echo "hash=${INTUNE_HASH}" >> $GITHUB_OUTPUT else echo "hash=none" >> $GITHUB_OUTPUT fi - name: Cache Pods uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: path: | ios/Pods libraries/@mattermost/intune/ios/Frameworks key: ${{ runner.os }}-pods-v4-intune-${{ inputs.intune-enabled }}-${{ steps.intune-hash.outputs.hash }}-${{ hashFiles('ios/Podfile.lock') }}-${{ github.ref_name }} restore-keys: | ${{ runner.os }}-pods-v4-intune-${{ inputs.intune-enabled }}-${{ steps.intune-hash.outputs.hash }}-${{ hashFiles('ios/Podfile.lock') }}- - name: ci/install-pods-dependencies shell: bash env: INTUNE_ENABLED: ${{ inputs.intune-enabled }} run: | echo "::group::install-pods-dependencies" echo "INTUNE_ENABLED=$INTUNE_ENABLED" npm run ios-gems npm run pod-install echo "::endgroup::"