diff --git a/.circleci/config.yml b/.circleci/config.yml index 1130427ae3..7cd0f6feb4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -164,6 +164,64 @@ jobs: exit $error_code no_output_timeout: 15m + build_android_pr_test: + macos: + xcode: 15.2.0 + resource_class: macos.x86.medium.gen2 + environment: + TERM: dumb + JAVA_OPTS: -Xms2g -Xmx4g + GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError" + PUBLIC_VERSION: 2.2.999 + BUILD_NUMBER: 800 + # GCS_DIRECTORY: << pipeline.parameters.gcs_directory >> + working_directory: ~/galoy-mobile + shell: /bin/bash --login -o pipefail + steps: + - gh/install + - checkout: + path: ~/galoy-mobile + + - node/install: + install-yarn: true + node-version: '18.18.2' + + - run: brew update + - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask google-cloud-sdk + - run: HOMEBREW_NO_AUTO_UPDATE=1 brew cask install android-sdk + + - run: gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB + - run: echo $GCLOUD_BUCKET_KEY | base64 --decode > key.json + - run: gcloud auth activate-service-account --key-file key.json + + - run: cd android && bundle config set deployment 'true' + - run: cd android && bundle check || bundle install + + - restore_cache: + key: 2-yarn-{{ checksum "yarn.lock" }}-android + - run: yarn global add node-gyp + - run: yarn install + - save_cache: + key: 2-yarn-{{ checksum "yarn.lock" }}-android + paths: + - node_modules + - run: echo $JAVA_OPTS + - run: echo $GRADLE_OPTS + - run: echo $RELEASE_KEYSTORE | base64 -d > android/app/release.keystore + - run: + name: build + command: | + cd android + sed -i'' -e "s/versionCode .*$/versionCode $BUILD_NUMBER/g" app/build.gradle + bundle exec fastlane android build 2>&1 | tee android_build_output.log + no_output_timeout: 15m + # - run: + # name: upload to gcs + # command: gsutil cp -r android/app/build/outputs/* gs://galoy-build-artifacts/galoy-mobile/$GCS_DIRECTORY/galoy-mobile-$(date +%s)-v${PUBLIC_VERSION}/ + - store_artifacts: + path: android/android_build_output.log + + build_android: docker: - image: cimg/android:2024.01 @@ -353,3 +411,6 @@ workflows: - equal: ["api", << pipeline.trigger_source >>] jobs: - upload_to_app_store + build_android_pr_test: + jobs: + - build_android_pr_test