forked from Ivasoft/mattermost-mobile
[MM-14238] Add make command to generate unsigned x86_64 build for VM/simulator (#2597)
* add make command to generate unsigned x86_64 build for VM/simulator * updated per comment, added common function at makefile * added start|stop_packger to start and stop phony
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
assets/override
|
assets/override
|
||||||
dist
|
dist
|
||||||
|
build-ios
|
||||||
*.zip
|
*.zip
|
||||||
server.PID
|
server.PID
|
||||||
mattermost.keystore
|
mattermost.keystore
|
||||||
|
|||||||
89
Makefile
89
Makefile
@@ -2,7 +2,7 @@
|
|||||||
.PHONY: check-style
|
.PHONY: check-style
|
||||||
.PHONY: start stop
|
.PHONY: start stop
|
||||||
.PHONY: run run-ios run-android
|
.PHONY: run run-ios run-android
|
||||||
.PHONY: build build-ios build-android unsigned-ios unsigned-android
|
.PHONY: build build-ios build-android unsigned-ios unsigned-android ios-sim-x86_64
|
||||||
.PHONY: build-pr can-build-pr prepare-pr
|
.PHONY: build-pr can-build-pr prepare-pr
|
||||||
.PHONY: test help
|
.PHONY: test help
|
||||||
|
|
||||||
@@ -91,21 +91,10 @@ post-install:
|
|||||||
@sed -i'' -e 's|transform: \[{scaleY: -1}\],|...Platform.select({android: {transform: \[{perspective: 1}, {scaleY: -1}\]}, ios: {transform: \[{scaleY: -1}\]}}),|g' node_modules/react-native/Libraries/Lists/VirtualizedList.js
|
@sed -i'' -e 's|transform: \[{scaleY: -1}\],|...Platform.select({android: {transform: \[{perspective: 1}, {scaleY: -1}\]}, ios: {transform: \[{scaleY: -1}\]}}),|g' node_modules/react-native/Libraries/Lists/VirtualizedList.js
|
||||||
|
|
||||||
start: | pre-run ## Starts the React Native packager server
|
start: | pre-run ## Starts the React Native packager server
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start; \
|
|
||||||
else \
|
|
||||||
echo React Native packager server already running; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
stop: ## Stops the React Native packager server
|
stop: ## Stops the React Native packager server
|
||||||
@echo Stopping React Native packager server
|
$(call stop_packager)
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 1 ]; then \
|
|
||||||
ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9; \
|
|
||||||
echo React Native packager server stopped; \
|
|
||||||
else \
|
|
||||||
echo No React Native packager server running; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
check-device-ios:
|
check-device-ios:
|
||||||
@if ! [ $(shell which xcodebuild) ]; then \
|
@if ! [ $(shell which xcodebuild) ]; then \
|
||||||
@@ -181,38 +170,26 @@ run-android: | check-device-android pre-run prepare-android-build ## Runs the ap
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
build: | stop pre-build check-style ## Builds the app for Android & iOS
|
build: | stop pre-build check-style ## Builds the app for Android & iOS
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building App"
|
@echo "Building App"
|
||||||
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane build
|
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane build
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
|
|
||||||
build-ios: | stop pre-build check-style ## Builds the iOS app
|
build-ios: | stop pre-build check-style ## Builds the iOS app
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building iOS app"
|
@echo "Building iOS app"
|
||||||
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane ios build
|
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane ios build
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
build-android: | stop pre-build check-style prepare-android-build ## Build the Android app
|
build-android: | stop pre-build check-style prepare-android-build ## Build the Android app
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building Android app"
|
@echo "Building Android app"
|
||||||
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane android build
|
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane android build
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
unsigned-ios: stop pre-build check-style ## Build an unsigned version of the iOS app
|
unsigned-ios: stop pre-build check-style ## Build an unsigned version of the iOS app
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building unsigned iOS app"
|
@echo "Building unsigned iOS app"
|
||||||
@cd fastlane && NODE_ENV=production bundle exec fastlane ios unsigned
|
@cd fastlane && NODE_ENV=production bundle exec fastlane ios unsigned
|
||||||
@mkdir -p build-ios
|
@mkdir -p build-ios
|
||||||
@@ -220,29 +197,34 @@ unsigned-ios: stop pre-build check-style ## Build an unsigned version of the iOS
|
|||||||
@cd build-ios/ && mkdir -p Payload && cp -R Build/Products/Release-iphoneos/Mattermost.app Payload/ && zip -r Mattermost-unsigned.ipa Payload/
|
@cd build-ios/ && mkdir -p Payload && cp -R Build/Products/Release-iphoneos/Mattermost.app Payload/ && zip -r Mattermost-unsigned.ipa Payload/
|
||||||
@mv build-ios/Mattermost-unsigned.ipa .
|
@mv build-ios/Mattermost-unsigned.ipa .
|
||||||
@rm -rf build-ios/
|
@rm -rf build-ios/
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
|
ios-sim-x86_64: stop pre-build check-style ## Build an unsigned x86_64 version of the iOS app for iPhone simulator
|
||||||
|
$(call start_packager)
|
||||||
|
@echo "Building unsigned x86_64 iOS app for iPhone simulator"
|
||||||
|
@cd fastlane && NODE_ENV=production bundle exec fastlane ios unsigned
|
||||||
|
@mkdir -p build-ios
|
||||||
|
@cd ios/ && xcodebuild -workspace Mattermost.xcworkspace/ -scheme Mattermost -arch x86_64 -sdk iphonesimulator -configuration Release -parallelizeTargets -resultBundlePath ../build-ios/result -derivedDataPath ../build-ios/ ENABLE_BITCODE=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ENABLE_BITCODE=NO
|
||||||
|
@cd build-ios/Build/Products/Release-iphonesimulator/ && zip -r Mattermost-simulator-x86_64.app.zip Mattermost.app/
|
||||||
|
@mv build-ios/Build/Products/Release-iphonesimulator/Mattermost-simulator-x86_64.app.zip .
|
||||||
|
@rm -rf build-ios/
|
||||||
|
$(call stop_packager)
|
||||||
|
|
||||||
unsigned-android: stop pre-build check-style prepare-android-build ## Build an unsigned version of the Android app
|
unsigned-android: stop pre-build check-style prepare-android-build ## Build an unsigned version of the Android app
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building unsigned Android app"
|
@echo "Building unsigned Android app"
|
||||||
@cd fastlane && NODE_ENV=production bundle exec fastlane android unsigned
|
@cd fastlane && NODE_ENV=production bundle exec fastlane android unsigned
|
||||||
@mv android/app/build/outputs/apk/unsigned/app-unsigned-unsigned.apk ./Mattermost-unsigned.apk
|
@mv android/app/build/outputs/apk/unsigned/app-unsigned-unsigned.apk ./Mattermost-unsigned.apk
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
test: | pre-run check-style ## Runs tests
|
test: | pre-run check-style ## Runs tests
|
||||||
@npm test
|
@npm test
|
||||||
|
|
||||||
build-pr: | can-build-pr stop pre-build check-style ## Build a PR from the mattermost-mobile repo
|
build-pr: | can-build-pr stop pre-build check-style ## Build a PR from the mattermost-mobile repo
|
||||||
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
$(call start_packager)
|
||||||
echo Starting React Native packager server; \
|
|
||||||
npm start & echo; \
|
|
||||||
fi
|
|
||||||
@echo "Building App from PR ${PR_ID}"
|
@echo "Building App from PR ${PR_ID}"
|
||||||
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane build_pr pr:PR-${PR_ID}
|
@cd fastlane && BABEL_ENV=production NODE_ENV=production bundle exec fastlane build_pr pr:PR-${PR_ID}
|
||||||
@ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9
|
$(call stop_packager)
|
||||||
|
|
||||||
can-build-pr:
|
can-build-pr:
|
||||||
@if [ -z ${PR_ID} ]; then \
|
@if [ -z ${PR_ID} ]; then \
|
||||||
@@ -258,3 +240,22 @@ i18n-extract: ## Extract strings for translation from the source code
|
|||||||
## Help documentation https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
## Help documentation https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
||||||
help:
|
help:
|
||||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
|
|
||||||
|
define start_packager
|
||||||
|
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \
|
||||||
|
echo Starting React Native packager server; \
|
||||||
|
npm start & echo; \
|
||||||
|
else \
|
||||||
|
echo React Native packager server already running; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|
||||||
|
define stop_packager
|
||||||
|
@echo Stopping React Native packager server
|
||||||
|
@if [ $(shell ps -ef | grep -i "cli.js start" | grep -civ grep) -eq 1 ]; then \
|
||||||
|
ps -ef | grep -i "cli.js start" | grep -iv grep | awk '{print $$2}' | xargs kill -9; \
|
||||||
|
echo React Native packager server stopped; \
|
||||||
|
else \
|
||||||
|
echo No React Native packager server running; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|||||||
Reference in New Issue
Block a user