don't need that there. #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI Linux | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| concurrency: | |
| group: ci-linux-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-and-test: | |
| name: ${{ matrix.distribution }}-${{ matrix.arch }} | |
| runs-on: ${{ (contains(matrix.arch, 'arm64') || contains(matrix.arch, 'aarch64')) && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # RPM-based distributions | |
| - distribution: el9 | |
| arch: x86_64 | |
| image_type: rpm | |
| python: python3.12 | |
| - distribution: el9 | |
| arch: aarch64 | |
| image_type: rpm | |
| python: python3.12 | |
| - distribution: el10 | |
| arch: x86_64 | |
| image_type: rpm | |
| - distribution: el10 | |
| arch: aarch64 | |
| image_type: rpm | |
| - distribution: amzn2023 | |
| arch: x86_64 | |
| image_type: rpm | |
| python: python3.12 | |
| - distribution: amzn2023 | |
| arch: aarch64 | |
| image_type: rpm | |
| python: python3.12 | |
| # DEB-based distributions | |
| - distribution: ubuntu24.04 | |
| arch: amd64 | |
| image_type: deb | |
| - distribution: ubuntu24.04 | |
| arch: arm64 | |
| image_type: deb | |
| - distribution: debian12 | |
| arch: amd64 | |
| image_type: deb | |
| - distribution: debian12 | |
| arch: arm64 | |
| image_type: deb | |
| - distribution: debian13 | |
| arch: amd64 | |
| image_type: deb | |
| - distribution: debian13 | |
| arch: arm64 | |
| image_type: deb | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Load version info | |
| run: | | |
| source config/version.env | |
| echo "CHANNEL=$CHANNEL" >> $GITHUB_ENV | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: zeroc-ice | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and test C++ | |
| run: | | |
| docker run --rm \ | |
| -v "$GITHUB_WORKSPACE:/ice" \ | |
| -w /ice/cpp \ | |
| ghcr.io/zeroc-ice/ice-${{ matrix.image_type }}-builder-${{ matrix.distribution }}:${CHANNEL} \ | |
| bash -c " | |
| set -ex | |
| make -j\$(nproc) srcs | |
| make -j\$(nproc) tests | |
| # The --rfilter option excludes tests matching the regex. These tests are excluded because | |
| # they require dependencies or permissions not available in the Docker builder images: | |
| # - IceUtil/priority, Ice/threadPoolPriority: require CAP_SYS_NICE for thread priorities | |
| # - Glacier2/*: require the passlib Python module | |
| # - IceSSL/configuration: requires the openssl CLI tool | |
| ${{ matrix.python || 'python3' }} allTests.py --workers=4 --debug --continue \ | |
| --rfilter='IceUtil/priority|Ice/threadPoolPriority|Glacier2/|IceSSL/configuration' | |
| " | |
| - name: Upload test logs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-logs-${{ matrix.distribution }}-${{ matrix.arch }} | |
| path: cpp/**/*.log | |
| if-no-files-found: ignore | |
| if: always() |