Skip to content

fix(native_store,linux): Null pointer on clear #25

fix(native_store,linux): Null pointer on clear

fix(native_store,linux): Null pointer on clear #25

name: native_storage
on:
pull_request:
paths:
- ".github/workflows/native_storage.yaml"
- "packages/native/storage/**"
# Prevent duplicate runs due to Graphite
# https://graphite.dev/docs/troubleshooting#why-are-my-actions-running-twice
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}-${{ github.ref == 'refs/heads/main' && github.sha || ''}}
cancel-in-progress: true
jobs:
analyze_and_format:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Get Packages
working-directory: packages/native/storage
run: dart pub get
- name: Analyze
working-directory: packages/native/storage
run: dart analyze
- name: Format
working-directory: packages/native/storage
run: dart format --set-exit-if-changed .
test_darwin:
runs-on: macos-latest-xlarge
timeout-minutes: 20
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Get Packages
working-directory: packages/native/storage
run: dart pub get
- name: Test
working-directory: packages/native/storage
run: dart test
- name: Get Packages (Example)
working-directory: packages/native/storage/example
run: flutter pub get
- name: Setup iOS Simulator
run: |
RUNTIME=$(xcrun simctl list runtimes | grep 'iOS 17' | tail -n 1 | cut -d' ' -f 7)
echo "Using runtime: $RUNTIME"
xcrun simctl create ios 'iPhone 15 Pro Max' $RUNTIME
echo "Booting simulator"
xcrun simctl boot ios
echo "Booted simulator"
- name: Test (iOS)
working-directory: packages/native/storage/example
run: flutter test -d ios integration_test/storage_test.dart
- name: Test (macOS)
working-directory: packages/native/storage/example
run: flutter test -d macos integration_test/storage_test.dart
test_android:
runs-on:
group: public
labels: linux
timeout-minutes: 15
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Get Packages (Example)
working-directory: packages/native/storage/example
run: flutter pub get
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Test (API 31)
uses: ReactiveCircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # 2.32.0
with:
# Matches `package:jni` compileSdkVersion
# https://github.com/dart-lang/native/blob/001910c9f40d637cb25c19bb500fb89cebdf7450/pkgs/jni/android/build.gradle#L57C23-L57C25
api-level: 31
arch: x86_64
script: cd packages/native/storage/example && flutter test -d emulator integration_test/storage_test.dart
- name: Test (API 21)
uses: ReactiveCircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # 2.32.0
with:
# Minimum supported API level
# Should match build.gradle: https://github.com/celest-dev/celest/blob/main/packages/native/storage/android/build.gradle#L49
api-level: 21
arch: x86_64
script: cd packages/native/storage/example && flutter test -d emulator integration_test/storage_test.dart
test_linux:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Install Build Dependencies
run: sudo apt-get update && sudo apt-get install -y clang cmake git ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
- name: Setup Test Environment
working-directory: packages/native/storage
run: tool/setup-ci.sh
- name: Get Packages
working-directory: packages/native/storage
run: dart pub get
- name: Test
working-directory: packages/native/storage
run: dart test
- name: Get Packages (Example)
working-directory: packages/native/storage/example
run: flutter pub get
- name: Test (Linux)
working-directory: packages/native/storage/example
run: |
# Headless tests require virtual display for the linux tests to run.
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
flutter test -d linux integration_test/storage_test.dart
test_windows:
runs-on: windows-latest
timeout-minutes: 15
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Get Packages
working-directory: packages/native/storage
run: dart pub get --no-example
- name: Test
working-directory: packages/native/storage
run: dart test
- name: Get Packages (Example)
working-directory: packages/native/storage/example
run: flutter pub get
- name: Test (Windows)
working-directory: packages/native/storage/example
run: flutter test -d windows integration_test/storage_test.dart
test_web:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Git Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup Flutter
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # 2.16.0
with:
cache: true
- name: Get Packages
working-directory: packages/native/storage
run: dart pub get
- name: Test (Chrome, dart2js)
working-directory: packages/native/storage
run: dart test -p chrome
- name: Test (Chrome, dart2wasm)
working-directory: packages/native/storage
run: dart test -p chrome -c dart2wasm