From: Vladislav Shchapov Date: Tue, 27 Jan 2026 15:13:57 +0000 (+0500) Subject: Add e2k CI X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e713a7c92a83cd8e65e003ceb1cf21f1625a24c;p=thirdparty%2Fzlib-ng.git Add e2k CI Signed-off-by: Vladislav Shchapov --- diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 135bd5088..7d1d288c4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -641,6 +641,30 @@ jobs: cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON codecov: macos_clang_arm64_native + - name: Ubuntu LCC e2kv4 + os: ubuntu-latest + cmake-args: -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.12.e2k-v4.8c.linux-6.1 -DQEMU_CPU=elbrus-v4 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF + toolchain: 1.29.12.e2k-v4.8c.linux-6.1 + cflags: -march=elbrus-v4 + cxxflags: -march=elbrus-v4 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY + ldflags: -static + + - name: Ubuntu LCC e2kv5 + os: ubuntu-latest + cmake-args: -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.12.e2k-v5.8c2.linux-6.1 -DQEMU_CPU=elbrus-v5 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF + toolchain: 1.29.12.e2k-v5.8c2.linux-6.1 + cflags: -march=elbrus-v5 + cxxflags: -march=elbrus-v5 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY + ldflags: -static + + - name: Ubuntu LCC e2kv6 + os: ubuntu-latest + cmake-args: -DWITH_BENCHMARKS=OFF -DBUILD_TESTING=OFF -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.12.e2k-v6.2c3.linux-6.1 -DQEMU_CPU=elbrus-v6 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF + toolchain: 1.29.12.e2k-v6.2c3.linux-6.1 + cflags: -march=elbrus-v6 + cxxflags: -march=elbrus-v6 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY + ldflags: -static + steps: - name: Checkout repository uses: actions/checkout@v6 @@ -651,8 +675,8 @@ jobs: uses: actions/checkout@v6 # Don't test against all corpora with MinGW due to Wine being unable to run parallel jobs # without connection timeout. Without parallel jobs test runs using Wine take close to an hour. - # Also don't test the extra corpora with Sanitizer builds or RISC-V, due to their slow testing. - if: ${{ !contains(matrix.name, 'MinGW') && !contains(matrix.name, 'RISC-V') && !contains(matrix.cmake-args, 'WITH_SANITIZER') }} + # Also don't test the extra corpora with Sanitizer builds or RISC-V or e2k, due to their slow testing. + if: ${{ !contains(matrix.name, 'MinGW') && !contains(matrix.name, 'RISC-V') && !contains(matrix.name, 'e2k') && !contains(matrix.cmake-args, 'WITH_SANITIZER') }} with: repository: zlib-ng/corpora path: test/data/corpora @@ -738,6 +762,40 @@ jobs: if: contains(matrix.name, 'WASM32') uses: mymindstorm/setup-emsdk@v14 + # Get MCST LCC from github actions cache or download from dev.mcst.ru and save to cache + - name: Cache MCST LCC ${{ matrix.toolchain }} (Ubuntu) + if: contains(matrix.name, 'e2k') + id: cache-lcc + uses: actions/cache@v5 + with: + path: /opt/mcst + key: cache-lcc-${{ matrix.toolchain }} + + - name: Install MCST LCC ${{ matrix.toolchain }} (Ubuntu) + if: contains(matrix.name, 'e2k') && steps.cache-lcc.outputs.cache-hit != 'true' + shell: bash + run: | + wget -q https://dev.mcst.ru/downloads/2025-06-27/cross-sp-${{ matrix.toolchain }}_64.tgz + sudo tar -xzf cross-sp-${{ matrix.toolchain }}_64.tgz -C / + rm -f cross-sp-${{ matrix.toolchain }}_64.tgz + + # Get qemu-e2k-static from github actions cache or download from dev.mcst.ru and save to cache + - name: Cache MCST QEMU (Ubuntu) + if: contains(matrix.name, 'e2k') + id: cache-qemu-e2k-static + uses: actions/cache@v5 + with: + path: /usr/local/bin/qemu-e2k-static + key: cache-qemu-e2k-static-20251226 + + - name: Install MCST QEMU (Ubuntu) + if: contains(matrix.name, 'e2k') && steps.cache-qemu-e2k-static.outputs.cache-hit != 'true' + shell: bash + run: | + wget -q https://dev.mcst.ru/downloads/2025-12-26/qemu-e2k-static + chmod +x qemu-e2k-static + sudo mv qemu-e2k-static /usr/local/bin + - name: Initialize Wine # Prevent parallel test jobs from initializing Wine at the same time if: contains(matrix.packages, 'wine')