-
Notifications
You must be signed in to change notification settings - Fork 146
142 lines (137 loc) · 5.71 KB
/
ci.yml
File metadata and controls
142 lines (137 loc) · 5.71 KB
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
name: CI
on:
push:
pull_request:
workflow_dispatch:
workflow_call:
inputs:
version:
description: Version Number
type: string
required: false
jobs:
Lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format
- name: Run clang-format
run: |
clang-format --dry-run --Werror src/*.c include/*.h
Build:
name: Build
runs-on: ubuntu-latest
env:
cross_dir: /opt/x-tools
strategy:
matrix:
include:
- name: arm64
triplet: aarch64-unknown-linux-musl
sha256: 76f0d71893f3864e91ad09feff71a719cdf94cccd4f14cc25d7deed395968b5b
- name: arm32
triplet: arm-unknown-linux-musleabi
sha256: 1242b2a965480415ce90a710ab7600730a8de114f5bc5452ed7382e64839b5de
- name: arm32hf
triplet: arm-unknown-linux-musleabihf
sha256: 6e6f20cebd75ca5319c5dfb00fdd50a4ceb22af2df9073a75cafbdd3204eebad
- name: arm32v7
triplet: armv7-unknown-linux-musleabi
sha256: 158d8fd651d8c501d8dea4bb82a152208732cb10a5f72e7e8e4ce9f551e8d165
- name: arm32v7hf
triplet: armv7-unknown-linux-musleabihf
sha256: 7643420285f038545997d3234bee9c854900fa9060388769442ed20a72aeac23
- name: i586
triplet: i586-unknown-linux-musl
sha256: 37d494c1fe60ac07ab8b83871a77a63ab885e5b06cceaa0777537db7767c464f
- name: i686
triplet: i686-unknown-linux-musl
sha256: 0b1baac45c94b499791b65bbc63d0486aa557c6576142eddce3dee55e2fd022b
- name: loong64
triplet: loongarch64-unknown-linux-musl
sha256: 2b8cddf9e082f8c8527a459520037ebcedae7262950e429d96184622ae74b8cf
- name: m68k
triplet: m68k-unknown-linux-musl
sha256: 72f6427a1c97c1bd151ebcbd98eab6c39d46090bb89ff2e40c639be012dd2855
- name: microblazeel
triplet: microblazeel-xilinx-linux-musl
sha256: ce892fe2c799bfd963de06632f5d02ea3e78d8abf2bfd361d673d4ce28fb6f69
- name: microblaze
triplet: microblaze-xilinx-linux-musl
sha256: 03852d0ba1a5d6cd3efe1ee5b1cb7506fcc2b5b3026966fe1d7d916d621f5b4b
- name: mips64el
triplet: mips64el-unknown-linux-musl
sha256: 01f821f8c476ec6e9618c4272a2e7e6fa3d664491f5ede4296d33af2e423a5ca
- name: mips64
triplet: mips64-unknown-linux-musl
sha256: 9a99beb2e08584373451321d4580ff9c6fe3e1899daab511d2822d547e1a78be
- name: mips32el
triplet: mipsel-unknown-linux-musl
sha256: 2698fea97c0c8bfdbcfa5db3fead20f779411ab1222e571b966a823a9f27356d
- name: mips32elsf
triplet: mipsel-unknown-linux-muslsf
sha256: 36d8b864b3f6d27558d3f19695a4a39b79a873086edc60bebf733777df2b8359
- name: mips32
triplet: mips-unknown-linux-musl
sha256: b74b51d0f61a837f235ec2cecc7b112c1ed53ad8046c88b907a63b4fdf93d4f3
- name: mips32sf
triplet: mips-unknown-linux-muslsf
sha256: cc87dcaeed29f970bddb4b572c40a4074b9ac3997ba254725e8a89e05485538a
- name: powerpc64
triplet: powerpc64-unknown-linux-musl
sha256: d3cce7238b4e2bfaf0ae5a47d4390b84616ad8ae848a07809fe293f436444ee8
- name: powerpc
triplet: powerpc-unknown-linux-musl
sha256: aa50fe4bd9de4e1616400086ec5a29eded5bfbbb9b974b44e990ede3554ffc9e
- name: riscv32
triplet: riscv32-unknown-linux-musl
sha256: ebac6326d6a0cd77c03a9813e6cf63ce70d3d46381149a82cafb60563d9c4732
- name: riscv64
triplet: riscv64-unknown-linux-musl
sha256: 552361f25eaef471d88032eab89e7c1642ddfee466556f1f2e0f6eb68453b7a1
- name: s390x
triplet: s390x-ibm-linux-musl
sha256: d48e0465117ecdba93db01feffd7133bdc975b5dd859e388a8bf7937a9b68d36
- name: sh4
triplet: sh4-multilib-linux-musl
sha256: 6d1cb6c64e71773c4fe68b4a5d774e596ac3d58813b5c1365529b34be08ff309
- name: x86_64
triplet: x86_64-unknown-linux-musl
sha256: a896bad67a4dae7cd7baece62d537fda07f8c74e65fee1b450a691b83e151a9c
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up toolchain for ${{ matrix.name }}
run: |
CROSS_TOOLCHAIN_URL="https://github.com/cross-tools/musl-cross/releases/download/20250520/${{ matrix.triplet }}.tar.xz"
sudo mkdir -m 777 -p "${{ env.cross_dir }}"
env \
CROSS_TRIPLET="${{ matrix.triplet }}" \
CROSS_TOOLCHAIN_URL="$CROSS_TOOLCHAIN_URL" \
CROSS_TOOLCHAIN_SHA256="${{ matrix.sha256 }}" \
CROSS_DIR="${{ env.cross_dir }}" \
.github/workflows/scripts/cross-setup.sh
- name: Build for ${{ matrix.name }}
run: |
CROSS_PREFIX="${{ env.cross_dir }}/${{ matrix.triplet }}/bin/${{ matrix.triplet }}-"
VERSION="${{ inputs.version }}"
if [ -n "$VERSION" ]; then
make -j$(nproc) CFLAGS="-Werror" STATIC=1 CROSS_PREFIX="$CROSS_PREFIX" VERSION="$VERSION"
else
make -j$(nproc) CFLAGS="-Werror" STATIC=1 CROSS_PREFIX="$CROSS_PREFIX"
fi
- name: Upload ${{ matrix.name }}
uses: actions/upload-artifact@v4
with:
name: fakehttp-linux-${{ matrix.name }}
path: build/fakehttp
if-no-files-found: error