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-13 21 steps: 22 - name: Checkout 23 uses: actions/checkout@v3 24 with: 25 submodules: true 26 - name: Switch to Xcode 14.3 27 run: sudo xcode-select --switch /Applications/Xcode_14.3.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 ruby-version: 3.2.2 39 - name: ♻️ Restore caches 40 uses: ./.github/actions/expo-caches 41 id: expo-caches 42 with: 43 yarn-workspace: 'true' 44 yarn-tools: 'true' 45 ios-pods: 'true' 46 - name: Yarn install 47 if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' 48 run: yarn install --frozen-lockfile 49 - name: Generating dynamic macros 50 run: expotools ios-generate-dynamic-macros 51 - name: Install CocoaPods in `ios` 52 if: steps.expo-caches.outputs.ios-pods-hit != 'true' 53 run: pod install 54 working-directory: ios 55 - name: Adding new SDK version 56 run: expotools add-sdk-version --platform ios --sdkVersion next --reinstall 57 - name: Build versioned Expo Go for simulator 58 run: expotools client-build --platform ios --flavor versioned 59 timeout-minutes: 120 60 env: 61 AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 62 AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 63 AWS_DEFAULT_REGION: 'us-east-1' 64 - name: Removing SDK version 65 run: expotools remove-sdk-version --platform ios --sdkVersion latest 66 - name: Ensure that Git working dir is clean 67 run: git diff --exit-code 68 - name: Notify on Slack 69 uses: 8398a7/action-slack@v3 70 if: failure() && (github.event.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/heads/sdk-')) 71 env: 72 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 73 SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_ios }} 74 with: 75 channel: '#expo-ios' 76 status: ${{ job.status }} 77 fields: job,message,ref,eventName,author,took 78 author_name: Versioning Expo Go (iOS) 79