mattermost-mobile-upstream/.github/actions/generate-specs/action.yml
Carlos Garcia f2857a97d1
Mm 67525 bump min version (#9640)
* bumps minSdkVersion to 30

Older versions are past end-of-life for security patches. voximplant service patch is also updated with minSdkVersion set to 30.

* removes manifest attributes no longer needed when minSdk is 30

* removes guard to for version lower than O

* removes permission check for versions lower than 28

* remove tests related to unsupported android sdk versions

* bumps iOS minSdkVersion to 18

* removes iOS 13/15 guards in hardware-keyboard

* removes iOS 15 guards in NotificationService

* removes iOS 15 guard in Gekidou network delegate

since gekidou is iOS only other platform guards are not needed

* removes version guard no longer needed in voximplant patch

* removes hasWriteStoragePermission dead stub and its call site

* removes unused setSoftKeyboardToAdjustResize from rnutils

The function had no call sites in JS/TS code and the iOS implementation
was a no-op.

* removes version guards and updates config after min version bump

* updates stale iOS 17 simulator references in CI to iOS 18.1

Co-Authored-By: Carlos Garcia <carlos.garcia@mattermost.com>

* fixes malformed patch file headers

- voximplant patch: restore missing diff --git header and index line
  for VIForegroundServiceModule.java, fix stale hunk counter (+11 -> +7)
- notifications patch: fix stale hunk line count (+91 -> +89) after
  KITKAT branch removal

Co-Authored-By: Carlos Garcia <carlos.garcia@mattermost.com>

* remove code below the supported OS versions

* Bump IntuneMAM SDK to 21.8.0 and MSAL to 2.15.0

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2026-09-16 10:53:06 +00:00

59 lines
2.1 KiB
YAML

# Copyright 2024 Mattermost, Inc.
name: "generate-specs"
description: This action used to split Detox integration tests based on the parallelism provided
inputs:
search_path:
description: The path to look for from within the directory
required: true
parallelism:
description: The parallelism for the tests
required: true
device_name:
description: The name of Device used for the tests
required: false
default: "iPhone 15"
device_os_version:
description: The os of the device used for the tests
required: false
default: "iOS 18.1"
durations_file:
description: >-
Optional spec-duration manifest (from .github/actions/s3-spec-durations).
When present, specs are bin-packed by recorded duration instead of split
into equal counts. Absent/unreadable falls back to the even split.
required: false
default: ""
outputs:
specs:
description: The specs generated for the strategy
value: ${{ steps.generate-specs.outputs.specs }}
shard_count:
description: Number of matrix shards in specs.include (for TSIO missing-shard checks)
value: ${{ steps.generate-specs.outputs.shard_count }}
runs:
using: "composite"
steps:
- name: ci/generate-specs
id: generate-specs
env:
PARALLELISM: ${{ inputs.parallelism }}
SEARCH_PATH: ${{ inputs.search_path }}
DEVICE_NAME: ${{ inputs.device_name }}
DEVICE_OS_VERSION: ${{ inputs.device_os_version }}
DURATIONS_FILE: ${{ inputs.durations_file }}
run: |
# pipefail: without it, `node ... | tee` reports tee's exit status, so a
# crash in split-tests.js would leave output.json empty and be treated as
# a successful split.
set -eo pipefail
node "${{ github.action_path }}/split-tests.js" | tee output.json
if [ ! -s output.json ]; then
echo "::error::split-tests.js produced no matrix output."
exit 1
fi
echo "specs=$(cat output.json)" >> "$GITHUB_OUTPUT"
echo "shard_count=$(jq '.include | length' output.json)" >> "$GITHUB_OUTPUT"
shell: bash