diff --git a/.github/workflows/cross_test.yml b/.github/workflows/cross_test.yml deleted file mode 100644 index fc742e7d81..0000000000 --- a/.github/workflows/cross_test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: cross_ci - -on: [push, pull_request] - -jobs: - build-other: - strategy: - matrix: - os: [ubuntu-20.04, ubuntu-22.04] - arch: [mingw32, mingw64, arm32, arm64, mips32, mips64] - runs-on: ${{ matrix.os }} - continue-on-error: false - env: - CC: gcc - ARCH: ${{ matrix.arch }} - name: ${{ matrix.arch }} - ${{ matrix.os }} - steps: - - uses: actions/checkout@main - - name: Run CI script - run: ./scripts/test diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000000..f9ec4da7af --- /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 diff --git a/.github/workflows/linux_test.yml b/.github/workflows/linux_test.yml deleted file mode 100644 index 94bef31544..0000000000 --- a/.github/workflows/linux_test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: linux_ci - -on: [push, pull_request] - -jobs: - build-native: - strategy: - matrix: - os: [ubuntu-20.04, ubuntu-22.04] - compiler: [clang, gcc] - runs-on: ${{ matrix.os }} - continue-on-error: false - env: - CC: ${{ matrix.compiler }} - ARCH: native - name: ${{ matrix.compiler }} - ${{ matrix.os }} - steps: - - uses: actions/checkout@main - - name: Run CI script - run: ./scripts/test diff --git a/.github/workflows/linux_test_asan.yml b/.github/workflows/linux_test_asan.yml deleted file mode 100644 index 12e0889081..0000000000 --- a/.github/workflows/linux_test_asan.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: linux_ci_asan - -on: [push, pull_request] - -jobs: - build-native: - strategy: - matrix: - os: [ubuntu-latest] - compiler: [clang] - runs-on: ${{ matrix.os }} - continue-on-error: false - env: - CC: ${{ matrix.compiler }} - ARCH: native - CFLAGS: "-ggdb -fsanitize=address" - LDFLAGS: "-fsanitize=address" - CTEST_OUTPUT_ON_FAILURE: 1 - name: ${{ matrix.compiler }} - ${{ matrix.os }} - steps: - - uses: actions/checkout@main - - name: Run CI script - run: ./scripts/test diff --git a/.github/workflows/linux_test_asan_noasm.yml b/.github/workflows/linux_test_asan_noasm.yml deleted file mode 100644 index 92ab2fccaf..0000000000 --- a/.github/workflows/linux_test_asan_noasm.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: linux_ci_asan_noasm - -on: [push, pull_request] - -jobs: - build-native: - name: "${{ matrix.compiler }} - ${{ matrix.os }}" - runs-on: "${{ matrix.os }}" - strategy: - matrix: - os: ["ubuntu-latest"] - compiler: ["clang"] - env: - CC: "${{ matrix.compiler }}" - ARCH: native - CFLAGS: "-ggdb -fsanitize=address" - LDFLAGS: "-fsanitize=address" - CTEST_OUTPUT_ON_FAILURE: 1 - ENABLE_ASM: OFF - steps: - - name: "Checkout repository" - uses: actions/checkout@main - - name: "Run tests" - run: ./scripts/test