Export udmf as part of ohos-sys #305
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| jobs: | |
| code_quality: | |
| name: Code Quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cargo fmt --check | |
| - run: cargo clippy | |
| integrity: | |
| name: Integrity Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - name: Setup OpenHarmony SDK | |
| uses: openharmony-rs/setup-ohos-sdk@v0.2 | |
| with: | |
| version: 6.0.0.1 | |
| - name: Generate bindings | |
| run: ./scripts/generate_bindings.sh | |
| - name: Check integrity | |
| run: git diff --exit-code | |
| build-toolchains: | |
| strategy: | |
| matrix: | |
| toolchain: [stable, beta, nightly] | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - run: cargo build | |
| name: Build default features | |
| - run: cargo build --all-features | |
| name: Build all features | |
| api_feature_levels: | |
| strategy: | |
| matrix: | |
| # Note: We don't test API 16+17 in CI, since they were never officially releases separately. | |
| api_level: ["api-10", "api-11", "api-12", "api-13", "api-14", "api-15", "api-18", "api-20", "api-21"] | |
| name: Build with API feature levels | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cargo build --features ${{ matrix.api_level }} --features all-components | |
| name: Build with API features | |
| api_minimal_featueres: | |
| strategy: | |
| matrix: | |
| component: | |
| - abilitykit | |
| - arkui | |
| - deviceinfo | |
| - drawing | |
| - hilog | |
| - hitrace | |
| - inputmethod | |
| - image-kit | |
| - multimodal-input | |
| - napi | |
| - native_buffer | |
| - native_image | |
| - native_window | |
| - rawfile | |
| - vsync | |
| - xcomponent | |
| - window_manager | |
| name: Build with minimal features | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build minimal features API-10 | |
| run: cargo build --features api-10 --features ${{ matrix.component }} | |
| - name: Build minimal features API-11 | |
| run: cargo build --features api-11 --features ${{ matrix.component }} | |
| - name: Build minimal features API-12 | |
| run: cargo build --features api-12 --features ${{ matrix.component }} | |
| - name: Build minimal features API-13 | |
| run: cargo build --features api-13 --features ${{ matrix.component }} | |
| - name: Build minimal features API-14 | |
| run: cargo build --features api-14 --features ${{ matrix.component }} | |
| - name: Build minimal features API-15 | |
| run: cargo build --features api-15 --features ${{ matrix.component }} | |
| - name: Build minimal features API-16 | |
| run: cargo build --features api-16 --features ${{ matrix.component }} | |
| - name: Build minimal features API-17 | |
| run: cargo build --features api-17 --features ${{ matrix.component }} | |
| - name: Build minimal features API-18 | |
| run: cargo build --features api-18 --features ${{ matrix.component }} | |
| - name: Build minimal features API-19 | |
| run: cargo build --features api-19 --features ${{ matrix.component }} | |
| - name: Build minimal features API-20 | |
| run: cargo build --features api-20 --features ${{ matrix.component }} | |
| - name: Build minimal features API-21 | |
| run: cargo build --features api-21 --features ${{ matrix.component }} | |
| semver_checks: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Check semver | |
| uses: obi1kenobi/cargo-semver-checks-action@v2 | |
| rustdoc: | |
| name: Build Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - name: Build docs | |
| run: cargo doc --all-features --workspace --no-deps | |
| env: | |
| RUSTDOCFLAGS: "--cfg=docsrs" | |
| build-result: | |
| name: Result | |
| runs-on: ubuntu-latest | |
| if: always() | |
| # needs all build to detect cancellation | |
| needs: | |
| - code_quality | |
| - build-toolchains | |
| - api_feature_levels | |
| - api_minimal_featueres | |
| # - semver_checks | |
| - rustdoc | |
| steps: | |
| - name: Success | |
| if: ${{ !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }} | |
| run: exit 0 | |
| - name: Failure | |
| if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
| run: exit 1 |