diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..ccb6b297 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,56 @@ +name: CI + +on: [push, pull_request] + +jobs: + website: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 8.x + - name: Install dependencies + run: yarn install --frozen-lockfile --ignore-scripts + working-directory: website + - name: Build + run: yarn build + working-directory: website + - name: Deploy + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: website/public + cname: yogalayout.com + keep_files: true + user_name: 'Yoga-bot' + user_email: 'yogabot@fb.com' + android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: | + 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 + sudo apt-get update + sudo apt-get install -y ninja-build + pushd $HOME + git clone --depth 1 https://github.com/facebook/buck.git + cd buck + ant + popd + echo "::set-env name=PATH::$PATH:$HOME/buck/bin/" + export PATH=$PATH:$HOME/buck/bin/ + buck --version + export TERMINAL=dumb + source scripts/android-setup.sh && installAndroidSDK + echo "::set-env name=ANDROID_SDK::$ANDROID_HOME" + echo "::set-env name=ANDROID_NDK_REPOSITORY::$HOME/android-ndk" + echo "::set-env name=ANDROID_NDK_HOME::$ANDROID_NDK_REPOSITORY/android-ndk-r15c" + - name: Build + run: ./gradlew testDebugUnit && scripts/publish-snapshot.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3ae55d1f..00000000 --- a/.travis.yml +++ /dev/null @@ -1,77 +0,0 @@ -language: java -os: linux -dist: trusty -addons: - apt: - sources: - - llvm-toolchain-trusty-6.0 - - ubuntu-toolchain-r-test - packages: - - clang-6.0 - -env: - - TARGET: website - - TARGET: android - -install: -- cd website -- yarn --ignore-scripts -- cd .. - -cache: - directories: - - $HOME/buck - - $HOME/.gradle - -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 - # Android - - | - if [[ $TARGET = "android" ]]; then - pushd $HOME - git clone --depth 1 https://github.com/facebook/buck.git - cd buck - ant - popd - export PATH=$PATH:$HOME/buck/bin/ - buck --version - 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 - # Website - - | - if [[ $TARGET = "website" ]]; then - nvm install 8 - nvm use 8 - fi - -script: - - | - if [[ $TARGET = "android" ]]; then - ./gradlew testDebugUnit && scripts/publish-snapshot.sh - fi - - | - if [[ $TARGET = "website" ]]; then - pushd website - yarn build - popd - fi - -deploy: - provider: pages - skip-cleanup: true - github-token: $GITHUB_TOKEN - fqdn: yogalayout.com - local-dir: website/public - email: yogabot@fb.com - name: Yoga-bot - keep-history: true - on: - branch: master - condition: $TARGET = website diff --git a/scripts/publish-snapshot.sh b/scripts/publish-snapshot.sh index 02c45457..c494f97f 100755 --- a/scripts/publish-snapshot.sh +++ b/scripts/publish-snapshot.sh @@ -14,14 +14,14 @@ set -e BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" IS_SNAPSHOT="$(grep 'VERSION_NAME=[0-9\.]\+-SNAPSHOT' "$BASEDIR/gradle.properties")" -if [ "$TRAVIS_REPO_SLUG" != "facebook/yoga" ]; then - echo >&2 "Skipping repository. Expected project to be 'facebook/yoga', but was '$TRAVIS_REPO_SLUG'." +if [ "$GITHUB_REPOSITORY" != "facebook/yoga" ]; then + echo >&2 "Skipping repository. Expected project to be 'facebook/yoga', but was '$GITHUB_REPOSITORY'." exit -elif [ "$TRAVIS_BRANCH" != "master" ]; then - echo >&2 "Skipping build. Expected branch name to be 'master', but was '$TRAVIS_BRANCH'." +elif [ "$GITHUB_REF" != "refs/heads/master" ]; then + echo >&2 "Skipping build. Expected ref name to be 'refs/heads/master', but was '$GITHUB_REF'." exit -elif [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo >&2 "Skipping build. Only considering non-PR builds, but URL was '$TRAVIS_PULL_REQUEST'." +elif [ "$GITHUB_EVENT_NAME" != "push" ]; then + echo >&2 "Skipping build. Only considering push builds, but event was '$GITHUB_EVENT_NAME'." exit elif [ "$IS_SNAPSHOT" == "" ]; then echo >&2 "Skipping build. Given build doesn't appear to be a SNAPSHOT release."