qemu docker ci (#23)

This commit is contained in:
nihui 2024-02-22 22:44:33 +08:00 committed by GitHub
parent 4975a18630
commit 1f41ad0e54
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 77 deletions

View File

@ -1,77 +0,0 @@
name: ci-qemu
on:
push:
branches: [master]
paths:
- '.github/workflows/ci-qemu.yml'
- '*.h'
- '*.c'
pull_request:
branches: [master]
paths:
- '.github/workflows/ci-qemu.yml'
- '*.h'
- '*.c'
concurrency:
group: ci-qemu-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: cross-toolchain
run: |
sudo apt-get update
sudo apt-get install qemu-user-static \
gcc-arm-linux-gnueabi \
gcc-aarch64-linux-gnu \
gcc-mipsel-linux-gnu \
gcc-mips64el-linux-gnuabi64 \
gcc-powerpc-linux-gnu \
gcc-powerpc64le-linux-gnu \
gcc-riscv64-linux-gnu
- name: build-test-arm-thumb
run: |
arm-linux-gnueabi-gcc -march=armv7-a -mthumb main.c -o ruapu-arm-thumb
qemu-arm-static -L /usr/arm-linux-gnueabi ./ruapu-arm-thumb
- name: build-test-arm
run: |
arm-linux-gnueabi-gcc -march=armv7-a -marm main.c -o ruapu-arm
qemu-arm-static -L /usr/arm-linux-gnueabi ./ruapu-arm
- name: build-test-aarch64
run: |
aarch64-linux-gnu-gcc -march=armv8-a main.c -o ruapu-aarch64
qemu-aarch64-static -L /usr/aarch64-linux-gnu ./ruapu-aarch64
- name: build-test-mipsel
run: |
mipsel-linux-gnu-gcc -march=mips32 main.c -o ruapu-mipsel
qemu-mipsel-static -L /usr/mipsel-linux-gnu ./ruapu-mipsel
- name: build-test-mips64el
run: |
mips64el-linux-gnuabi64-gcc -march=mips64 main.c -o ruapu-mips64el
qemu-mips64el-static -L /usr/mips64el-linux-gnuabi64 ./ruapu-mips64el
- name: build-test-powerpc
run: |
powerpc-linux-gnu-gcc -mcpu=powerpc main.c -o ruapu-powerpc
qemu-ppc-static -L /usr/powerpc-linux-gnu ./ruapu-powerpc
- name: build-test-powerpc64le
run: |
powerpc64le-linux-gnu-gcc -mcpu=powerpc64le main.c -o ruapu-powerpc64le
qemu-ppc64le-static -L /usr/powerpc64le-linux-gnu ./ruapu-powerpc64le
- name: build-test-riscv64
run: |
riscv64-linux-gnu-gcc -march=rv64gc main.c -o ruapu-riscv64
qemu-riscv64-static -L /usr/riscv64-linux-gnu ./ruapu-riscv64

View File

@ -64,3 +64,20 @@ jobs:
run: |
gcc main.c -o ruapu-mingw.exe
./ruapu-mingw.exe
qemu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: [ arm, arm64, mips64le, ppc64le, riscv64, s390x ]
steps:
- uses: actions/checkout@v4
- name: setup-qemu
uses: docker/setup-qemu-action@v3
with:
platforms: linux/${{ matrix.arch }}
- name: build-test
run: |
docker run -u root --rm -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} --platform linux/${{ matrix.arch }} debian:unstable-slim \
/bin/bash -c "apt update && apt install -y build-essential && gcc main.c -o ruapu && ./ruapu"