# CI for the native_* packages.
#
# Combined into a single workflow so that deps are configured and installed once.

name: native
permissions: read-all

on:
  pull_request:
    branches: [main]
    paths:
      - ".github/workflows/native.yaml"
      - "pkgs/native_assets_builder/**"
      - "pkgs/native_assets_cli/**"
      - "pkgs/native_toolchain_c/**"
      - "tools/**"
  push:
    branches: [main]
    paths:
      - ".github/workflows/native.yaml"
      - "pkgs/native_assets_builder/**"
      - "pkgs/native_assets_cli/**"
      - "pkgs/native_toolchain_c/**"
      - "tools/**"
  schedule:
    - cron: "0 0 * * 0" # weekly

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu, macos, windows]
        sdk: [stable, dev]
        package: [native_assets_builder, native_assets_cli, native_toolchain_c]
        dependencies: [published, path]
        # Breaking changes temporarily break the example run on the Dart SDK until native_assets_builder is rolled into the Dart SDK dev build.
        breaking-change: [false]
        exclude:
          # Only run analyze against dev on one host.
          - os: macos
            sdk: dev
          - os: windows
            sdk: dev
          # Only run path deps on dev
          - sdk: stable
            dependencies: published

    runs-on: ${{ matrix.os }}-latest

    defaults:
      run:
        working-directory: pkgs/${{ matrix.package }}

    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

      - uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d
        with:
          sdk: ${{ matrix.sdk }}

      - uses: nttld/setup-ndk@6a7e9c5494a25c4842ca1011f710300132eacd94
        with:
          ndk-version: r26b
        if: ${{ matrix.sdk == 'stable' }}

      - run: dart run ../../tools/check_pubspec_overrides.dart

      - run: dart run ../../tools/delete_pubspec_overrides.dart
        if: ${{ matrix.dependencies == 'published' }}

      - run: dart pub get

      - run: dart pub get -C test_data/dart_app/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C test_data/native_add/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C test_data/native_add_add_source/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C test_data/native_subtract/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C test_data/package_reading_metadata/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C test_data/package_with_metadata/
        if: ${{ matrix.package == 'native_assets_builder' }}

      - run: dart pub get -C example/native_add_app/
        if: ${{ matrix.package == 'native_assets_cli' }}

      - run: dart pub get -C example/native_add_library/
        if: ${{ matrix.package == 'native_assets_cli' }}

      - run: dart pub get -C example/use_dart_api/
        if: ${{ matrix.package == 'native_assets_cli' }}

      - run: dart analyze --fatal-infos
        # Run on dev to ensure we're not depending on deprecated SDK things.

      - run: dart format --output=none --set-exit-if-changed .
        if: ${{ matrix.sdk == 'stable' }}

      - name: Install native toolchains
        run: sudo apt-get update && sudo apt-get install clang-15 gcc-i686-linux-gnu gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-riscv64-linux-gnu
        if: ${{ matrix.sdk == 'stable' && matrix.os == 'ubuntu' }}

      - run: dart test
        if: ${{ matrix.sdk == 'stable' }}

      - run: dart --enable-experiment=native-assets test
        working-directory: pkgs/${{ matrix.package }}/example/native_add_app/
        if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }}

      - run: dart --enable-experiment=native-assets run
        working-directory: pkgs/${{ matrix.package }}/example/native_add_app/
        if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }}

      - run: dart --enable-experiment=native-assets build bin/native_add_app.dart
        working-directory: pkgs/${{ matrix.package }}/example/native_add_app/
        if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }}

      - run: ./native_add_app.exe
        working-directory: pkgs/${{ matrix.package }}/example/native_add_app/bin/native_add_app/
        if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }}

      - run: dart --enable-experiment=native-assets test
        working-directory: pkgs/${{ matrix.package }}/example/use_dart_api/
        if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }}

      - name: Install coverage
        run: dart pub global activate coverage
        if: ${{ matrix.sdk == 'stable' && matrix.dependencies == 'published' }}

      - name: Collect coverage
        run: dart pub global run coverage:test_with_coverage
        if: ${{ matrix.sdk == 'stable' && matrix.dependencies == 'published' }}

      - name: Upload coverage
        uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949
        with:
          flag-name: ${{ matrix.package }}_${{ matrix.os }}
          github-token: ${{ secrets.GITHUB_TOKEN }}
          parallel: true
        if: ${{ matrix.sdk == 'stable' && matrix.dependencies == 'published' }}

  coverage-finished:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
      - name: Upload coverage
        uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949
        with:
          carryforward: "ffigen_macos,jnigen_tests,jni_tests"
          github-token: ${{ secrets.GITHUB_TOKEN }}
          parallel-finished: true
