diff --git a/.travis.yml b/.travis.yml index 53029187..5bcad1fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,147 +5,24 @@ # LICENSE file in the root directory of this source tree. An additional grant # of patent rights can be found in the PATENTS file in the same directory. -os: osx -osx_image: xcode8.2 -language: cpp -compiler: clang -cache: - directories: - - $HOME/Library/Caches/Homebrew - - $HOME/android-sdk - - $HOME/android-ndk +language: node_js -env: - - TARGET=c - - TARGET=java - - TARGET=net - - TARGET=ios - - TARGET=js - - TARGET=android - -before_install: - - | - if [[ -n "$encrypted_d27e803291ff_iv" ]]; then - openssl aes-256-cbc -K $encrypted_d27e803291ff_key -iv $encrypted_d27e803291ff_iv -in scripts/setup-keys.enc -d >> gradle.properties; - fi - - - brew update > /dev/null - - brew install --HEAD facebook/fb/buck - - # Java - - | - if [[ $TARGET = "java" ]]; then - brew cask install java && - export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && - export PATH=$JAVA_HOME/bin:$PATH - fi - - # .NET - - | - if [[ $TARGET = "net" ]]; then - brew install mono - fi - - # iOS - - | - if [[ $TARGET = "ios" ]]; then - brew outdated xctool || brew upgrade xctool; - gem install xcpretty --no-document --quiet; - gem install cocoapods --pre --no-document --quiet; - pod repo update --silent; - pod install --project-directory=YogaKit/YogaKitSample/; - fi - - # Emscripten (used for js tests) - # Note: cannot be ran on Linux (because it will compile Clang from its sources :|) - - | - if [[ $TARGET = "js" ]]; then - wget -O /tmp/emsdk-portable.tar.gz https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz && - tar xf /tmp/emsdk-portable.tar.gz -C /tmp/ && - /tmp/emsdk-portable/emsdk install latest 2>&1 | grep -v '^x ' && - /tmp/emsdk-portable/emsdk activate latest - fi - - # Android - - | - if [[ $TARGET = "android" ]]; then - brew cask install java; - export JAVA_HOME=$(/usr/libexec/java_home -v 1.8); - export PATH=$JAVA_HOME/bin:$PATH; - export TERMINAL=dumb; - source scripts/android-setup.sh && installAndroidSDK - export ANDROID_SDK=$ANDROID_HOME - export ANDROID_NDK_REPOSITORY=$HOME/android-ndk - export ANDROID_NDK_HOME=$ANDROID_NDK_REPOSITORY/android-ndk-r15c - fi - - # JavaScript - - | - if [[ $TARGET = "js" ]]; then ( - cd javascript && - npm install && - unset CC && unset CXX && unset LINK && - source /tmp/emsdk-portable/emsdk_env.sh && - npm run build:browser - ) fi +install: +- cd website +- yarn +- cd .. script: - # C - - | - if [[ $TARGET = "c" ]]; then - buck test --verbose 0 //:yoga && - buck run --verbose 0 //benchmark:benchmark && - git checkout HEAD^ && - buck run --verbose 0 //benchmark:benchmark - fi - - # Java - - | - if [[ $TARGET = "java" ]]; then - buck test --verbose 0 //java:java - fi - - # .NET - - | - if [[ $TARGET = "net" ]]; then - sh csharp/tests/Facebook.Yoga/test_macos.sh - fi - - # iOS - - | - if [[ $TARGET = "ios" ]]; then - buck test --verbose 0 //YogaKit:YogaKitTests --config cxx.default_platform=iphonesimulator-x86_64 && - set -o pipefail && - xcodebuild build -workspace YogaKit/YogaKitSample/YogaKitSample.xcworkspace -scheme YogaKitSample -sdk iphonesimulator | xcpretty -c - fi - - # Android - - | - if [[ $TARGET = "android" ]]; then - buck build --verbose 0 //android/sample:sample && - ./gradlew testDebugUnit && - scripts/publish-snapshot.sh - fi - - # JavaScript - - | - if [[ $TARGET = "js" ]]; then ( - cd javascript && - npm run test:all && - npm run bench - ) fi - -before_deploy: - - cd website - - yarn - - yarn build +- cd website +- yarn build +- cd .. deploy: provider: pages skip-cleanup: true github-token: $GITHUB_TOKEN fqdn: yogalayout.com - local-dir: public + local-dir: website/public email: yogabot@fb.com name: Yoga-bot keep-history: true diff --git a/README.md b/README.md index 7a8833b8..703aa160 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,5 @@ # Yoga [![CocoaPods](https://img.shields.io/cocoapods/v/YogaKit.svg)](http://cocoapods.org/pods/YogaKit) [![npm](https://img.shields.io/npm/v/yoga-layout.svg)](https://www.npmjs.com/package/yoga-layout) [![bintray](https://img.shields.io/bintray/v/facebook/maven/com.facebook.yoga:yoga.svg)](https://bintray.com/facebook/maven/com.facebook.yoga%3Ayoga/_latestVersion) [![NuGet](https://img.shields.io/nuget/v/Facebook.Yoga.svg)](https://www.nuget.org/packages/Facebook.Yoga) -[![C Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=c&label=C)](https://travis-ci.org/facebook/yoga) -[![Java Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=java&label=Java)](https://travis-ci.org/facebook/yoga) -[![iOS Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=ios&label=iOS)](https://travis-ci.org/facebook/yoga) -[![.NET Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=net&label=.NET)](https://travis-ci.org/facebook/yoga) -[![JavaScript Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=js&label=JavaScript)](https://travis-ci.org/facebook/yoga) -[![Android Status](https://badges.herokuapp.com/travis/facebook/yoga?env=TARGET=android&label=Android)](https://travis-ci.org/facebook/yoga) - -[![Visual Studio Team services](https://img.shields.io/vso/build/rumar/fe6d27b5-e424-4f61-b8f6-e2ec2f8755fb/1.svg?label=vsts-windows)]() -[![Visual Studio Team services](https://img.shields.io/vso/build/rumar/fe6d27b5-e424-4f61-b8f6-e2ec2f8755fb/2.svg?label=vsts-osx)]() - ## Building Yoga builds with [buck](https://buckbuild.com). Make sure you install buck before contributing to Yoga. Yoga's main implementation is in C, with bindings to supported languages and frameworks. When making changes to Yoga please ensure the changes are also propagated to these bindings when applicable.