|
| 1 | +name: CI |
| 2 | + |
| 3 | +on: |
| 4 | + push: |
| 5 | + pull_request: |
| 6 | + workflow_dispatch: |
| 7 | + workflow_call: |
| 8 | + |
| 9 | +jobs: |
| 10 | + Lint: |
| 11 | + name: Lint |
| 12 | + runs-on: ubuntu-latest |
| 13 | + steps: |
| 14 | + - name: Checkout |
| 15 | + uses: actions/checkout@v4 |
| 16 | + with: |
| 17 | + fetch-depth: 1 |
| 18 | + - name: Install clang-format |
| 19 | + run: | |
| 20 | + sudo apt-get update |
| 21 | + sudo apt-get install -y clang-format |
| 22 | + - name: Run clang-format |
| 23 | + run: | |
| 24 | + clang-format --dry-run --Werror src/*.c |
| 25 | +
|
| 26 | + Build: |
| 27 | + name: Build |
| 28 | + runs-on: ubuntu-latest |
| 29 | + env: |
| 30 | + cross_dir: /opt/x-tools |
| 31 | + strategy: |
| 32 | + matrix: |
| 33 | + include: |
| 34 | + - name: arm64 |
| 35 | + triplet: aarch64-unknown-linux-musl |
| 36 | + sha256: 76f0d71893f3864e91ad09feff71a719cdf94cccd4f14cc25d7deed395968b5b |
| 37 | + - name: arm32 |
| 38 | + triplet: arm-unknown-linux-musleabi |
| 39 | + sha256: 1242b2a965480415ce90a710ab7600730a8de114f5bc5452ed7382e64839b5de |
| 40 | + - name: arm32hf |
| 41 | + triplet: arm-unknown-linux-musleabihf |
| 42 | + sha256: 6e6f20cebd75ca5319c5dfb00fdd50a4ceb22af2df9073a75cafbdd3204eebad |
| 43 | + - name: arm32v7 |
| 44 | + triplet: armv7-unknown-linux-musleabi |
| 45 | + sha256: 158d8fd651d8c501d8dea4bb82a152208732cb10a5f72e7e8e4ce9f551e8d165 |
| 46 | + - name: arm32v7hf |
| 47 | + triplet: armv7-unknown-linux-musleabihf |
| 48 | + sha256: 7643420285f038545997d3234bee9c854900fa9060388769442ed20a72aeac23 |
| 49 | + - name: i586 |
| 50 | + triplet: i586-unknown-linux-musl |
| 51 | + sha256: 37d494c1fe60ac07ab8b83871a77a63ab885e5b06cceaa0777537db7767c464f |
| 52 | + - name: i686 |
| 53 | + triplet: i686-unknown-linux-musl |
| 54 | + sha256: 0b1baac45c94b499791b65bbc63d0486aa557c6576142eddce3dee55e2fd022b |
| 55 | + - name: loong64 |
| 56 | + triplet: loongarch64-unknown-linux-musl |
| 57 | + sha256: 2b8cddf9e082f8c8527a459520037ebcedae7262950e429d96184622ae74b8cf |
| 58 | + - name: m68k |
| 59 | + triplet: m68k-unknown-linux-musl |
| 60 | + sha256: 72f6427a1c97c1bd151ebcbd98eab6c39d46090bb89ff2e40c639be012dd2855 |
| 61 | + - name: microblazeel |
| 62 | + triplet: microblazeel-xilinx-linux-musl |
| 63 | + sha256: ce892fe2c799bfd963de06632f5d02ea3e78d8abf2bfd361d673d4ce28fb6f69 |
| 64 | + - name: microblaze |
| 65 | + triplet: microblaze-xilinx-linux-musl |
| 66 | + sha256: 03852d0ba1a5d6cd3efe1ee5b1cb7506fcc2b5b3026966fe1d7d916d621f5b4b |
| 67 | + - name: mips64el |
| 68 | + triplet: mips64el-unknown-linux-musl |
| 69 | + sha256: 01f821f8c476ec6e9618c4272a2e7e6fa3d664491f5ede4296d33af2e423a5ca |
| 70 | + - name: mips64 |
| 71 | + triplet: mips64-unknown-linux-musl |
| 72 | + sha256: 9a99beb2e08584373451321d4580ff9c6fe3e1899daab511d2822d547e1a78be |
| 73 | + - name: mips32el |
| 74 | + triplet: mipsel-unknown-linux-musl |
| 75 | + sha256: 2698fea97c0c8bfdbcfa5db3fead20f779411ab1222e571b966a823a9f27356d |
| 76 | + - name: mips32elsf |
| 77 | + triplet: mipsel-unknown-linux-muslsf |
| 78 | + sha256: 36d8b864b3f6d27558d3f19695a4a39b79a873086edc60bebf733777df2b8359 |
| 79 | + - name: mips32 |
| 80 | + triplet: mips-unknown-linux-musl |
| 81 | + sha256: b74b51d0f61a837f235ec2cecc7b112c1ed53ad8046c88b907a63b4fdf93d4f3 |
| 82 | + - name: mips32sf |
| 83 | + triplet: mips-unknown-linux-muslsf |
| 84 | + sha256: cc87dcaeed29f970bddb4b572c40a4074b9ac3997ba254725e8a89e05485538a |
| 85 | + - name: powerpc64 |
| 86 | + triplet: powerpc64-unknown-linux-musl |
| 87 | + sha256: d3cce7238b4e2bfaf0ae5a47d4390b84616ad8ae848a07809fe293f436444ee8 |
| 88 | + - name: powerpc |
| 89 | + triplet: powerpc-unknown-linux-musl |
| 90 | + sha256: aa50fe4bd9de4e1616400086ec5a29eded5bfbbb9b974b44e990ede3554ffc9e |
| 91 | + - name: riscv32 |
| 92 | + triplet: riscv32-unknown-linux-musl |
| 93 | + sha256: ebac6326d6a0cd77c03a9813e6cf63ce70d3d46381149a82cafb60563d9c4732 |
| 94 | + - name: riscv64 |
| 95 | + triplet: riscv64-unknown-linux-musl |
| 96 | + sha256: 552361f25eaef471d88032eab89e7c1642ddfee466556f1f2e0f6eb68453b7a1 |
| 97 | + - name: s390x |
| 98 | + triplet: s390x-ibm-linux-musl |
| 99 | + sha256: d48e0465117ecdba93db01feffd7133bdc975b5dd859e388a8bf7937a9b68d36 |
| 100 | + - name: sh4 |
| 101 | + triplet: sh4-multilib-linux-musl |
| 102 | + sha256: 6d1cb6c64e71773c4fe68b4a5d774e596ac3d58813b5c1365529b34be08ff309 |
| 103 | + - name: x86_64 |
| 104 | + triplet: x86_64-unknown-linux-musl |
| 105 | + sha256: a896bad67a4dae7cd7baece62d537fda07f8c74e65fee1b450a691b83e151a9c |
| 106 | + steps: |
| 107 | + - name: Checkout |
| 108 | + uses: actions/checkout@v4 |
| 109 | + with: |
| 110 | + fetch-depth: 1 |
| 111 | + - name: Set up toolchain for ${{ matrix.name }} |
| 112 | + run: | |
| 113 | + CROSS_TOOLCHAIN_URL="https://github.com/cross-tools/musl-cross/releases/download/20250520/${{ matrix.triplet }}.tar.xz" |
| 114 | + PKG_CONFIG_PATH="${{ env.cross_dir }}/${{ matrix.triplet }}/${{ matrix.triplet }}/sysroot/usr/lib/pkgconfig" |
| 115 | +
|
| 116 | + sudo mkdir -m 777 -p "${{ env.cross_dir }}" |
| 117 | + env \ |
| 118 | + CROSS_TRIPLET="${{ matrix.triplet }}" \ |
| 119 | + CROSS_TOOLCHAIN_URL="$CROSS_TOOLCHAIN_URL" \ |
| 120 | + CROSS_TOOLCHAIN_SHA256="${{ matrix.sha256 }}" \ |
| 121 | + CROSS_DIR="${{ env.cross_dir }}" \ |
| 122 | + PKG_CONFIG_PATH="$PKG_CONFIG_PATH" \ |
| 123 | + .github/workflows/scripts/cross-setup.sh |
| 124 | + - name: Build for ${{ matrix.name }} |
| 125 | + run: | |
| 126 | + CROSS_PREFIX="${{ env.cross_dir }}/${{ matrix.triplet }}/bin/${{ matrix.triplet }}-" |
| 127 | + make STATIC=1 CROSS_PREFIX="$CROSS_PREFIX" |
| 128 | + - name: Upload ${{ matrix.name }} |
| 129 | + uses: actions/upload-artifact@v4 |
| 130 | + with: |
| 131 | + name: fakehttp-linux-${{ matrix.name }} |
| 132 | + path: build |
| 133 | + if-no-files-found: error |
0 commit comments