Skip to content

Async Storage v3

Async Storage v3 #183

Workflow file for this run

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