diff --git a/.github/workflows/build-submit-android.yml b/.github/workflows/build-submit-android.yml new file mode 100644 index 0000000000..051e951510 --- /dev/null +++ b/.github/workflows/build-submit-android.yml @@ -0,0 +1,61 @@ +--- +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: āļø Install dependencies + run: yarn install + + - name: āļø Write environment variables + run: | + echo "${{ secrets.ENV_TOKEN }}" > .env + echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json + + - 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..0fd691bb92 --- /dev/null +++ b/.github/workflows/build-submit-ios.yml @@ -0,0 +1,72 @@ +--- +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: āļø Write environment variables + run: | + echo "${{ secrets.ENV_TOKEN }}" > .env + echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json + + - 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 e3875899ee..0000000000 --- a/.github/workflows/deploy-nightly-testflight.yml +++ /dev/null @@ -1,52 +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: Bump build number - run: yarn bump:ios - - - name: EAS build and submit - run: eas build -p ios --profile production --auto-submit --non-interactive - - - name: Commit - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: Nightly iOS Build Bump - branch: main - commit_user_name: github-actions[bot] - commit_user_email: github-actions[bot]@users.noreply.github.com diff --git a/app.config.js b/app.config.js index 9814065f4d..e710420b09 100644 --- a/app.config.js +++ b/app.config.js @@ -11,24 +11,12 @@ const DARK_SPLASH_CONFIG = { resizeMode: 'cover', } -module.exports = function () { +module.exports = function (config) { /** * App version number. Should be incremented as part of a release cycle. */ const VERSION = pkg.version - /** - * iOS build number. Must be incremented for each TestFlight version. - * WARNING: Always leave this variable on line 24! If it is moved, you need to update ./scripts/bumpIosBuildNumber.sh - */ - const IOS_BUILD_NUMBER = '7' - - /** - * Android build number. Must be incremented for each release. - * WARNING: Always leave this variable on line 30! If it is moved, you need to update ./scripts/bumpAndroidBuildNumber.sh - */ - const ANDROID_VERSION_CODE = 62 - /** * Uses built-in Expo env vars * @@ -36,11 +24,10 @@ module.exports = function () { */ const PLATFORM = process.env.EAS_BUILD_PLATFORM - /** - * Additional granularity for the `dist` field - */ const DIST_BUILD_NUMBER = - PLATFORM === 'android' ? ANDROID_VERSION_CODE : IOS_BUILD_NUMBER + PLATFORM === 'android' + ? process.env.BSKY_ANDROID_VERSION_CODE + : process.env.BSKY_IOS_BUILD_NUMBER return { expo: { @@ -57,7 +44,6 @@ module.exports = function () { userInterfaceStyle: 'automatic', splash: SPLASH_CONFIG, ios: { - buildNumber: IOS_BUILD_NUMBER, supportsTablet: false, bundleIdentifier: 'xyz.blueskyweb.app', config: { @@ -85,7 +71,6 @@ module.exports = function () { backgroundColor: '#ffffff', }, android: { - versionCode: ANDROID_VERSION_CODE, icon: './assets/icon.png', adaptiveIcon: { foregroundImage: './assets/icon-android-foreground.png', diff --git a/bskyweb/templates/base.html b/bskyweb/templates/base.html index 99b6f1dc67..e29e4032bb 100644 --- a/bskyweb/templates/base.html +++ b/bskyweb/templates/base.html @@ -2,7 +2,6 @@
-