# 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/**"
  push:
    branches: [main]
    paths:
      - ".github/workflows/native.yaml"
      - "pkgs/native_assets_builder/**"
      - "pkgs/native_assets_cli/**"
      - "pkgs/native_toolchain_c/**"
  schedule:
    - cron: "0 0 * * 0" # weekly

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu, macos, windows]
        sdk: [stable, dev]
        package: [native_assets_builder, native_assets_cli, native_toolchain_c]
        # 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: [true]
        exclude:
          # Only run analyze against dev on one host.
          - os: macos
            sdk: dev
          - os: windows
            sdk: dev

    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@3354316c3285ea90da09d047280dd79d00d5a37a
        with:
          ndk-version: r26b
        if: ${{ matrix.sdk == 'stable' }}

      - 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 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 }}

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

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

      - 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' }}

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