16855e09eSopenharmony_ciname: CI
26855e09eSopenharmony_ci
36855e09eSopenharmony_cion: [push, pull_request]
46855e09eSopenharmony_ci
56855e09eSopenharmony_cienv:
66855e09eSopenharmony_ci  RUST_MINVERSION: 1.41.1
76855e09eSopenharmony_ci  CARGO_INCREMENTAL: 0
86855e09eSopenharmony_ci  CARGO_NET_RETRY: 10
96855e09eSopenharmony_ci
106855e09eSopenharmony_cijobs:
116855e09eSopenharmony_ci  test:
126855e09eSopenharmony_ci    name: Test
136855e09eSopenharmony_ci    runs-on: ubuntu-latest
146855e09eSopenharmony_ci
156855e09eSopenharmony_ci    strategy:
166855e09eSopenharmony_ci      matrix:
176855e09eSopenharmony_ci        rust:
186855e09eSopenharmony_ci          - stable
196855e09eSopenharmony_ci          - beta
206855e09eSopenharmony_ci          - nightly
216855e09eSopenharmony_ci          - 1.48.0
226855e09eSopenharmony_ci
236855e09eSopenharmony_ci        features:
246855e09eSopenharmony_ci          - ''
256855e09eSopenharmony_ci
266855e09eSopenharmony_ci        include:
276855e09eSopenharmony_ci          - rust: stable
286855e09eSopenharmony_ci            features: ''
296855e09eSopenharmony_ci          - rust: stable
306855e09eSopenharmony_ci            features: '--features "std"'
316855e09eSopenharmony_ci          - rust: stable
326855e09eSopenharmony_ci            features: '--no-default-features'
336855e09eSopenharmony_ci          - rust: stable
346855e09eSopenharmony_ci            features: '--no-default-features --features "alloc"'
356855e09eSopenharmony_ci          - rust: nightly
366855e09eSopenharmony_ci            features: ''
376855e09eSopenharmony_ci          - rust: nightly
386855e09eSopenharmony_ci            features: '--no-default-features'
396855e09eSopenharmony_ci          - rust: nightly
406855e09eSopenharmony_ci            features: '--no-default-features --features "alloc"'
416855e09eSopenharmony_ci
426855e09eSopenharmony_ci    steps:
436855e09eSopenharmony_ci      - name: Checkout sources
446855e09eSopenharmony_ci        uses: actions/checkout@v2
456855e09eSopenharmony_ci
466855e09eSopenharmony_ci      - name: Install rust (${{ matrix.rust }})
476855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
486855e09eSopenharmony_ci        with:
496855e09eSopenharmony_ci          toolchain: ${{ matrix.rust }}
506855e09eSopenharmony_ci          profile: minimal
516855e09eSopenharmony_ci          override: true
526855e09eSopenharmony_ci
536855e09eSopenharmony_ci      - name: Cache
546855e09eSopenharmony_ci        uses: Swatinem/rust-cache@v1
556855e09eSopenharmony_ci
566855e09eSopenharmony_ci      - name: Build
576855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
586855e09eSopenharmony_ci        with:
596855e09eSopenharmony_ci          command: build
606855e09eSopenharmony_ci          args: --verbose ${{ matrix.features }}
616855e09eSopenharmony_ci
626855e09eSopenharmony_ci      - name: Test
636855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
646855e09eSopenharmony_ci        with:
656855e09eSopenharmony_ci          command: test
666855e09eSopenharmony_ci          args: --verbose ${{ matrix.features }}
676855e09eSopenharmony_ci
686855e09eSopenharmony_ci  minrust:
696855e09eSopenharmony_ci    name: Test minimal rust version
706855e09eSopenharmony_ci    runs-on: ubuntu-latest
716855e09eSopenharmony_ci
726855e09eSopenharmony_ci    steps:
736855e09eSopenharmony_ci      - name: Checkout sources
746855e09eSopenharmony_ci        uses: actions/checkout@v2
756855e09eSopenharmony_ci
766855e09eSopenharmony_ci      - name: Install rust (${{ env.RUST_MINVERSION }})
776855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
786855e09eSopenharmony_ci        with:
796855e09eSopenharmony_ci          toolchain: ${{ env.RUST_MINVERSION }}
806855e09eSopenharmony_ci          profile: minimal
816855e09eSopenharmony_ci          override: true
826855e09eSopenharmony_ci
836855e09eSopenharmony_ci      - name: Cache
846855e09eSopenharmony_ci        uses: Swatinem/rust-cache@v1
856855e09eSopenharmony_ci
866855e09eSopenharmony_ci      - name: Build
876855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
886855e09eSopenharmony_ci        with:
896855e09eSopenharmony_ci          command: build
906855e09eSopenharmony_ci          args: --verbose --no-default-features --features "alloc,std"
916855e09eSopenharmony_ci
926855e09eSopenharmony_ci  bench:
936855e09eSopenharmony_ci    name: Bench
946855e09eSopenharmony_ci    runs-on: ubuntu-latest
956855e09eSopenharmony_ci
966855e09eSopenharmony_ci    steps:
976855e09eSopenharmony_ci      - name: Checkout sources
986855e09eSopenharmony_ci        uses: actions/checkout@v2
996855e09eSopenharmony_ci
1006855e09eSopenharmony_ci      - name: Install rust
1016855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
1026855e09eSopenharmony_ci        with:
1036855e09eSopenharmony_ci          toolchain: nightly
1046855e09eSopenharmony_ci          profile: minimal
1056855e09eSopenharmony_ci          override: true
1066855e09eSopenharmony_ci
1076855e09eSopenharmony_ci      - name: Cache
1086855e09eSopenharmony_ci        uses: Swatinem/rust-cache@v1
1096855e09eSopenharmony_ci
1106855e09eSopenharmony_ci      - name: Compile bench
1116855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
1126855e09eSopenharmony_ci        with:
1136855e09eSopenharmony_ci          command: bench
1146855e09eSopenharmony_ci          args: --verbose --no-run --features ""
1156855e09eSopenharmony_ci
1166855e09eSopenharmony_ci      - name: Run bench
1176855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
1186855e09eSopenharmony_ci        with:
1196855e09eSopenharmony_ci          command: bench
1206855e09eSopenharmony_ci          args: --verbose --features ""
1216855e09eSopenharmony_ci
1226855e09eSopenharmony_ci  doc:
1236855e09eSopenharmony_ci    name: Build documentation
1246855e09eSopenharmony_ci    runs-on: ubuntu-latest
1256855e09eSopenharmony_ci
1266855e09eSopenharmony_ci    steps:
1276855e09eSopenharmony_ci      - name: Checkout sources
1286855e09eSopenharmony_ci        uses: actions/checkout@v2
1296855e09eSopenharmony_ci
1306855e09eSopenharmony_ci      - name: Install rust
1316855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
1326855e09eSopenharmony_ci        with:
1336855e09eSopenharmony_ci          toolchain: nightly
1346855e09eSopenharmony_ci          profile: minimal
1356855e09eSopenharmony_ci          override: true
1366855e09eSopenharmony_ci
1376855e09eSopenharmony_ci      - name: Build
1386855e09eSopenharmony_ci        env:
1396855e09eSopenharmony_ci          RUSTDOCFLAGS: -D warnings
1406855e09eSopenharmony_ci        run: cargo doc --no-deps --document-private-items --workspace --verbose --features "std docsrs"
1416855e09eSopenharmony_ci
1426855e09eSopenharmony_ci  fmt:
1436855e09eSopenharmony_ci    name: Check formatting
1446855e09eSopenharmony_ci    runs-on: ubuntu-latest
1456855e09eSopenharmony_ci
1466855e09eSopenharmony_ci    steps:
1476855e09eSopenharmony_ci      - name: Checkout sources
1486855e09eSopenharmony_ci        uses: actions/checkout@v2
1496855e09eSopenharmony_ci
1506855e09eSopenharmony_ci      - name: Install rust
1516855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
1526855e09eSopenharmony_ci        with:
1536855e09eSopenharmony_ci          toolchain: stable
1546855e09eSopenharmony_ci          components: rustfmt
1556855e09eSopenharmony_ci          profile: minimal
1566855e09eSopenharmony_ci          override: true
1576855e09eSopenharmony_ci
1586855e09eSopenharmony_ci      - name: cargo fmt -- --check
1596855e09eSopenharmony_ci        continue-on-error: true
1606855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
1616855e09eSopenharmony_ci        with:
1626855e09eSopenharmony_ci          command: fmt
1636855e09eSopenharmony_ci          args: -- --check
1646855e09eSopenharmony_ci
1656855e09eSopenharmony_ci  coverage:
1666855e09eSopenharmony_ci    name: Coverage
1676855e09eSopenharmony_ci    runs-on: ubuntu-latest
1686855e09eSopenharmony_ci
1696855e09eSopenharmony_ci    steps:
1706855e09eSopenharmony_ci      - name: Checkout sources
1716855e09eSopenharmony_ci        uses: actions/checkout@v2
1726855e09eSopenharmony_ci
1736855e09eSopenharmony_ci      - name: Install rust
1746855e09eSopenharmony_ci        uses: actions-rs/toolchain@v1
1756855e09eSopenharmony_ci        with:
1766855e09eSopenharmony_ci          toolchain: stable
1776855e09eSopenharmony_ci          profile: minimal
1786855e09eSopenharmony_ci          override: true
1796855e09eSopenharmony_ci
1806855e09eSopenharmony_ci      - name: Cache
1816855e09eSopenharmony_ci        uses: Swatinem/rust-cache@v1
1826855e09eSopenharmony_ci
1836855e09eSopenharmony_ci      - name: Install cargo-tarpaulin
1846855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
1856855e09eSopenharmony_ci        with:
1866855e09eSopenharmony_ci          command: install
1876855e09eSopenharmony_ci          args: cargo-tarpaulin
1886855e09eSopenharmony_ci
1896855e09eSopenharmony_ci      - name: Run cargo tarpaulin
1906855e09eSopenharmony_ci        uses: actions-rs/cargo@v1
1916855e09eSopenharmony_ci        with:
1926855e09eSopenharmony_ci          command: tarpaulin
1936855e09eSopenharmony_ci          args: --output-dir coverage --out Lcov
1946855e09eSopenharmony_ci      
1956855e09eSopenharmony_ci      - name: Publish to Coveralls
1966855e09eSopenharmony_ci        uses: coverallsapp/github-action@master
1976855e09eSopenharmony_ci        with:
1986855e09eSopenharmony_ci          github-token: ${{ secrets.GITHUB_TOKEN }}
199