name: CI on: pull_request: branches: [main, develop] push: branches: [develop] jobs: test: name: Test & Lint runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' cache: 'npm' - name: Install dependencies run: npm ci - name: Run linter run: npm run lint - name: Type check run: npm run type-check - name: Run tests run: npm test build-ios: name: Build iOS runs-on: macos-latest needs: test steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Install dependencies run: npm ci - name: Install Pods run: | cd ios pod install - name: Build iOS run: | cd ios xcodebuild -workspace Fristy.xcworkspace \ -scheme Fristy \ -configuration Release \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 14' \ build build-android: name: Build Android runs-on: ubuntu-latest needs: test steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Install dependencies run: npm ci - name: Setup Java uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '17' - name: Build Android run: | cd android ./gradlew assembleRelease