Skip to content

feat: write_csv

feat: write_csv #43

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
# TODO: Get everything working first
# schedule:
# # runs the CI everyday at 10AM
# - cron: "0 10 * * *"
env:
CARGO_TERM_COLOR: always
jobs:
# General build, check, and test steps
build_and_test:
runs-on: ubuntu-latest
steps:
# Setup
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
# Rust
- name: Check Rust format
working-directory: polars-wrapper/src
run: rustfmt --check lib.rs
- name: Rust code analysis
run: cargo clippy -- -D warnings
- name: Run Rust tests
run: cargo test
- name: Build Rust code for Dart tests
run: cargo build
# Dart/Flutter
- name: Check Dart format
run: melos run check-format --no-select
- name: Dart code analysis
run: melos run analyze --no-select
- name: Run Dart tests
run: melos run test
# TODO: Add integration tests
# macos_integration_test:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v3
# - uses: subosito/flutter-action@v2
# - uses: bluefireteam/melos-action@v2
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# - name: Build the XCFramework
# run: melos run build-macos
# - name: Copy the XCFramework to the needed location
# run: |
# CURR_VERSION=polars-v`awk '/^version: /{print $2}' packages/polars/pubspec.yaml`
# cp platform-build/PolarsWrapper.xcframework.zip packages/flutter_polars/macos/Frameworks/$CURR_VERSION.zip
# echo Copied file!
# - name: Run Flutter integration tests
# working-directory: packages/flutter_polars/example
# run: flutter test -d macos integration_test
# windows_integration_test:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v3
# - uses: subosito/flutter-action@v2
# - uses: bluefireteam/melos-action@v2
# - uses: goto-bus-stop/setup-zig@v2
# - uses: KyleMayes/install-llvm-action@v1
# with:
# version: "15"
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# - name: Build the binaries
# run: melos run build-other-local
# - name: Copy the binaries to the needed location
# shell: bash
# run: |
# CURR_VERSION=polars-v`awk '/^version: /{print $2}' packages/polars/pubspec.yaml`
# cp platform-build/other.tar.gz packages/flutter_polars/windows/$CURR_VERSION.tar.gz
# echo Copied file!
# - name: Run Flutter integration tests
# working-directory: packages/flutter_polars/example
# run: flutter test -d windows integration_test
# linux_integration_test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - name: Install dependencies for flutter integration test
# run: sudo apt update && sudo apt-get install -y libglu1-mesa ninja-build clang cmake pkg-config libgtk-3-dev liblzma-dev
# - uses: pyvista/setup-headless-display-action@v1
# - uses: subosito/flutter-action@v2
# - uses: bluefireteam/melos-action@v2
# - uses: goto-bus-stop/setup-zig@v2
# - uses: KyleMayes/install-llvm-action@v1
# with:
# version: "15"
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# - name: Build the binaries
# run: melos run build-other-local
# - name: Copy the binaries to the needed location
# run: |
# CURR_VERSION=polars-v`awk '/^version: /{print $2}' packages/polars/pubspec.yaml`
# cp platform-build/other.tar.gz packages/flutter_polars/linux/$CURR_VERSION.tar.gz
# echo Copied file!
# - name: Run Flutter integration tests
# working-directory: packages/flutter_polars/example
# run: flutter test -d linux integration_test
# ios_integration_test:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v3
# - uses: subosito/flutter-action@v2
# - uses: bluefireteam/melos-action@v2
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# - name: Start iOS Simulator
# run: |
# DEVICE_ID=$(xcrun xctrace list devices | grep iPhone | head -1 | awk '{print $NF}' | tr -d '()')
# echo "DEVICE_ID=$DEVICE_ID" >> $GITHUB_ENV
# xcrun simctl boot $DEVICE_ID
# - name: Build the XCFramework
# run: melos run build-ios
# - name: Copy the XCFramework to the needed location
# run: |
# CURR_VERSION=polars-v`awk '/^version: /{print $2}' packages/polars/pubspec.yaml`
# cp platform-build/PolarsWrapper.xcframework.zip packages/flutter_polars/ios/Frameworks/$CURR_VERSION.zip
# echo Copied file!
# - name: Run Flutter integration tests
# working-directory: packages/flutter_polars/example
# run: flutter test -d ${{ env.DEVICE_ID }} integration_test
# android_integration_test:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v3
# - uses: subosito/flutter-action@v2
# - uses: bluefireteam/melos-action@v2
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# - uses: nttld/setup-ndk@v1
# with:
# ndk-version: r25b
# - uses: actions/setup-java@v3
# with:
# distribution: zulu
# java-version: "11.x"
# - name: Build the binaries
# run: melos run build-android
# - name: Copy the binaries to the needed location
# run: |
# CURR_VERSION=polars-v`awk '/^version: /{print $2}' packages/polars/pubspec.yaml`
# cp platform-build/android.tar.gz packages/flutter_polars/android/$CURR_VERSION.tar.gz
# echo Copied file!
# - name: Run Flutter integration tests
# uses: Wandalen/wretry.action@master # sometimes android tests are flaky
# with:
# attempt_limit: 2
# action: reactivecircus/android-emulator-runner@v2
# with: |
# api-level: 33
# target: google_apis
# arch: x86_64
# ram-size: 1024M
# disk-size: 2048M
# script: cd packages/flutter_polars/example && flutter test -d `flutter devices | grep android | tr ' ' '\n' | grep emulator-` integration_test