Skip to content

Commit db91b2f

Browse files
committed
ci : extract linux jobs into build-linux.yml
1 parent baf4456 commit db91b2f

2 files changed

Lines changed: 113 additions & 77 deletions

File tree

.github/workflows/build-linux.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: CI (linux)
2+
3+
on:
4+
workflow_dispatch: # allows manual triggering
5+
push:
6+
branches:
7+
- master
8+
paths: ['.github/workflows/build-linux.yml',
9+
'**/CMakeLists.txt',
10+
'**/Makefile',
11+
'**/*.mk',
12+
'**/*.cmake',
13+
'**/*.in',
14+
'**/*.h',
15+
'**/*.hpp',
16+
'**/*.c',
17+
'**/*.cpp',
18+
'**/*.cu',
19+
'**/*.cuh',
20+
'**/*.cl']
21+
22+
pull_request:
23+
types: [opened, synchronize, reopened]
24+
paths-ignore:
25+
- 'bindings/ruby/**' # handled by bindings-ruby.yml
26+
- 'bindings/go/**' # handled by bindings-go.yml
27+
- 'examples/addon.node/**' # handled by examples.yml
28+
29+
concurrency:
30+
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
31+
cancel-in-progress: true
32+
33+
env:
34+
ubuntu_image: "ubuntu:22.04"
35+
36+
jobs:
37+
ubuntu-22:
38+
runs-on: ubuntu-22.04
39+
40+
strategy:
41+
fail-fast: false
42+
matrix:
43+
arch: [linux/amd64, linux/ppc64le]
44+
45+
steps:
46+
- name: Clone
47+
uses: actions/checkout@v6
48+
49+
- name: Set up QEMU
50+
uses: docker/setup-qemu-action@v3
51+
52+
- name: Build ${{ matrix.arch }}
53+
run: |
54+
docker run --platform ${{ matrix.arch }} --rm \
55+
-v ${{ github.workspace }}:/workspace \
56+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
57+
set -e
58+
export DEBIAN_FRONTEND=noninteractive
59+
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
60+
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
61+
62+
apt update
63+
apt install -y build-essential libsdl2-dev cmake git
64+
cmake -B build
65+
cmake --build build --config Release -j $(nproc)'
66+
67+
ubuntu-22-arm64:
68+
runs-on: ubuntu-22.04-arm
69+
70+
steps:
71+
- name: Clone
72+
uses: actions/checkout@v6
73+
74+
- name: Install dependencies
75+
run: |
76+
sudo apt-get update
77+
sudo apt-get install -y build-essential libsdl2-dev cmake git
78+
79+
- name: Build
80+
run: |
81+
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
82+
cmake --build build --config Release -j $(nproc)
83+
84+
ubuntu-22-arm-v7:
85+
runs-on: ubuntu-22.04
86+
87+
strategy:
88+
fail-fast: false
89+
matrix:
90+
arch: [linux/arm/v7]
91+
92+
steps:
93+
- name: Clone
94+
uses: actions/checkout@v6
95+
96+
- name: Set up QEMU
97+
uses: docker/setup-qemu-action@v3
98+
99+
- name: Build ${{ matrix.arch }}
100+
run: |
101+
docker run --platform ${{ matrix.arch }} --rm \
102+
-v ${{ github.workspace }}:/workspace \
103+
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
104+
set -e
105+
export DEBIAN_FRONTEND=noninteractive
106+
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
107+
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
108+
109+
apt update
110+
apt install -y build-essential libsdl2-dev cmake git
111+
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp
112+
cmake --build build --config Release -j $(nproc)'

.github/workflows/build.yml

Lines changed: 1 addition & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ on:
3434
- 'bindings/go/**' # handled by bindings-go.yml
3535
- 'examples/addon.node/**' # handled by examples.yml
3636
- '.github/workflows/build-sanitize.yml' # handled by build-sanitize.yml
37+
- '.github/workflows/build-linux.yml' # handled by build-linux.yml
3738

3839
concurrency:
3940
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
@@ -44,83 +45,6 @@ env:
4445
ubuntu_image: "ubuntu:22.04"
4546

4647
jobs:
47-
ubuntu-22:
48-
runs-on: ubuntu-22.04
49-
50-
strategy:
51-
fail-fast: false
52-
matrix:
53-
arch: [linux/amd64, linux/ppc64le]
54-
55-
steps:
56-
- name: Clone
57-
uses: actions/checkout@v6
58-
59-
- name: Set up QEMU
60-
uses: docker/setup-qemu-action@v3
61-
62-
- name: Build ${{ matrix.arch }}
63-
run: |
64-
docker run --platform ${{ matrix.arch }} --rm \
65-
-v ${{ github.workspace }}:/workspace \
66-
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
67-
set -e
68-
export DEBIAN_FRONTEND=noninteractive
69-
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
70-
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
71-
72-
apt update
73-
apt install -y build-essential libsdl2-dev cmake git
74-
cmake -B build
75-
cmake --build build --config Release -j $(nproc)'
76-
77-
ubuntu-22-arm64:
78-
runs-on: ubuntu-22.04-arm
79-
80-
steps:
81-
- name: Clone
82-
uses: actions/checkout@v6
83-
84-
- name: Install dependencies
85-
run: |
86-
sudo apt-get update
87-
sudo apt-get install -y build-essential libsdl2-dev cmake git
88-
89-
- name: Build
90-
run: |
91-
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
92-
cmake --build build --config Release -j $(nproc)
93-
94-
ubuntu-22-arm-v7:
95-
runs-on: ubuntu-22.04
96-
97-
strategy:
98-
fail-fast: false
99-
matrix:
100-
arch: [linux/arm/v7]
101-
102-
steps:
103-
- name: Clone
104-
uses: actions/checkout@v6
105-
106-
- name: Set up QEMU
107-
uses: docker/setup-qemu-action@v3
108-
109-
- name: Build ${{ matrix.arch }}
110-
run: |
111-
docker run --platform ${{ matrix.arch }} --rm \
112-
-v ${{ github.workspace }}:/workspace \
113-
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
114-
set -e
115-
export DEBIAN_FRONTEND=noninteractive
116-
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
117-
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
118-
119-
apt update
120-
apt install -y build-essential libsdl2-dev cmake git
121-
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp
122-
cmake --build build --config Release -j $(nproc)'
123-
12448
macOS-latest:
12549
runs-on: macOS-latest
12650

0 commit comments

Comments
 (0)