Android Client - EAS Build #68
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Android Client - EAS Build | |
on: | |
workflow_dispatch: {} | |
pull_request: | |
paths: | |
- .github/workflows/client-android-eas.yml | |
- apps/eas-expo-go/** | |
- apps/expo-go/android/** | |
push: | |
branches: [main, sdk-*] | |
paths: | |
- .github/workflows/client-android-eas.yml | |
- apps/eas-expo-go/** | |
- apps/expo-go/android/** | |
schedule: | |
- cron: '20 5 * * *' # 5:20 AM UTC time every day | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
if: ${{ github.event_name != 'pull_request' || (github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]') }} | |
steps: | |
- name: 👀 Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: 🔓 Decrypt secrets if possible | |
uses: ./.github/actions/expo-git-decrypt | |
with: | |
key: ${{ secrets.GIT_CRYPT_KEY_BASE64 }} | |
- name: ➕ Add `bin` to GITHUB_PATH | |
run: echo "$(pwd)/bin" >> $GITHUB_PATH | |
- name: ♻️ Restore caches | |
uses: ./.github/actions/expo-caches | |
id: expo-caches | |
with: | |
yarn-workspace: 'true' | |
yarn-tools: 'true' | |
- name: 🧶 Yarn install | |
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' | |
run: yarn install --frozen-lockfile | |
- name: Install eas-cli | |
run: npm install -g eas-cli | |
- name: Generate local credentials.json | |
working-directory: ./apps/eas-expo-go | |
run: | | |
cat >credentials.json <<EOL | |
{ | |
"android": { | |
"keystore": { | |
"keystorePath": "release.keystore", | |
"keystorePassword": "$ANDROID_KEYSTORE_PASSWORD", | |
"keyAlias": "ExponentKey", | |
"keyPassword": "$ANDROID_KEY_PASSWORD" | |
} | |
} | |
} | |
EOL | |
echo $ANDROID_KEYSTORE_B64 | base64 -d > release.keystore | |
env: | |
ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} | |
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} | |
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} | |
- name: Build | |
uses: ./.github/actions/eas-build | |
id: build | |
with: | |
platform: 'android' | |
profile: 'unversioned-client' | |
projectRoot: './apps/eas-expo-go' | |
expoToken: ${{ secrets.EAS_BUILD_BOT_TOKEN }} | |
message: ${{ github.event.pull_request.title }} | |
- name: On workflow canceled | |
if: ${{ cancelled() && steps.build.outputs.build_id }} | |
run: eas build:cancel ${{ steps.build.outputs.build_id }} | |
working-directory: ./apps/eas-expo-go | |
env: | |
EXPO_TOKEN: ${{ secrets.EAS_BUILD_BOT_TOKEN }} | |
EAS_BUILD_PROFILE: 'unversioned-client' | |
- name: 🔔 Notify on Slack | |
uses: 8398a7/action-slack@v3 | |
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/heads/sdk-')) | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_android }} | |
with: | |
channel: '#expo-android' | |
status: ${{ job.status }} | |
fields: job,message,ref,eventName,author,took | |
author_name: Expo Go (Android) |