1eba8b6baSopenharmony_ciname: CI
2eba8b6baSopenharmony_ci
3eba8b6baSopenharmony_cion:
4eba8b6baSopenharmony_ci  push:
5eba8b6baSopenharmony_ci    branches:
6eba8b6baSopenharmony_ci      - main
7eba8b6baSopenharmony_ci  pull_request:
8eba8b6baSopenharmony_ci
9eba8b6baSopenharmony_cijobs:
10eba8b6baSopenharmony_ci  check:
11eba8b6baSopenharmony_ci    name: Check
12eba8b6baSopenharmony_ci    runs-on: ubuntu-latest
13eba8b6baSopenharmony_ci    strategy:
14eba8b6baSopenharmony_ci      matrix:
15eba8b6baSopenharmony_ci        rust: [stable, nightly, 1.48]
16eba8b6baSopenharmony_ci
17eba8b6baSopenharmony_ci    env:
18eba8b6baSopenharmony_ci      RUSTFLAGS: -D warnings
19eba8b6baSopenharmony_ci    steps:
20eba8b6baSopenharmony_ci    - uses: actions/checkout@v3
21eba8b6baSopenharmony_ci    - run: |
22eba8b6baSopenharmony_ci        rustup set profile minimal
23eba8b6baSopenharmony_ci        rustup install ${{ matrix.rust }}
24eba8b6baSopenharmony_ci        rustup default ${{ matrix.rust }}
25eba8b6baSopenharmony_ci
26eba8b6baSopenharmony_ci        cargo check --features "netlink"
27eba8b6baSopenharmony_ci        cargo check --no-default-features --features "std netlink"
28eba8b6baSopenharmony_ci        cargo check --no-default-features --features "no_std netlink"
29eba8b6baSopenharmony_ci        cargo check --no-default-features --features "no_std general errno"
30eba8b6baSopenharmony_ci
31eba8b6baSopenharmony_ci  test:
32eba8b6baSopenharmony_ci    name: Test
33eba8b6baSopenharmony_ci    runs-on: ubuntu-latest
34eba8b6baSopenharmony_ci    env:
35eba8b6baSopenharmony_ci      # -D warnings is commented out in our install-rust action; re-add it here.
36eba8b6baSopenharmony_ci      RUSTFLAGS: -D warnings
37eba8b6baSopenharmony_ci    steps:
38eba8b6baSopenharmony_ci    - uses: actions/checkout@v3
39eba8b6baSopenharmony_ci      with:
40eba8b6baSopenharmony_ci        submodules: true
41eba8b6baSopenharmony_ci    - uses: ./.github/actions/install-rust
42eba8b6baSopenharmony_ci      with:
43eba8b6baSopenharmony_ci        toolchain: stable
44eba8b6baSopenharmony_ci
45eba8b6baSopenharmony_ci    - run: >
46eba8b6baSopenharmony_ci        rustup target add
47eba8b6baSopenharmony_ci        x86_64-unknown-linux-musl
48eba8b6baSopenharmony_ci        x86_64-unknown-linux-gnux32
49eba8b6baSopenharmony_ci        i686-unknown-linux-gnu
50eba8b6baSopenharmony_ci        i686-unknown-linux-musl
51eba8b6baSopenharmony_ci        riscv64gc-unknown-linux-gnu
52eba8b6baSopenharmony_ci        aarch64-unknown-linux-gnu
53eba8b6baSopenharmony_ci        aarch64-unknown-linux-musl
54eba8b6baSopenharmony_ci        powerpc64le-unknown-linux-gnu
55eba8b6baSopenharmony_ci        armv5te-unknown-linux-gnueabi
56eba8b6baSopenharmony_ci        mipsel-unknown-linux-gnu
57eba8b6baSopenharmony_ci        mips64el-unknown-linux-gnuabi64
58eba8b6baSopenharmony_ci    - run: cargo check --tests -vv
59eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=x86_64-unknown-linux-musl
60eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=x86_64-unknown-linux-gnux32
61eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=i686-unknown-linux-gnu
62eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=i686-unknown-linux-musl
63eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=riscv64gc-unknown-linux-gnu
64eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=aarch64-unknown-linux-gnu
65eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=aarch64-unknown-linux-musl
66eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=powerpc64le-unknown-linux-gnu
67eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=armv5te-unknown-linux-gnueabi
68eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=mipsel-unknown-linux-gnu
69eba8b6baSopenharmony_ci    - run: cargo check --tests -vv --target=mips64el-unknown-linux-gnuabi64
70eba8b6baSopenharmony_ci
71eba8b6baSopenharmony_ci  gen:
72eba8b6baSopenharmony_ci    name: Update generated files
73eba8b6baSopenharmony_ci    runs-on: ubuntu-latest
74eba8b6baSopenharmony_ci    steps:
75eba8b6baSopenharmony_ci    - uses: actions/checkout@v3
76eba8b6baSopenharmony_ci    - run: |
77eba8b6baSopenharmony_ci        sudo apt install libclang-dev
78eba8b6baSopenharmony_ci        cd gen && cargo run --release
79eba8b6baSopenharmony_ci        git diff --exit-code
80