-
Notifications
You must be signed in to change notification settings - Fork 0
79 lines (79 loc) · 3.31 KB
/
Copy pathbuild-android.yml
File metadata and controls
79 lines (79 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
run-name: Build Android
on:
workflow_dispatch:
inputs:
version:
description: "Version to build, e.g. 0.9.0"
default: "0.9.0"
required: true
type: string
versionCode:
description: "Android version code to build"
required: true
type: string
environment:
description: "Environment for the app only, e.g. dev, staging, production"
default: "staging"
required: true
type: string
service:
description: "Service API endpoint"
default: "https://staging.service.ridetracker.app"
required: true
type: string
avatarService:
description: "Avatar Service API endpoint"
default: "https://staging.avatar-service.ridetracker.app"
required: true
type: string
routeService:
description: "Route Service API endpoint"
default: "https://staging.route-service.ridetracker.app"
required: true
type: string
images:
description: "Images endpoint"
default: "https://ridetracker.app/cdn-cgi/imagedelivery/iF-n-0zUOubWqw15Yx-oAg"
required: true
type: string
jobs:
build:
name: Build android-${{ inputs.versionCode }}-${{ inputs.version }}-${{ inputs.environment }}
runs-on: Android
permissions: read-all
steps:
- uses: actions/checkout@v3
- run: jq '.expo.android.versionCode = ${{ inputs.versionCode }} | .expo.version = "${{ inputs.version }}" | .expo.extra.environment = "${{ inputs.environment }}" | .expo.extra.apiUserAgent = "RideTrackerApp-${{ inputs.version }}" | .expo.extra.api = "${{ inputs.service }}" | .expo.extra.avatarApi = "${{ inputs.avatarService }}" | .expo.extra.route = "${{ inputs.routeService }}" | .expo.extra.images = "${{ inputs.images }}"' app.json > modified_app.json && mv modified_app.json app.json
- run: file app.json && cat app.json
- uses: actions/setup-node@v3
- run: |
echo "//npm.pkg.github.com/:_authToken=${{secrets.GITHUB_TOKEN}}" > .npmrc
echo "@ridetracker=https://npm.pkg.github.com/" >> .npmrc
- run: npm ci
- id: java
uses: actions/setup-java@v2
with:
distribution: "microsoft"
java-version: "11"
java-package: jdk
- uses: android-actions/setup-android@v2
- uses: nttld/setup-ndk@v1
id: ndk
with:
ndk-version: r21e
add-to-path: true
- run: mkdir ${{ runner.temp }}/artifacts
- run: npx eas-cli build --platform android --local
env:
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
EAS_LOCAL_BUILD_ARTIFACTS_DIR: ${{ runner.temp }}/artifacts
JAVA_HOME: ${{ steps.java.outputs.path }}
ANDROID_HOME: ${{ env.ANDROID_HOME }}
ANDROID_SDK_ROOT: ${{ env.ANDROID_SDK_ROOT }}
ANDROID_NDK_HOME: ${{ steps.ndk.outputs.ndk-path }}
GRADLE_OPTS=-Dorg.gradle.jvmargs: '"-Xmx14g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" -Dorg.gradle.parallel=true -Dorg.gradle.daemon=false'
- uses: actions/upload-artifact@v3
with:
name: android-${{ inputs.versionCode }}-${{ inputs.version }}-${{ inputs.environment }}
path: ${{ runner.temp }}/artifacts