diff --git a/.github/workflows/build-submit-android.yml b/.github/workflows/build-submit-android.yml new file mode 100644 index 0000000000..e26b15a49d --- /dev/null +++ b/.github/workflows/build-submit-android.yml @@ -0,0 +1,59 @@ +--- +name: Build and Submit Android + +on: + workflow_dispatch: + inputs: + profile: + type: choice + description: Build profile to use + options: + - production + +jobs: + build: + name: Build and Submit Android + runs-on: ubuntu-latest + steps: + - name: Check for EXPO_TOKEN + run: > + if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then + echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions" + exit 1 + fi + + - name: ⬇️ Checkout + uses: actions/checkout@v4 + + - name: 🔧 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: yarn + + - name: 🔨 Setup EAS + uses: expo/expo-github-action@v8 + with: + expo-version: latest + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: ⛏️ Setup EAS local builds + run: yarn global add eas-cli-local-build-plugin + + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: 📁 Copy google-services.json + run: cp google-services.json.example google-services.json + + - name: ⚙️ Install dependencies + run: yarn install + + - name: 🏗️ EAS Build + run: yarn use-build-number eas build -p android --profile production --local --output build.aab --non-interactive + + - name: 🚀 Deploy + run: eas submit -p android --non-interactive --path build.aab diff --git a/.github/workflows/build-submit-ios.yml b/.github/workflows/build-submit-ios.yml new file mode 100644 index 0000000000..ef12bae5d5 --- /dev/null +++ b/.github/workflows/build-submit-ios.yml @@ -0,0 +1,67 @@ +--- +name: Build and Submit iOS + +on: + schedule: + - cron: '0 5 * * *' + workflow_dispatch: + inputs: + profile: + type: choice + description: Build profile to use + options: + - production + +jobs: + build: + name: Build and Submit iOS + runs-on: macos-14 + steps: + - name: Check for EXPO_TOKEN + run: > + if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then + echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions" + exit 1 + fi + + - name: ⬇️ Checkout + uses: actions/checkout@v4 + + - name: 🔧 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: yarn + + - name: 🔨 Setup EAS + uses: expo/expo-github-action@v8 + with: + expo-version: latest + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: ⛏️ Setup EAS local builds + run: yarn global add eas-cli-local-build-plugin + + - name: ⚙️ Install dependencies + run: yarn install + + - name: ☕️ Setup Cocoapods + uses: maxim-lobanov/setup-cocoapods@v1 + with: + version: 1.14.3 + + - name: 💾 Cache Pods + uses: actions/cache@v3 + id: pods-cache + with: + path: ./ios/Pods + # We'll use the yarn.lock for our hash since we don't yet have a Podfile.lock. Pod versions will not + # change unless the yarn version changes as well. + key: ${{ runner.os }}-pods-${{ hashFiles('yarn.lock') }} + + - name: 🏗️ EAS Build + run: yarn use-build-number eas build -p ios --profile production --local --output build.ipa --non-interactive + + - name: 🚀 Deploy + run: eas submit -p ios --non-interactive --path build.ipa diff --git a/.github/workflows/deploy-nightly-testflight.yml b/.github/workflows/deploy-nightly-testflight.yml deleted file mode 100644 index 61bc8c5388..0000000000 --- a/.github/workflows/deploy-nightly-testflight.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Deploy Nightly Testflight Release - -on: - schedule: - - cron: '0 5 * * *' - -jobs: - build: - name: Deploy Nightly Testflight Release - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - name: Check for EXPO_TOKEN - run: | - if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then - echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions" - exit 1 - fi - - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 18.x - cache: yarn - - - name: Setup EAS - uses: expo/expo-github-action@v8 - with: - eas-version: latest - token: ${{ secrets.EXPO_TOKEN }} - - - name: Install dependencies - run: yarn install - - - name: EAS build and submit - run: yarn use-build-number eas build -p ios --profile github --auto-submit --non-interactive diff --git a/package.json b/package.json index 0a18888384..8364566fd7 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,12 @@ "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", - "build-web": "expo export:web && node ./scripts/post-web-build.js && cp -v ./web-build/static/js/*.* ./bskyweb/static/js/", - "build-all": "yarn intl:build && ./scripts/useBuildNumberEnv.sh eas build --platform all", - "build-ios": "./scripts/useBuildNumberEnv.sh eas build -p ios", - "build-android": "./scripts/useBuildNumberEnv.sh eas build -p android", "use-build-number": "./scripts/useBuildNumberEnv.sh", - "build": "./scripts/useBuildNumberEnv.sh eas build", + "build-web": "expo export:web && node ./scripts/post-web-build.js && cp -v ./web-build/static/js/*.* ./bskyweb/static/js/", + "build-all": "yarn intl:build && yarn use-build-number eas build --platform all", + "build-ios": "yarn use-build-number eas build -p ios", + "build-android": "yarn use-build-number eas build -p android", + "build": "yarn use-build-number eas build", "start": "expo start --dev-client", "start:prod": "expo start --dev-client --no-dev --minify", "clean-cache": "rm -rf node_modules/.cache/babel-loader/*",