Async Storage v3 #183
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: PR review | |
on: | |
pull_request: | |
jobs: | |
code-quality: | |
name: Code quality | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
test-name: [lint, ts, format] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup project | |
uses: ./.github/actions/setup-project | |
- name: Install dependencies | |
run: yarn | |
- name: Build async-storage js | |
run: yarn build:js | |
- name: test ${{ matrix.test-name }} | |
run: yarn test:${{ matrix.test-name }} | |
shared-storage-tests: | |
name: shared-storage tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-24.04] | |
testName: | |
[testAndroidHostTest, macosArm64Test, iosSimulatorArm64Test] | |
exclude: | |
- testName: testAndroidHostTest | |
os: macos-latest | |
- testName: macosArm64Test | |
os: ubuntu-24.04 | |
- testName: iosSimulatorArm64Test | |
os: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: actions/setup-java@v5 | |
with: | |
distribution: "temurin" | |
java-version: "21" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v5 | |
- name: Run test ${{ matrix.testName }} | |
run: | | |
./gradlew ${{ matrix.testName }} | |
changes: | |
name: report changed files | |
runs-on: ubuntu-latest | |
needs: | |
- code-quality | |
- shared-storage-tests | |
outputs: | |
changed: ${{ steps.filter.outputs.storage }} | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
token: ${{ secrets.GH_RELEASE_TOKEN }} | |
filters: | | |
storage: | |
- 'packages/async-storage/**' | |
android: | |
name: Android RN | |
needs: changes | |
if: ${{ needs.changes.outputs.changed == 'true' }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
- name: Setup project | |
uses: ./.github/actions/setup-project | |
- name: Install JS dependencies | |
run: yarn | |
- name: Build async-storage js | |
run: yarn build:js | |
- name: Bundle JS | |
run: yarn bundle:android | |
working-directory: examples/react-native | |
ios: | |
name: iOS RN | |
needs: changes | |
if: ${{ needs.changes.outputs.changed == 'true' }} | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
- name: Setup project | |
uses: ./.github/actions/setup-project | |
- name: Cache /.ccache | |
uses: actions/cache@v3 | |
with: | |
path: packages/async-storage/.ccache | |
key: ccache-ios-${{ hashFiles('yarn.lock') }} | |
restore-keys: ccache-ios- | |
- name: Install JS dependencies | |
run: yarn | |
- name: Build async-storage js | |
run: yarn build:js | |
- name: Bundle JS | |
run: yarn bundle:ios | |
working-directory: examples/react-native | |
macOS: | |
name: macOS RN | |
needs: changes | |
if: ${{ needs.changes.outputs.changed == 'true' }} | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
- name: Setup project | |
uses: ./.github/actions/setup-project | |
- name: Cache /.ccache | |
uses: actions/cache@v3 | |
with: | |
path: packages/async-storage/.ccache | |
key: ccache-ios-${{ hashFiles('yarn.lock') }} | |
restore-keys: ccache-ios- | |
- name: Install JS dependencies | |
run: yarn | |
- name: Build async-storage js | |
run: yarn build:js | |
- name: Bundle JS | |
run: yarn bundle:macos | |
working-directory: examples/react-native | |
windows: | |
name: Windows RN | |
needs: changes | |
if: ${{ needs.changes.outputs.changed == 'true' }} | |
runs-on: windows-2022 | |
steps: | |
- name: Set up MSBuild | |
uses: microsoft/[email protected] | |
- name: Setup VSTest.console.exe | |
uses: darenm/[email protected] | |
- name: Checkout | |
uses: actions/checkout@v5 | |
- name: Setup project | |
uses: ./.github/actions/setup-project | |
with: | |
windows-fix: true | |
- name: Install JS dependencies | |
run: yarn | |
- name: Build async-storage js | |
run: yarn build:js | |
- name: Bundle JS | |
run: yarn bundle:windows | |
working-directory: examples/react-native |