mirror of
https://github.com/TextureGroup/Texture.git
synced 2026-04-07 19:17:39 +00:00
This has proven hard to maintain, and it has limited benefit now that our CHANGELOG points to GitHub commit ranges.
263 lines
6.8 KiB
Bash
Executable File
263 lines
6.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# echo ************* diagnostics
|
|
# echo available devices
|
|
# instruments -s devices
|
|
# echo available sdk
|
|
# xcodebuild -showsdks
|
|
# echo available Xcode
|
|
# ls -ld /Applications/Xcode*
|
|
# echo ************* diagnostics end
|
|
|
|
PLATFORM="${TEXTURE_BUILD_PLATFORM:-platform=iOS Simulator,OS=13.4.1,name=iPhone 8}"
|
|
SDK="${TEXTURE_BUILD_SDK:-iphonesimulator13.4}"
|
|
DERIVED_DATA_PATH="~/ASDKDerivedData"
|
|
|
|
# It is pitch black.
|
|
set -e
|
|
function trap_handler {
|
|
echo -e "\n\nOh no! You walked directly into the slavering fangs of a lurking grue!"
|
|
echo "**** You have died ****"
|
|
exit 255
|
|
}
|
|
trap trap_handler INT TERM EXIT
|
|
|
|
# Derived data handling
|
|
eval [ ! -d $DERIVED_DATA_PATH ] && eval mkdir $DERIVED_DATA_PATH
|
|
function clean_derived_data {
|
|
eval find $DERIVED_DATA_PATH -mindepth 1 -delete
|
|
}
|
|
|
|
# Build example
|
|
function build_example {
|
|
example="$1"
|
|
|
|
clean_derived_data
|
|
|
|
if [ -f "${example}/Podfile" ]; then
|
|
echo "Using CocoaPods"
|
|
pod install --project-directory=$example
|
|
|
|
set -o pipefail && xcodebuild \
|
|
-workspace "${example}/Sample.xcworkspace" \
|
|
-scheme Sample \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
-derivedDataPath "$DERIVED_DATA_PATH" \
|
|
build
|
|
elif [ -f "${example}/Cartfile" ]; then
|
|
echo "Using Carthage"
|
|
local_repo=`pwd`
|
|
current_branch=`git rev-parse --abbrev-ref HEAD`
|
|
cd $example
|
|
|
|
echo "git \"file://${local_repo}\" \"${current_branch}\"" > "Cartfile"
|
|
carthage update --platform iOS
|
|
|
|
set -o pipefail && xcodebuild \
|
|
-project "Sample.xcodeproj" \
|
|
-scheme Sample \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
build
|
|
|
|
cd ../..
|
|
fi
|
|
}
|
|
|
|
# Lint subspec
|
|
function lint_subspec {
|
|
set -o pipefail && pod env && pod lib lint --allow-warnings --subspec="$1"
|
|
}
|
|
|
|
function cleanup {
|
|
# remove all Pods directories
|
|
find . -name Pods -type d -exec rm -rf {} +
|
|
find . -name Podfile.lock -type f -delete
|
|
}
|
|
|
|
MODE="$1"
|
|
|
|
cleanup
|
|
|
|
case "$MODE" in
|
|
tests|all)
|
|
echo "Building & testing AsyncDisplayKit."
|
|
pod install
|
|
set -o pipefail && xcodebuild \
|
|
-workspace AsyncDisplayKit.xcworkspace \
|
|
-scheme AsyncDisplayKit \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
build-for-testing test
|
|
success="1"
|
|
;;
|
|
|
|
tests_listkit)
|
|
echo "Building & testing AsyncDisplayKit+IGListKit."
|
|
pod install --project-directory=SubspecWorkspaces/ASDKListKit
|
|
set -o pipefail && xcodebuild \
|
|
-workspace SubspecWorkspaces/ASDKListKit/ASDKListKit.xcworkspace \
|
|
-scheme ASDKListKitTests \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
build-for-testing test
|
|
success="1"
|
|
;;
|
|
|
|
examples|all)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in examples/*/; do
|
|
echo "Building (examples) $example."
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-pt1)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples -type d -maxdepth 1 \( ! -iname ".*" \)) | head -6); do
|
|
echo "Building (examples-pt1) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-pt2)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples -type d -maxdepth 1 \( ! -iname ".*" \)) | head -11 | tail -5); do
|
|
echo "Building (examples-pt2) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-pt3)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples -type d -maxdepth 1 \( ! -iname ".*" \)) | head -16 | tail -5); do
|
|
echo "Building (examples-pt3) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-pt4)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples -type d -maxdepth 1 \( ! -iname ".*" \)) | tail -n +17); do
|
|
echo "Building (examples-pt4) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-extra-pt1)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples_extra -type d -maxdepth 1 \( ! -iname ".*" \)) | head -6); do
|
|
echo "Building (examples-extra-pt1) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-extra-pt2)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples_extra -type d -maxdepth 1 \( ! -iname ".*" \)) | head -11 | tail -5); do
|
|
echo "Building (examples-extra-pt2) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
examples-extra-pt3)
|
|
echo "Verifying that all AsyncDisplayKit examples compile."
|
|
for example in $((find ./examples_extra -type d -maxdepth 1 \( ! -iname ".*" \)) | tail -n +12); do
|
|
echo "Building (examples-extra-pt3) $example"
|
|
|
|
build_example $example
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
example)
|
|
# Support building a specific example: sh build.sh example examples/ASDKLayoutTransition
|
|
echo "Verifying $2 compiles."
|
|
build_example $2
|
|
success="1"
|
|
;;
|
|
|
|
life-without-cocoapods|all)
|
|
echo "Verifying that AsyncDisplayKit functions as a static library."
|
|
|
|
set -o pipefail && xcodebuild \
|
|
-workspace "smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcworkspace" \
|
|
-scheme "Life Without CocoaPods" \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
build
|
|
success="1"
|
|
;;
|
|
|
|
framework|all)
|
|
echo "Verifying that AsyncDisplayKit functions as a dynamic framework (for Swift/Carthage users)."
|
|
|
|
set -o pipefail && xcodebuild \
|
|
-project "smoke-tests/Framework/Sample.xcodeproj" \
|
|
-scheme Sample \
|
|
-sdk "$SDK" \
|
|
-destination "$PLATFORM" \
|
|
build
|
|
success="1"
|
|
;;
|
|
|
|
cocoapods-lint|all)
|
|
echo "Verifying that podspec lints."
|
|
|
|
set -o pipefail && pod env && pod lib lint --allow-warnings
|
|
success="1"
|
|
;;
|
|
|
|
cocoapods-lint-default-subspecs)
|
|
echo "Verifying that default subspecs lint."
|
|
|
|
for subspec in 'Core' 'PINRemoteImage' 'Video' 'MapKit' 'AssetsLibrary' 'Photos'; do
|
|
echo "Verifying that $subspec subspec lints."
|
|
|
|
lint_subspec $subspec
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
cocoapods-lint-other-subspecs)
|
|
echo "Verifying that other subspecs lint."
|
|
|
|
for subspec in 'IGListKit' 'Yoga' 'TextNode2'; do
|
|
echo "Verifying that $subspec subspec lints."
|
|
|
|
lint_subspec $subspec
|
|
done
|
|
success="1"
|
|
;;
|
|
|
|
carthage|all)
|
|
echo "Verifying carthage works."
|
|
|
|
set -o pipefail && carthage update && carthage build --no-skip-current
|
|
success="1"
|
|
;;
|
|
|
|
*)
|
|
echo "Unrecognized mode '$MODE'."
|
|
;;
|
|
esac
|
|
|
|
if [ "$success" = "1" ]; then
|
|
trap - EXIT
|
|
exit 0
|
|
fi
|