Merge pull request #334 from alichherawalla/react-native-zip-patch #825
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| lint: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install SwiftLint | |
| run: brew install swiftlint | |
| - name: Lint | |
| run: npm run lint | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Type check | |
| run: npx tsc --noEmit | |
| test: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Install JS dependencies | |
| run: npm ci | |
| - name: Run Jest tests | |
| run: npx jest --coverage --forceExit | |
| - name: Run Android tests | |
| run: cd android && ./gradlew :app:testDebugUnitTest --rerun-tasks | |
| - name: Run iOS tests | |
| run: | | |
| cd ios && xcodebuild test \ | |
| -workspace OffgridMobile.xcworkspace \ | |
| -scheme OffgridMobile \ | |
| -destination 'platform=iOS Simulator,name=iPhone 16' \ | |
| -only-testing:OffgridMobileTests \ | |
| 2>&1 | (xcpretty 2>/dev/null || cat) | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage/lcov.info | |
| fail_ci_if_error: false | |
| - name: Upload iOS test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ios-test-results | |
| path: ~/Library/Developer/Xcode/DerivedData/**/Logs/Test/*.xcresult | |
| if-no-files-found: ignore | |
| - name: Upload Android test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-test-results | |
| path: android/app/build/reports/tests/ | |
| if-no-files-found: ignore | |
| android-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build Android Debug | |
| run: cd android && ./gradlew assembleDebug | |
| - name: Build Android Release | |
| run: cd android && ./gradlew assembleRelease |