File size: 3,844 Bytes
6ae6e49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Copied from https://github.com/rerun-io/rerun_template
on: [push, pull_request]

name: Rust

env:
  RUSTFLAGS: -D warnings
  RUSTDOCFLAGS: -D warnings

jobs:
  rust-check:
    name: Rust
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4

      - uses: actions-rs/toolchain@v1
        with:
          profile: default
          toolchain: 1.76.0
          override: true

      - name: Install packages (Linux)
        if: runner.os == 'Linux' && false # TODO: enable if eframe is part of the project, otherwise remove
        uses: awalsh128/[email protected]
        with:
          # some deps used by eframe, if that is part of the project
          packages: libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev # libgtk-3-dev is used by rfd
          version: 1.0
          execute_install_scripts: true

      - name: Set up cargo cache
        uses: Swatinem/rust-cache@v2

      - name: Rustfmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

      - name: Install cargo-cranky
        uses: baptiste0928/cargo-install@v1
        with:
          crate: cargo-cranky

      - name: check --all-features
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --all-features --all-targets

      - name: check default features
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --all-targets

      - name: check --no-default-features
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --no-default-features --lib --all-targets

      - name: Test doc-tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --doc --all-features

      - name: cargo doc --lib
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --lib --no-deps --all-features

      - name: cargo doc --document-private-items
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --document-private-items --no-deps --all-features

      - name: Build tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features --no-run

      - name: Run test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

      - name: Cranky
        uses: actions-rs/cargo@v1
        with:
          command: cranky
          args: --all-targets --all-features -- -D warnings

  # ---------------------------------------------------------------------------

  check_wasm:
    name: Check wasm32
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: 1.76.0
          target: wasm32-unknown-unknown
          override: true

      - run: sudo apt-get update && sudo apt-get install libgtk-3-dev

      - name: Set up cargo cache
        uses: Swatinem/rust-cache@v2

      - name: Install cargo-cranky
        uses: baptiste0928/cargo-install@v1
        with:
          crate: cargo-cranky

      - name: Check wasm32
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --target wasm32-unknown-unknown

      - name: Cranky wasm32
        env:
          CLIPPY_CONF_DIR: "scripts/clippy_wasm" # Use scripts/clippy_wasm/clippy.toml
        run: cargo cranky --target wasm32-unknown-unknown -- -D warnings

  # ---------------------------------------------------------------------------

  cargo-deny:
    runs-on: ubuntu-22.04
    steps:
    - uses: actions/checkout@v3
    - uses: EmbarkStudios/cargo-deny-action@v1
      with:
        rust-version: "1.76.0"
        log-level: warn
        command: check