Skip to content

Commit 8443cf0

Browse files
authored
ci : use github ubuntu-22.04-arm runner instead of qemu (#3815)
* ci : use github ubuntu-22.04-arm runner instead of qemu This commit updates the ubuntu-22-gcc-arm64 job to use a arm github runner instead of QEMU. The motivation for this is that we get intermittent failure specifically related to QEMU. For example: ```console Segmentation fault (core dumped) qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (core dumped) dpkg: error processing package libc-bin (--configure): installed libc-bin package post-installation script subprocess returned error exit status 139 Processing triggers for ca-certificates (20240203~22.04.1) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Errors were encountered while processing: libc-bin E: Sub-process /usr/bin/dpkg returned an error code (1) ``` This is an attempt to try to avoid QEMU and hence avoid this issue. * ci : remove QEMU where possible
1 parent afa2ea5 commit 8443cf0

1 file changed

Lines changed: 64 additions & 58 deletions

File tree

.github/workflows/build.yml

Lines changed: 64 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -150,34 +150,21 @@ jobs:
150150
ubuntu-22-arm64:
151151
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
152152
github.event.inputs.run_type == 'full-ci' }}
153-
runs-on: ubuntu-22.04
154-
155-
strategy:
156-
fail-fast: false
157-
matrix:
158-
arch: [linux/arm64]
153+
runs-on: ubuntu-22.04-arm
159154

160155
steps:
161156
- name: Clone
162157
uses: actions/checkout@v6
163158

164-
- name: Set up QEMU
165-
uses: docker/setup-qemu-action@v3
166-
167-
- name: Build ${{ matrix.arch }}
159+
- name: Install dependencies
168160
run: |
169-
docker run --platform ${{ matrix.arch }} --rm \
170-
-v ${{ github.workspace }}:/workspace \
171-
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
172-
set -e
173-
export DEBIAN_FRONTEND=noninteractive
174-
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
175-
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
161+
sudo apt-get update
162+
sudo apt-get install -y build-essential libsdl2-dev cmake git
176163
177-
apt update
178-
apt install -y build-essential libsdl2-dev cmake git
179-
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
180-
cmake --build build --config Release -j $(nproc)'
164+
- name: Build
165+
run: |
166+
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
167+
cmake --build build --config Release -j $(nproc)
181168
182169
ubuntu-22-arm-v7:
183170
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
@@ -305,36 +292,34 @@ jobs:
305292
ubuntu-22-gcc-arm64:
306293
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
307294
github.event.inputs.run_type == 'full-ci' }}
308-
runs-on: ubuntu-22.04
295+
runs-on: ubuntu-22.04-arm
309296

310297
strategy:
311298
fail-fast: false
312299
matrix:
313300
build: [Debug, Release]
314-
arch: [linux/arm64]
315301

316302
steps:
317303
- name: Clone
318304
uses: actions/checkout@v6
319305

320-
- name: Set up QEMU
321-
uses: docker/setup-qemu-action@v3
306+
- name: Install dependencies
307+
run: |
308+
sudo apt-get update
309+
sudo apt-get install -y build-essential cmake libsdl2-dev git
322310
323-
- name: Build ${{ matrix.arch }}
311+
- name: Configure CMake
324312
run: |
325-
docker run --platform ${{ matrix.arch }} --rm \
326-
-v ${{ github.workspace }}:/workspace \
327-
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
328-
set -e
329-
export DEBIAN_FRONTEND=noninteractive
330-
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
331-
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
313+
cmake . \
314+
-DWHISPER_SDL2=ON \
315+
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
316+
-DGGML_NATIVE=OFF \
317+
-DGGML_CPU_ARM_ARCH=armv8-a
332318
333-
apt update
334-
apt install -y build-essential cmake libsdl2-dev git
335-
cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a
336-
make
337-
ctest -L gh --output-on-failure'
319+
- name: Build and Test
320+
run: |
321+
make
322+
ctest -L gh --output-on-failure
338323
339324
ubuntu-22-gcc-arm-v7:
340325
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
@@ -382,7 +367,7 @@ jobs:
382367
#arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
383368
# TODO: arm/v7 disabled due to clang bug
384369
# https://github.com/ggerganov/whisper.cpp/actions/runs/9657764109/job/26637633042?pr=2256#step:4:1990
385-
arch: [linux/amd64, linux/arm64, linux/ppc64le]
370+
arch: [linux/amd64, linux/ppc64le]
386371

387372
steps:
388373
- name: Clone
@@ -407,6 +392,36 @@ jobs:
407392
make
408393
ctest -L gh --output-on-failure'
409394
395+
ubuntu-22-clang-arm64:
396+
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
397+
github.event.inputs.run_type == 'full-ci' }}
398+
runs-on: ubuntu-22.04-arm
399+
400+
strategy:
401+
fail-fast: false
402+
matrix:
403+
build: [Debug, Release]
404+
405+
steps:
406+
- name: Clone
407+
uses: actions/checkout@v6
408+
409+
- name: Install dependencies
410+
run: |
411+
sudo apt-get update
412+
sudo apt-get install -y clang build-essential cmake libsdl2-dev git
413+
414+
- name: Build and Test
415+
run: |
416+
cmake . -DWHISPER_SDL2=ON \
417+
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
418+
-DCMAKE_CXX_COMPILER=clang++ \
419+
-DCMAKE_C_COMPILER=clang \
420+
-DGGML_NATIVE=OFF \
421+
-DGGML_CPU_ARM_ARCH=armv8-a
422+
make
423+
ctest -L gh --output-on-failure
424+
410425
ubuntu-22-gcc-sanitized:
411426
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||
412427
github.event.inputs.run_type == 'full-ci' }}
@@ -416,32 +431,23 @@ jobs:
416431
fail-fast: false
417432
matrix:
418433
sanitizer: [ADDRESS, THREAD, UNDEFINED]
419-
arch: [linux/amd64]
420434

421435
steps:
422436
- name: Clone
423437
uses: actions/checkout@v6
424438

425-
- name: Set up QEMU
426-
uses: docker/setup-qemu-action@v3
427-
428-
- name: Build ${{ matrix.arch }}
439+
- name: Install dependencies
429440
run: |
430-
docker run --platform ${{ matrix.arch }} --rm \
431-
-v ${{ github.workspace }}:/workspace \
432-
-w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
433-
set -e
434-
export DEBIAN_FRONTEND=noninteractive
435-
sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
436-
sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list
441+
sudo apt-get update
442+
sudo apt-get install -y build-essential cmake git
437443
438-
apt update
439-
apt install -y build-essential cmake git
440-
cmake . -DCMAKE_BUILD_TYPE=Debug \
441-
-DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON \
442-
-DGGML_OPENMP=OFF
443-
make
444-
ctest -L gh --output-on-failure'
444+
- name: Build and Test
445+
run: |
446+
cmake . -DCMAKE_BUILD_TYPE=Debug \
447+
-DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON \
448+
-DGGML_OPENMP=OFF
449+
make
450+
ctest -L gh --output-on-failure
445451
446452
ubuntu-22-cmake-sycl:
447453
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||

0 commit comments

Comments
 (0)