Pdf and Nfc #187
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: Build | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: volta-cli/action@v4 | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-modules- | |
- name: Cache turbo build setup | |
uses: actions/cache@v4 | |
with: | |
path: .turbo | |
key: ${{ runner.os }}-turbo-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-turbo- | |
- run: npm ci | |
- run: npx turbo build | |
prebuild: | |
needs: [] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
platform: [android, ios] | |
include: | |
- os: ubuntu-latest | |
platform: android | |
- os: macos-latest | |
platform: ios | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: volta-cli/action@v4 | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-modules- | |
- name: Write google-services.json | |
run: 'printenv GOOGLE_SERVICES_JSON > ./google-services.json' | |
env: | |
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
- name: Verify google-services.json | |
run: | | |
jq -e '.project_info.project_id == "trajano"' ./google-services.json > /dev/null | |
- name: Install dependencies | |
run: npm install | |
- name: Prebuild for ${{ matrix.platform }} | |
run: npx expo prebuild --platform ${{ matrix.platform }} | |
working-directory: packages/my-app | |
- name: Set up JDK 17 | |
if: matrix.platform == 'android' | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
- name: Build Android App | |
if: matrix.platform == 'android' | |
run: ./gradlew assembleDebug | |
working-directory: packages/my-app/android | |
env: | |
GRADLE_OPTS: -Xmx4g | |
JAVA_OPTS: -Xmx4g | |
- name: Cache CocoaPods | |
uses: actions/cache@v4 | |
with: | |
path: | | |
Pods | |
~/Library/Caches/CocoaPods | |
key: ${{ runner.os }}-pods-${{ hashFiles('Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
if: matrix.platform == 'ios' | |
- name: CocoaPods Install | |
if: matrix.platform == 'ios' | |
run: | | |
pod install | |
working-directory: packages/my-app/ios | |
- name: Build iOS App | |
if: matrix.platform == 'ios' | |
run: | | |
source .xcode.env | |
xcodebuild -workspace MyAppGo.xcworkspace -scheme MyAppGo -destination 'platform=iOS Simulator,name=iPhone 15,OS=latest' build | |
working-directory: packages/my-app/ios |