1name: Updates e2e EAS 2 3on: 4 workflow_dispatch: {} 5 pull_request: 6 paths: 7 - .github/workflows/updates-e2e-basic.yml 8 - packages/@expo/cli/** 9 - packages/@expo/config-plugins/** 10 - packages/@expo/config-types/** 11 - packages/expo-json-utils/** 12 - packages/expo-manifests/** 13 - packages/expo-modules-core/** 14 - packages/expo-structured-headers/** 15 - packages/expo-updates-interface/** 16 - packages/expo-updates/** 17 - packages/expo/android/** 18 - packages/expo/ios/** 19 - templates/expo-template-bare-minimum/** 20 push: 21 branches: [main, 'sdk-*'] 22 paths: 23 - .github/workflows/updates-e2e-basic.yml 24 - packages/@expo/cli/** 25 - packages/@expo/config-plugins/** 26 - packages/@expo/config-types/** 27 - packages/expo-json-utils/** 28 - packages/expo-manifests/** 29 - packages/expo-modules-core/** 30 - packages/expo-structured-headers/** 31 - packages/expo-updates-interface/** 32 - packages/expo-updates/** 33 - packages/expo/android/** 34 - packages/expo/ios/** 35 - templates/expo-template-bare-minimum/** 36 37concurrency: 38 group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} 39 cancel-in-progress: true 40 41jobs: 42 build: 43 strategy: 44 fail-fast: false 45 matrix: 46 platform: [ios, android] 47 runs-on: ubuntu-20.04 48 timeout-minutes: 40 49 env: 50 UPDATES_PORT: 4747 51 steps: 52 - name: Checkout 53 uses: actions/checkout@v3 54 - name: ⬢ Setup Node 55 uses: actions/setup-node@v3 56 with: 57 node-version: 16 58 - name: ➕ Add `bin` to GITHUB_PATH 59 run: echo "$(yarn global bin)" >> $GITHUB_PATH 60 - name: ♻️ Restore caches 61 uses: ./.github/actions/expo-caches 62 id: expo-caches 63 with: 64 yarn-workspace: 'true' 65 - name: Yarn install 66 if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' 67 run: yarn install --frozen-lockfile 68 - name: Build local Expo CLI 69 working-directory: packages/@expo/cli 70 run: yarn prepare 71 - name: Build expo-updates CLI 72 working-directory: packages/expo-updates 73 run: yarn build:cli 74 - name: Install eas-cli 75 run: yarn global add eas-cli 76 - name: Add EXPO_REPO_ROOT to environment 77 run: echo "EXPO_REPO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV 78 - name: Set updates host 79 run: echo "UPDATES_HOST=localhost" >> $GITHUB_ENV 80 - name: Set updates port 81 run: echo "UPDATES_PORT=4747" >> $GITHUB_ENV 82 - name: Get artifacts path 83 run: mkdir -p artifact && echo "ARTIFACTS_DEST=$(pwd)/artifact" >> $GITHUB_ENV 84 - name: Get commit message 85 run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=oneline | head -c1000)" >> $GITHUB_ENV 86 - name: Set test project location 87 run: echo "TEST_PROJECT_ROOT=$GITHUB_WORKSPACE/updates-e2e" >> $GITHUB_ENV 88 - name: Setup test project for updates E2E basic tests 89 run: node packages/expo-updates/e2e/setup/create-eas-project.js 90 - name: Build with EAS for ${{ matrix.platform }} 91 uses: ./.github/actions/eas-build 92 id: build_eas 93 with: 94 platform: ${{ matrix.platform }} 95 profile: 'updates_testing' 96 projectRoot: './updates-e2e' 97 expoToken: ${{ secrets.EAS_BUILD_BOT_TOKEN }} 98 noWait: ${{ github.event.schedule }} 99 message: ${{ github.event.pull_request.title }} 100 - name: On ${{ matrix.platform }} workflow canceled 101 if: ${{ cancelled() && steps.build_eas.outputs.build_id }} 102 run: eas build:cancel ${{ steps.build_eas.outputs.build_id }} 103 working-directory: './updates-e2e' 104 env: 105 EXPO_TOKEN: ${{ secrets.EAS_BUILD_BOT_TOKEN }} 106 EAS_BUILD_PROFILE: updates_testing 107