File: ci.yml

package info (click to toggle)
rust-typed-builder 0.23.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 216 kB
  • sloc: sh: 6; makefile: 4
file content (178 lines) | stat: -rw-r--r-- 4,997 bytes parent folder | download
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
name: CI
on:
  pull_request:
  push:
    branches: [master]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write
  checks: write

jobs:
  ci:
    name: CI
    needs: [test, clippy, docs]
    runs-on: ubuntu-latest
    steps:
      - name: Done
        run: exit 0
  test:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        rust: [1.90.0, nightly]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v5
      - name: Install rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          override: true
      - name: Ready cache
        if: matrix.os == 'ubuntu-latest'
        run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
      - name: Cache cargo
        uses: actions/cache@v4
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Test typed-builder
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-targets
  nostd-build:
    name: nostd Build
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        rust: [nightly]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v5
      - name: Install rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          override: true
          target: aarch64-unknown-none 
      - name: Ready cache
        if: matrix.os == 'ubuntu-latest'
        run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
      - name: Cache cargo
        uses: actions/cache@v4
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Add rustup components
        run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
      - name: Build with nostd
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: -Zbuild-std=core --target aarch64-unknown-none 
  fmt:
   name: Rustfmt
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v5
     - uses: actions-rs/toolchain@v1
       with:
         profile: minimal
         toolchain: nightly
         override: true
         components: rustfmt
     - name: Run fmt --all -- --check
       uses: actions-rs/cargo@v1
       with:
         command: fmt
         args: --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true
          components: clippy
      - name: Cache cargo
        uses: actions/cache@v4
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run clippy --all-targets --
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-targets --
  docs:
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true
      - name: Cache cargo
        uses: actions/cache@v4
        id: cache
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Run doc tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --doc
      - name: Check typed-builder docs
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --no-deps
  docs-ghpages:
    name: Update Docs in GitHub Pages
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master'
    steps:
      - uses: actions/checkout@v5
      - name: Build docs
        env:
          GITHUB_REPO: ${{ github.repository }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |-
          cargo doc --verbose &&
          echo "<meta http-equiv=refresh content=0;url=typed_builder/index.html>" > target/doc/index.html
      - name: Add read permissions
        run: |-
          chmod --recursive +r target/doc
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v4
        with:
          path: target/doc
  deploy-ghpages:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: docs-ghpages
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4