-
Notifications
You must be signed in to change notification settings - Fork 261
131 lines (125 loc) · 4.12 KB
/
build.yml
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
name: Build CI
on: [push, pull_request]
env:
rust-toolchain: nightly
jobs:
clippy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
components: rust-src, clippy, rustfmt
- name: Clippy for the default target
run: make clippy
- name: Clippy for x86_64
run: make clippy ARCH=x86_64
- name: Clippy for riscv64
run: make clippy ARCH=riscv64
- name: Clippy for aarch64
run: make clippy ARCH=aarch64
- name: Check code format
run: cargo fmt --all -- --check
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64, riscv64, aarch64]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
components: rust-src
- uses: actions-rs/[email protected]
with:
crate: cargo-binutils
version: latest
use-tool-cache: true
- name: Build helloworld
run: make ARCH=${{ matrix.arch }} A=apps/helloworld
- name: Build memtest
run: make ARCH=${{ matrix.arch }} A=apps/memtest
- name: Build exception
run: make ARCH=${{ matrix.arch }} A=apps/exception
- name: Build display
run: make ARCH=${{ matrix.arch }} A=apps/display
- name: Build task/yield
run: make ARCH=${{ matrix.arch }} A=apps/task/yield
- name: Build task/parallel
run: make ARCH=${{ matrix.arch }} A=apps/task/parallel
- name: Build task/sleep
run: make ARCH=${{ matrix.arch }} A=apps/task/sleep
- name: Build task/priority
run: make ARCH=${{ matrix.arch }} A=apps/task/priority
- name: Build fs/shell
run: make ARCH=${{ matrix.arch }} A=apps/fs/shell
- name: Build net/echoserver
run: make ARCH=${{ matrix.arch }} A=apps/net/echoserver
- name: Build net/httpclient
run: make ARCH=${{ matrix.arch }} A=apps/net/httpclient
- name: Build net/httpserver
run: make ARCH=${{ matrix.arch }} A=apps/net/httpserver
- name: Build net/udpserver
run: make ARCH=${{ matrix.arch }} A=apps/net/udpserver
- uses: ./.github/workflows/actions/setup-musl
with:
arch: ${{ matrix.arch }}
- name: Build c/helloworld
run: make ARCH=${{ matrix.arch }} A=apps/c/helloworld
- name: Build c/memtest
run: make ARCH=${{ matrix.arch }} A=apps/c/memtest
- name: Build c/sqlite3
run: make ARCH=${{ matrix.arch }} A=apps/c/sqlite3
- name: Build c/httpclient
run: make ARCH=${{ matrix.arch }} A=apps/c/httpclient
- name: Build c/httpserver
run: make ARCH=${{ matrix.arch }} A=apps/c/httpserver
- name: Build c/udpserver
run: make ARCH=${{ matrix.arch }} A=apps/c/udpserver
- name: Build c/iperf
run: make ARCH=${{ matrix.arch }} A=apps/c/iperf
build-apps-for-std:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
- name: Build helloworld
run: cargo build -p arceos-helloworld
- name: Build memtest
run: cargo build -p arceos-memtest
- name: Build exception
run: cargo build -p arceos-exception
- name: Build task/yield
run: cargo build -p arceos-yield
- name: Build task/parallel
run: cargo build -p arceos-parallel
- name: Build task/sleep
run: cargo build -p arceos-sleep
- name: Build task/priority
run: cargo build -p arceos-priority
- name: Build fs/shell
run: cargo build -p arceos-shell
- name: Build net/echoserver
run: cargo build -p arceos-echoserver
- name: Build net/httpclient
run: cargo build -p arceos-httpclient
- name: Build net/httpserver
run: cargo build -p arceos-httpserver
- name: Build net/udpserver
run: cargo build -p arceos-udpserver