diff --git a/.github/workflows/ci_build.yml b/.github/workflows/ci_build.yml index eecc3bda1..77a460369 100644 --- a/.github/workflows/ci_build.yml +++ b/.github/workflows/ci_build.yml @@ -61,3 +61,64 @@ jobs: name: linux-amd64-failure path: ${{github.workspace}}/build/ compression-level: 9 # maximum compression + + # ---------------------------------------------------------------------------------------------- + linux-x86: + name: Linux (x86) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup x86 chroot with Alpine Linux and install dependencies + uses: jirutka/setup-alpine@v1 + with: + arch: x86 + packages: > + build-base + linux-headers + elfutils-dev + libpcap-dev + cmake + + - name: Configure with CMake + shell: alpine.sh {0} + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDYNAMIPS_CODE=both -DBUILD_UDP_RECV=ON -DBUILD_UDP_SEND=ON -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/build/install -DCPACK_PACKAGE_FILE_NAME=dynamips-package -DCPACK_GENERATOR=ZIP + + - name: Build + shell: alpine.sh {0} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + shell: alpine.sh {0} + run: | + set -x + cd ${{github.workspace}}/build + ctest --verbose --build-config ${{env.BUILD_TYPE}} + ./stable/dynamips -e + ./unstable/dynamips_x86_unstable -e + + - name: Install + shell: alpine.sh {0} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install + + - name: Package + shell: alpine.sh {0} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target package + + - name: Upload success + if: ${{ success() }} + uses: actions/upload-artifact@v4 + with: + name: linux-x86-success + path: | + ${{github.workspace}}/build/install/ + ${{github.workspace}}/build/dynamips-package.zip + compression-level: 9 # maximum compression + + - name: Upload failure + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: linux-x86-failure + path: ${{github.workspace}}/build/ + compression-level: 9 # maximum compression