Skip to content

Commit

Permalink
enh(ci): Refactor build workflow and build ios app
Browse files Browse the repository at this point in the history
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
  • Loading branch information
marcelklehr committed Dec 9, 2023
1 parent 5e556d6 commit 35a21d0
Showing 1 changed file with 77 additions and 11 deletions.
88 changes: 77 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ on:
- master

jobs:
build:
js:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
npm-version: [10.x]

name: node${{ matrix.node-versions }}
name: js node${{ matrix.node-version }}
steps:
- uses: actions/checkout@v2

Expand All @@ -28,11 +28,6 @@ jobs:
- name: Set up npm ${{ matrix.npm-version }}
run: npm i -g npm@"${{ matrix.npm-version }}"

- uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: '17'

- name: Cache node modules
uses: actions/cache@v1
env:
Expand All @@ -45,13 +40,84 @@ jobs:
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies & build
- name: Install dependencies
run: |
echo "Install"
npm ci -f
echo "Build javascript"
- name: Install dependencies & build
run: |
npm run build-release --if-present
echo "Build Java"
- name: Save context
uses: buildjet/cache/save@v3
with:
key: build-context-${{ github.run_id }}
path: ./

android:
needs: js
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 17 ]
name: android java${{ matrix.java-version }}
steps:
- uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: ${{ matrix.java-version }}

- name: Restore context
uses: buildjet/cache/restore@v3
with:
fail-on-cache-miss: true
key: build-context-${{ github.run_id }}
path: ./

- name: Build android
run: |
npx cap sync
cd android
chmod +x gradlew
./gradlew assemble
ios:
needs: js
runs-on: macos-latest
name: ios
steps:
- name: Restore context
uses: buildjet/cache/restore@v3
with:
fail-on-cache-miss: true
key: build-context-${{ github.run_id }}
path: ./

- name: setup-cocoapods
uses: maxim-lobanov/setup-cocoapods@v1
with:
podfile-path: ios/App/Podfile.lock

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Build android
env:
scheme: "Floccus"
run: |
npx cap sync
cd ios/App
xcodebuild build-for-testing -scheme "$scheme" -workspace App.xcworkspace
summary:
runs-on: ubuntu-latest
needs: [ js, android, ios ]

if: always()

name: build-summary

steps:
- name: Summary status
run: if ${{ needs.js.result != 'success' || ( needs.android.result != 'success' && needs.selenium.result != 'skipped' ) || ( needs.ios.result != 'success' && needs.ios.result != 'skipped' ) }}; then exit 1; fi

0 comments on commit 35a21d0

Please sign in to comment.