[native_toolchain_c] Skip building dylib if code asset type not reque… #1068
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: | |
# No `branches:` to enable stacked PRs on GitHub. | |
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] | |
# 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] | |
runs-on: ${{ matrix.os }}-latest | |
defaults: | |
run: | |
working-directory: pkgs/${{ matrix.package }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94 | |
with: | |
sdk: ${{ matrix.sdk }} | |
- uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 | |
with: | |
ndk-version: r27 | |
if: ${{ matrix.os != 'macos' }} | |
- 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_duplicate/ | |
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 test_data/simple_link/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/complex_link/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/complex_link_helper/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/drop_dylib_link/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/add_asset_link/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/transformer/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/treeshaking_native_libs/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/native_dynamic_linking/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C example/build/native_dynamic_linking/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C example/build/native_add_app/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C example/build/native_add_library/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C example/build/use_dart_api/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C example/link/package_with_assets/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C example/link/app_with_asset_treeshaking/ | |
if: ${{ matrix.package == 'native_assets_cli' }} | |
- run: dart pub get -C test_data/fail_build/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/depend_on_fail_build/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- run: dart pub get -C test_data/depend_on_fail_build_app/ | |
if: ${{ matrix.package == 'native_assets_builder' }} | |
- 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 . | |
- 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.os == 'ubuntu' }} | |
- run: dart test | |
- run: dart --enable-experiment=native-assets test | |
working-directory: pkgs/${{ matrix.package }}/example/build/native_dynamic_linking/ | |
# TODO(https://github.com/dart-lang/native/issues/190): Enable on windows once | |
# https://github.com/dart-lang/sdk/commit/903eea6bfb8ee405587f0866a1d1e92eea45d29e | |
# has landed in dev channel. | |
if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change && matrix.os != 'windows' }} | |
- run: dart --enable-experiment=native-assets test | |
working-directory: pkgs/${{ matrix.package }}/example/build/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/build/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/build/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/build/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/build/use_dart_api/ | |
if: ${{ matrix.package == 'native_assets_cli' && matrix.sdk == 'dev' && !matrix.breaking-change }} | |
- name: Install coverage | |
run: dart pub global activate coverage | |
- name: Collect coverage | |
run: dart pub global run coverage:test_with_coverage | |
- name: Upload coverage | |
uses: coverallsapp/github-action@cfd0633edbd2411b532b808ba7a8b5e04f76d2c8 | |
with: | |
flag-name: ${{ matrix.package }}_${{ matrix.os }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel: true | |
coverage-finished: | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Upload coverage | |
uses: coverallsapp/github-action@cfd0633edbd2411b532b808ba7a8b5e04f76d2c8 | |
with: | |
carryforward: "ffigen,jni,jnigen,native_assets_builder_macos,native_assets_builder_ubuntu,native_assets_builder_windows,native_assets_cli_macos,native_assets_cli_ubuntu,native_assets_cli_windows,native_toolchain_c_macos,native_toolchain_c_ubuntu,native_toolchain_c_windows,objective_c,swift2objc" | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel-finished: true |