1name: Versioning Expo Go 2 3on: 4 workflow_dispatch: {} 5 schedule: 6 - cron: '0 5 * * SUN' # 5AM UTC time on each Sunday 7 pull_request: 8 paths: 9 - .github/workflows/versioning.yml 10 - tools/src/commands/AddSDKVersion.ts 11 - tools/src/commands/RemoveSDKVersion.ts 12 - tools/src/versioning/** 13 14concurrency: 15 group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} 16 cancel-in-progress: true 17 18jobs: 19 ios: 20 runs-on: macos-12 21 steps: 22 - name: Checkout 23 uses: actions/checkout@v3 24 with: 25 submodules: true 26 - name: Switch to Xcode 14.1 27 run: sudo xcode-select --switch /Applications/Xcode_14.1.app 28 - name: Decrypt secrets if possible 29 uses: ./.github/actions/expo-git-decrypt 30 with: 31 key: ${{ secrets.GIT_CRYPT_KEY_BASE64 }} 32 - name: ➕ Add `bin` to GITHUB_PATH 33 run: echo "$(pwd)/bin" >> $GITHUB_PATH 34 - name: Setup Ruby and install gems 35 uses: ruby/setup-ruby@v1 36 with: 37 bundler-cache: true 38 - name: ♻️ Restore caches 39 uses: ./.github/actions/expo-caches 40 id: expo-caches 41 with: 42 yarn-workspace: 'true' 43 yarn-tools: 'true' 44 ios-pods: 'true' 45 - name: Yarn install 46 if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' 47 run: yarn install --frozen-lockfile 48 - name: Generating dynamic macros 49 run: expotools ios-generate-dynamic-macros 50 - name: Install CocoaPods in `ios` 51 if: steps.expo-caches.outputs.ios-pods-hit != 'true' 52 run: pod install 53 working-directory: ios 54 - name: Adding new SDK version 55 run: expotools add-sdk-version --platform ios --sdkVersion next --reinstall 56 - name: Build versioned Expo Go for simulator 57 run: expotools client-build --platform ios --flavor versioned 58 timeout-minutes: 120 59 env: 60 AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 61 AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 62 AWS_DEFAULT_REGION: 'us-east-1' 63 - name: Removing SDK version 64 run: expotools remove-sdk-version --platform ios --sdkVersion latest 65 - name: Ensure that Git working dir is clean 66 run: git diff --exit-code 67 - name: Notify on Slack 68 uses: 8398a7/action-slack@v3 69 if: failure() && (github.event.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/heads/sdk-')) 70 env: 71 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 72 SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_ios }} 73 with: 74 channel: '#expo-ios' 75 status: ${{ job.status }} 76 fields: job,message,ref,eventName,author,took 77 author_name: Versioning Expo Go (iOS) 78