1name: Development Client
2
3on:
4  workflow_dispatch: {}
5  pull_request:
6    branches: [master]
7    paths:
8      - .github/workflows/development-client.yml
9      - packages/expo-dev-*/**
10
11jobs:
12  android:
13    runs-on: ubuntu-18.04
14    steps:
15      - name: Check out repository
16        uses: actions/checkout@v2
17        with:
18          submodules: false
19      - name: Get yarn cache directory path
20        id: yarn-cache-dir-path
21        run: echo "::set-output name=dir::$(yarn cache dir)"
22      - uses: actions/cache@v1
23        with:
24          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
25          key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
26          restore-keys: |
27            ${{ runner.os }}-yarn-
28      - run: yarn install --frozen-lockfile
29      - uses: actions/cache@v1
30        with:
31          path: ~/.gradle/caches
32          key: ${{ runner.os }}-gradle-${{ hashFiles('android/*.gradle*') }}
33          restore-keys: |
34            ${{ runner.os }}-gradle-
35      - uses: actions/cache@v2
36        id: cache-android-ndk
37        with:
38          path: /usr/local/lib/android/sdk/ndk/19.2.5345600/
39          key: ${{ runner.os }}-ndk-19.2.5345600
40          restore-keys: |
41            ${{ runner.os }}-ndk-
42      - name: Install NDK
43        if: steps.cache-android-ndk.outputs.cache-hit != 'true'
44        run: |
45          sudo $ANDROID_HOME/tools/bin/sdkmanager --install "ndk;19.2.5345600"
46      - run: yarn global add expo-cli
47      - run: echo "$(yarn global bin)" >> $GITHUB_PATH
48      - name: Init new expo app
49        working-directory: ../
50        run: expo-cli init development-client-android-test --name development-client-android-test --yes
51      - name: Add dependencies
52        working-directory: ../development-client-android-test
53        run: yarn add file:../expo/packages/expo-dev-menu file:../expo/packages/expo-dev-menu-interface file:../expo/packages/expo-dev-launcher
54      - name: Setup app.config.json
55        working-directory: ../development-client-android-test
56        run: echo "{\"name\":\"development-client-android-test\",\"plugins\":[\"expo-dev-menu\",\"expo-dev-launcher\"],\"android\":{\"package\":\"com.devclient.test\"},\"ios\":{\"bundleIdentifier\":\"com.devclient.test\"}}" > app.config.json
57      - name: Eject
58        working-directory: ../development-client-android-test
59        run: expo-cli eject
60      - name: Build debug
61        env:
62          ANDROID_NDK_HOME: /usr/local/lib/android/sdk/ndk/19.2.5345600/
63        working-directory: ../development-client-android-test/android
64        run: ./gradlew assembleDebug
65
66  ios:
67    runs-on: macos-latest
68    steps:
69      - name: Check out repository
70        uses: actions/checkout@v2
71        with:
72          submodules: false
73      - name: Get yarn cache directory path
74        id: yarn-cache-dir-path
75        run: echo "::set-output name=dir::$(yarn cache dir)"
76      - uses: actions/cache@v1
77        with:
78          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
79          key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
80          restore-keys: |
81            ${{ runner.os }}-yarn-
82      - run: yarn install --frozen-lockfile
83      - run: yarn global add expo-cli
84      - run: echo "$(yarn global bin)" >> $GITHUB_PATH
85      - name: Init new expo app
86        working-directory: ../
87        run: expo-cli init development-client-ios-test --name development-client-ios-test --yes
88      - name: Add dependencies
89        working-directory: ../development-client-ios-test
90        run: yarn add file:../expo/packages/expo-dev-menu file:../expo/packages/expo-dev-menu-interface file:../expo/packages/expo-dev-launcher
91      - name: Setup app.config.json
92        working-directory: ../development-client-ios-test
93        run: echo "{\"name\":\"development-client-ios-test\",\"plugins\":[\"expo-dev-menu\",\"expo-dev-launcher\"],\"android\":{\"package\":\"com.devclient.test\"},\"ios\":{\"bundleIdentifier\":\"com.devclient.test\"}}" > app.config.json
94      - name: Eject
95        working-directory: ../development-client-ios-test
96        run: expo-cli eject
97      - name: Build debug
98        working-directory: ../development-client-ios-test
99        run: xcodebuild -workspace ios/developmentclientiostest.xcworkspace -scheme developmentclientiostest -configuration debug -sdk iphonesimulator -arch x86_64
100