* refactor: implement custom ExpoImage wrapper for cache control Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app * refactor(ios): convert Gekidou to CocoaPods Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0 * npm audit * update fastlane * feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository * fix tests by mocking @mattermost/intune * feat: implement Intune MAM integration with comprehensive security enforcement Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls * fix alerts when no server database is present * Unify cache strategy * fix emit config changed after it was stored in the db * Handle Mid-Session Enrollment Detection * fix ADALLogOverrideDisabled missing in Fastfile * fix flow for initial enrollment * fix and add unit tests * enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release * Update intune submodule with addressed feedback * fix validate-intune-clean workflow * feat(intune): add comprehensive error handling and SAML+Entra support Add production-ready error handling for native Entra authentication with user-friendly i18n messages, comprehensive test coverage, and support for Entra login when server requires SAML. * update i18n * update intune submodule * update build-pr token * fix race condition between server auth and intune enrollment * fix CI workflow to build with intune * use deploy key for intune submodule * set the config directly in the submodule .git * debug injection * try setting GIT_SSH_COMMAND * remove action debug * fix server url input * match pod cache with intune hash * Fastfile and envs * have workflows check for intune/.git * have ci cache intune frameworks as well * update Fastlane to set no-cache to artifacts uploaded * fix s3 upload * fix pblist template * Attempt to remove the cache control for PR uploads to s3 * use hash from commit for S3 path * Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain * Fix surface errors from intune login * fix postinstall scripts * use cacheKey for draft md images * remove unnecessary double await during test * Have isMinimumLicenseTier accept valid license sku tier as target * Add missing Auth error messages * remove the last period for intune errors in i18n * do not call unenroll with wipe on manual logout * Fix tests and Intune error messages * do not filter any SSO type regardless of which is used for Intune * fix 412 to not retry * fix tests, app logs sharing and share_extension avatar cache * apply setScreenCapturePolicy on license change Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com> * re-apply screen capture on enrollment Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com> * use userData from intunr login and prevent getMe Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com> * Check for Biometrics and Jailbreak as we used to --------- Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
83 lines
3.8 KiB
Text
83 lines
3.8 KiB
Text
############ VARIABLE VALUES ############
|
|
#export MATTERMOST_WEBHOOK_URL=<set this to an incoming webhook url to get a notification when the build finishes>
|
|
|
|
export BRANCH_TO_BUILD=master
|
|
export GIT_LOCAL_BRANCH=build
|
|
|
|
export APP_NAME="Mattermost Beta"
|
|
export APP_SCHEME=mattermost
|
|
|
|
#export INCREMENT_BUILD_NUMBER=false
|
|
## This sets the version number ex: 1.22.0 if not set it uses the one in the code base
|
|
#export VERSION_NUMBER=
|
|
## This sets the version number ex: 210 if not set it uses the one in the code base (this one should increment always by 1 and will only update if INCREMENT_BUILD_NUMBER is true
|
|
#export BUILD_NUMBER=
|
|
|
|
############ MAKE GIT RESTORE THE BRANCH STATE ONCE BUILD FINISHES ############
|
|
export COMMIT_CHANGES_TO_GIT=true
|
|
export RESET_GIT_BRANCH=true
|
|
|
|
############ NO NEED TO CHANGE AND THIS ENSURES THAT NODEJS DOESN'T CRASH WHILE BUILDING ############
|
|
export LC_ALL="en_US.UTF-8"
|
|
export NODE_OPTIONS=--max_old_space_size=12000
|
|
|
|
############ MATCH IS USED TO SYNC THE IOS PROVISIONING PROFILES ############
|
|
export MATCH_USERNAME=<itunes connect account>
|
|
export FASTLANE_PASSWORD=<itunes connect password>
|
|
export MATCH_PASSWORD=<itunes connect password>
|
|
export MATCH_KEYCHAIN_PASSWORD=<the password of the user running the build in the build machine>
|
|
export MATCH_GIT_URL=<private git repository to allow match sync the provisioning profiles>
|
|
export MATCH_APP_IDENTIFIER=com.mattermost.rnbeta.NotificationService,com.mattermost.rnbeta.MattermostShare,com.mattermost.rnbeta
|
|
export MATCH_TYPE=appstore
|
|
export MATCH_SHALLOW_CLONE=true
|
|
export MATCH_SKIP_DOCS=true
|
|
export FASTLANE_TEAM_ID=<itunes connect team ID>
|
|
export SYNC_PROVISIONING_PROFILES=true
|
|
|
|
############ NEEDED TO UPLOAD THE BUILD TO TESTFLIGHT ############
|
|
export PILOT_USERNAME=<itunes connect account>
|
|
export PILOT_SKIP_WAITING_FOR_BUILD_PROCESSING=true
|
|
|
|
############ NEEDED TO UPLOAD THE BUILD TO GOOGLE PLAY ############
|
|
export SUPPLY_TRACK=alpha
|
|
export SUPPLY_PACKAGE_NAME=com.mattermost.rnbeta
|
|
export SUPPLY_JSON_KEY=<The path to the service account json file used to authenticate with Google>
|
|
export SUPPLY_VALIDATE_ONLY=false
|
|
|
|
############ REPLACE ASSETS, BUILD IN RELEASE MODE ############
|
|
export BETA_BUILD=true
|
|
export BUILD_FOR_RELEASE=true
|
|
export REPLACE_ASSETS=false
|
|
|
|
############ APP IDENTIFIERS ############
|
|
export MAIN_APP_IDENTIFIER=com.mattermost.rnbeta
|
|
export EXTENSION_APP_IDENTIFIER=com.mattermost.rnbeta.MattermostShare
|
|
export NOTIFICATION_SERVICE_IDENTIFIER=com.mattermost.rnbeta.NotificationService
|
|
export IOS_APP_GROUP=group.com.mattermost.rnbeta
|
|
export IOS_ICLOUD_CONTAINER=iCloud.com.mattermost.rnbeta
|
|
export IOS_BUILD_EXPORT_METHOD=app-store
|
|
|
|
############ SET TO TRUE TO UPLOAD THE BUILDS TO TESTFLIGH AND GOOGLE PLAY ############
|
|
export SUBMIT_IOS_TO_TESTFLIGHT=false
|
|
export SUBMIT_ANDROID_TO_GOOGLE_PLAY=false
|
|
|
|
############ OPTIONAL ############
|
|
#export SENTRY_ENABLED=<set to true if you want to use sentry http://sentry.io/ to track crash and error reports>
|
|
#export SENTRY_URL=<set your sentry host URL, if you use self-hosted sentry>
|
|
#export SENTRY_ORG=<your sentry org>
|
|
#export SENTRY_PROJECT_IOS=<your sentry ios project>
|
|
#export SENTRY_DSN_IOS=<your sentry DSN for the ios project>
|
|
#export SENTRY_PROJECT_ANDROID=<your sentry android project>
|
|
#export SENTRY_DSN_ANDROID=<your sentry DSN for the android project>
|
|
#export SENTRY_AUTH_TOKEN=<your sentry auth token>
|
|
|
|
############ UPLOAD THE BUILDS TO AWS S3 ############
|
|
#export AWS_ACCESS_KEY_ID=<your aws s3 access id>
|
|
#export AWS_SECRET_ACCESS_KEY=<your aws s3 access key>
|
|
#export AWS_BUCKET_NAME=<your aws bucket name>
|
|
#export AWS_FOLDER_NAME=<the folder to use in you aws bucket>
|
|
#export AWS_REGION=<your aws region>
|
|
|
|
############ INTUNE MAM CONFIGURATION ############
|
|
#export INTUNE_ENABLED=false # Set to true to enable Intune MAM SDK
|
|
#export INTUNE_CLIENT_ID=<Entra App Registration Client ID>
|