mirror of
https://github.com/ProxymanApp/atlantis.git
synced 2026-05-20 20:20:35 +00:00
109 lines
2.5 KiB
YAML
109 lines
2.5 KiB
YAML
name: main
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
swiftpm-test:
|
|
name: SwiftPM Tests
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Select latest Xcode
|
|
uses: maxim-lobanov/setup-xcode@v1
|
|
with:
|
|
xcode-version: latest-stable
|
|
|
|
- name: Show Xcode and Swift version
|
|
run: |
|
|
xcodebuild -version
|
|
swift --version
|
|
|
|
- name: Cache SwiftPM
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
.build
|
|
~/Library/Caches/org.swift.swiftpm
|
|
key: ${{ runner.os }}-swiftpm-${{ hashFiles('Package.swift', 'Package.resolved') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-swiftpm-
|
|
|
|
- name: Run SwiftPM Tests
|
|
run: swift test
|
|
|
|
android-test:
|
|
name: Android Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'temurin'
|
|
|
|
- name: Cache Gradle packages
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
|
|
- name: Grant execute permission for gradlew
|
|
working-directory: atlantis-android
|
|
run: chmod +x gradlew
|
|
|
|
- name: Run Android Unit Tests
|
|
working-directory: atlantis-android
|
|
run: ./gradlew :atlantis:test --no-daemon
|
|
|
|
- name: Upload Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: android-test-results
|
|
path: atlantis-android/atlantis/build/reports/tests/
|
|
|
|
react-native-test:
|
|
name: React Native Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Cache npm packages
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: atlantis-react-native/node_modules
|
|
key: ${{ runner.os }}-npm-${{ hashFiles('atlantis-react-native/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-npm-
|
|
|
|
- name: Install dependencies
|
|
working-directory: atlantis-react-native
|
|
run: npm install
|
|
|
|
- name: Run Tests
|
|
working-directory: atlantis-react-native
|
|
run: npx jest --ci --coverage |