diff --git a/.gitea/workflows/linux-aarch64-gcc.yml b/.gitea/workflows/linux-aarch64-gcc.yml new file mode 100644 index 0000000..3cc9846 --- /dev/null +++ b/.gitea/workflows/linux-aarch64-gcc.yml @@ -0,0 +1,178 @@ +--- +name: linux-aarch64-cpu-gcc +on: + push: + branches: [master] + paths: + - .gitea/workflows/linux-arm-gcc.yml + - toolchains/aarch64-linux-gnu.toolchain.cmake + - 3party/** + - include/** + - src/** + - tests/** + - CMakeLists.txt + - cmake/** + pull_request: + branches: [master] + paths: + - .gitea/workflows/linux-arm-gcc.yml + - toolchains/aarch64-linux-gnu.toolchain.cmake + - 3party/** + - include/** + - src/** + - tests/** + - CMakeLists.txt + - cmake/** +concurrency: + group: linux-aarch64-cpu-gcc-${{ github.ref }} + cancel-in-progress: true +permissions: + contents: read +jobs: + linux-gcc: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v4 + with: + path: qemu-install + key: qemu-aarch64-install-20220502-ubuntu-2004-2 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update + sudo apt-get install autoconf automake autotools-dev ninja-build + - name: checkout-qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + mkdir qemu && cd qemu + git init + git remote add origin https://gitlab.com/qemu-project/qemu.git + git fetch --depth=1 origin f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + git checkout f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + # 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 --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=aarch64-linux-user --disable-system + make -j$(nproc) + make install + - name: aarch64-gnu-toolchain + run: | + sudo apt-get update + sudo apt-get install cmake make g++-aarch64-linux-gnu + - name: build + run: | + mkdir build && cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DSLED_BUILD_TESTS=ON -DSLED_BUILD_BENCHMARK=ON + cmake --build . -j $(nproc) + - name: test + run: | + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j $(nproc) + linux-gcc-arm82: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v4 + with: + path: qemu-install + key: qemu-aarch64-install-20220502-ubuntu-2004-2 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update + sudo apt-get install autoconf automake autotools-dev ninja-build + - name: checkout-qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + mkdir qemu && cd qemu + git init + git remote add origin https://gitlab.com/qemu-project/qemu.git + git fetch --depth=1 origin f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + git checkout f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + # 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 --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=aarch64-linux-user --disable-system + make -j$(nproc) + make install + - name: aarch64-gnu-toolchain + run: | + sudo apt-get update + sudo apt-get install cmake make g++-aarch64-linux-gnu + - name: build + run: | + mkdir build && cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DSLED_BUILD_TESTS=ON -DSLED_BUILD_BENCHMARK=ON + cmake --build . -j $(nproc) + - name: test + run: | + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j $(nproc) + linux-gcc-arm86: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v4 + with: + path: qemu-install + key: qemu-aarch64-install-20230717 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update + sudo apt-get install autoconf automake autotools-dev ninja-build + - name: checkout-qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + mkdir qemu && cd qemu + git init + git remote add origin https://gitlab.com/qemu-project/qemu.git + git fetch --depth=1 origin f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + git checkout f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 + # uses: actions/checkout@v4 + # with: + # repository: qemu/qemu + # path: qemu + # ref: ed8ad9728a9c0eec34db9dff61dfa2f1dd625637 + - name: qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + cd qemu + ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=aarch64-linux-user --disable-system + make -j$(nproc) + make install + - name: aarch64-gnu-toolchain + run: | + sudo apt-get update + sudo apt-get install cmake make g++-aarch64-linux-gnu + - name: build + run: | + mkdir build && cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DSLED_BUILD_TESTS=ON -DSLED_BUILD_BENCHMARK=ON + cmake --build . -j $(nproc) + - name: test + run: |- + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j $(nproc)