From ba296ec66011f1cc0fe86c4101fb264e2cb9f3da Mon Sep 17 00:00:00 2001 From: Joshua Sing Date: Wed, 8 Nov 2023 18:07:34 +1100 Subject: ci: shrink and improve Linux workflows Add a new `linux` workflow that replaces cross_test, linux_ci, linux_ci_asan, and linux_ci_asan_noasm. --- .github/workflows/linux.yml | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/linux.yml (limited to '.github/workflows/linux.yml') diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..f9ec4da --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,62 @@ +# GitHub Actions workflow to run tests on Linux. +name: "Linux" + +on: + push: {} + pull_request: {} + schedule: + - cron: "0 0 * * *" # At 00:00 daily. + +jobs: + # Test against all supported architectures. + test: + name: "${{ matrix.os }}/${{ matrix.arch }} (${{ matrix.compiler }})" + runs-on: "${{ matrix.os }}" + permissions: + contents: read + strategy: + fail-fast: false + matrix: + os: ["ubuntu-20.04", "ubuntu-22.04"] + arch: ["native", "arm32", "arm64", "mingw32", "mingw64", "mips32", "mips64"] + compiler: ["gcc"] + include: + - os: "ubuntu-20.04" + arch: "native" + compiler: "clang" + - os: "ubuntu-22.04" + arch: "native" + compiler: "clang" + steps: + - name: "Checkout repository" + uses: actions/checkout@v4 + + - name: "Run tests" + run: ./scripts/test + env: + ARCH: "${{ matrix.arch }}" + CC: "${{ matrix.compiler }}" + + # Test ASAN with and without ASM enabled. + test-asan: + name: "ASAN (${{ matrix.asm == 'ON' && 'asm' || 'no-asm' }})" + runs-on: "ubuntu-latest" + permissions: + contents: read + strategy: + fail-fast: false + matrix: + asm: [ON, OFF] + steps: + - name: "Checkout repository" + uses: actions/checkout@v4 + + - name: "Run tests" + run: ./scripts/test + env: + ARCH: "native" + CC: "clang" + CFLAGS: "-ggdb -fsanitize=address" + LDFLAGS: "-fsanitize=address" + ENABLE_ASM: "${{ matrix.asm }}" + CTEST_OUTPUT_ON_FAILURE: 1 -- cgit v1.2.3-55-g6feb