diff --git a/.gitea/workflows/linux-mips64-gcc.yml b/.gitea/workflows/linux-mips64-gcc.yml new file mode 100644 index 0000000..9fb7178 --- /dev/null +++ b/.gitea/workflows/linux-mips64-gcc.yml @@ -0,0 +1,64 @@ +name: linux-mips64-gcc +on: + - push + - pull_request + +concurrency: + group: linux-mips64-gcc-${{ github.ref }} + cancel-in-progress: true + +permissions: + - read + +jobs: + linux-gcc-mips64el: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v3 + with: + with: + path: qemu-install + key: qemu-mips64el-install-20220502-2 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update -y + sudo apt-get install -y autoconf automake autotools-dev ninja-build + + - name: checkout-qeu + if: steps.cache-qemu.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: qemu/qemu + path: qemu + ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + + - name: qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + cd qemu + ./configure --target-list=mips64el-linux-user --prefix=$GITHUB_WORKSPACE/qemu-install + make -j `nproc` + make install + + - name: mips64el-gnuabi64-toolchain + run: | + sudo apt-get update + sudo apt-get install g++-mips64el-linux-gnuabi64 + + - name: configure + run: | + mkdir build && cd build + cmake .. -DULIB_BUILD_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=../toolchains/mips64el-linux-gnuabi64.toolchain.cmake + + - name: test + run: | + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + TESTS_EXECUTABLE_LOADER=qemu-mips64el TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mips64el-linux-gnuabi64" ctest --output-on-failure -j`nproc` \ No newline at end of file diff --git a/.gitea/workflows/linux-x64-gcc.yml b/.gitea/workflows/linux-x64-gcc.yml index 23ebee7..b0e9b82 100644 --- a/.gitea/workflows/linux-x64-gcc.yml +++ b/.gitea/workflows/linux-x64-gcc.yml @@ -16,26 +16,26 @@ jobs: with: submodules: true - name: update - runs: sudo apt-get update + run: sudo apt-get update - name: configure - runs: | + run: | mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DULIB_BUILD_TESTS=ON - name: build - runs: | + run: | cmake --build build -j `nproc` - name: test - runs: | + run: | cd build && ctest --output-on-failure -j `nproc` - name: configure-shared - runs: | + run: | mkdir build-shared && cd build-shared cmake .. -DCMAKE_BUILD_TYPE=Release -DULIB_BUILD_TESTS=ON -DULIB_SHARED_LIB=ON - name: build-shared - runs: | + run: | cmake --build build-shared -j `nproc` - name: test-shared - runs: | + run: | cd build-shared && ctest --output-on-failure -j `nproc` \ No newline at end of file