diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9eadf5fe..9c28c1b1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,90 +4,11 @@ concurrency: group: test-${{ github.ref }} cancel-in-progress: true jobs: - test-cxx: - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-20.04 - cxx: g++-9 - extras: enabled - - os: ubuntu-22.04 - cxx: g++-12 - extras: enabled - - os: ubuntu-20.04 - cxx: clang++-10 - extras: enabled - - os: ubuntu-22.04 - cxx: clang++-14 - extras: enabled - - os: macos-14 - cxx: clang++ - extras: disabled - runs-on: ${{ matrix.os }} - env: - SCCACHE_GHA_ENABLED: "true" - CXX: sccache ${{ matrix.cxx }} - # Don't error on deprecations: Xcode marks sprintf deprecated and Boost references it - CXXFLAGS: -Wno-error=deprecated-declarations - steps: - - uses: actions/checkout@v4 - - name: Set up sccache - uses: mozilla-actions/sccache-action@v0.0.5 - - name: Install system packages - run: ./.ci/install-sys-pkgs.sh - - uses: actions/setup-python@v5 - with: - # 3.10 is the minimum version supported on macos-14 builders - python-version: '3.10' - cache: 'pip' - - name: Install build requirements - run: ./.ci/py-build-requirements.sh - - name: Set up build directory - run: >- - meson setup build - --native-file=ci.ini - -Dwerror=true - -Dauto_features=${{ matrix.extras }} - -Dcuda=disabled - -Dgdrapi=disabled - -Dfmv="$(if [[ '${{ matrix.cxx }}' == g++* ]]; then echo enabled; else echo disabled; fi)" - - name: Build - run: meson compile -C build - - name: Run tests - run: meson test -C build - test-python: strategy: fail-fast: false matrix: include: - - os: ubuntu-20.04 - cc: gcc-9 - cxx: g++-9 - python-version: '3.8' - extras: enabled - # Disabled for now because numba/llvmlite (needed for tests) - # doesn't have a pypy wheel, and it's not worth the effect to - # install all the dependencies needed to make that work. - # - os: ubuntu-22.04 - # cxx: g++ - # python-version: pypy-3.7 - - os: ubuntu-22.04 - cc: gcc-12 - cxx: g++-12 - python-version: '3.12' - extras: enabled - - os: ubuntu-20.04 - cc: clang-10 - cxx: clang++-10 - python-version: '3.12' - extras: enabled - - os: ubuntu-22.04 - cc: clang-14 - cxx: clang++-14 - python-version: '3.12' - extras: enabled - os: macos-14 cc: clang cxx: clang++ @@ -100,6 +21,10 @@ jobs: # Don't error on deprecations: Xcode marks sprintf deprecated and Boost references it CXXFLAGS: -Wno-error=deprecated-declarations steps: + - name: Show environment + run: env + - name: Test running cargo + run: cargo --version - uses: actions/checkout@v4 - name: Set up sccache uses: mozilla-actions/sccache-action@v0.0.5 @@ -126,155 +51,12 @@ jobs: - name: Run shutdown tests run: ./.ci/py-tests-shutdown.sh - lint: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - uses: actions/setup-python@v5 - with: - python-version: '3.8' - cache: 'pip' - - run: pip install pre-commit - - run: pre-commit run --all-files - - coverage: - runs-on: ubuntu-22.04 - env: - SCCACHE_GHA_ENABLED: "true" - steps: - - uses: actions/checkout@v4 - - name: Set up sccache - uses: mozilla-actions/sccache-action@v0.0.5 - - name: Install system packages - run: ./.ci/install-sys-pkgs.sh - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - name: Install Python dependencies - run: ./.ci/py-requirements.sh - - name: Install build requirements - run: ./.ci/py-build-requirements.sh - - name: Install Python package - # Build isolation tends to delete the .gcno files which end up in - # the ephemeral build directory. So do a non-isolated editable - # install instead. - run: >- - pip install -v - --config-settings=setup-args=-Dwerror=true - --config-settings=setup-args=-Dauto_features=enabled - --config-settings=setup-args=-Dbuildtype=debug - --config-settings=setup-args=-Db_coverage=true - --no-build-isolation - --editable . - - name: Run Python tests - run: pytest -v -ra && ./.ci/py-tests-shutdown.sh - - name: Set up C++ build - run: >- - meson setup build - -Dwerror=true - -Dauto_features=enabled - -Dcuda=disabled - -Dgdrapi=disabled - -Dbuildtype=debug - -Db_coverage=true - - name: Build C++ - run: meson compile -C build - - name: Run C++ tests - run: meson test -C build - - name: Collect coverage - run: ./.ci/coverage.sh - - uses: coverallsapp/github-action@v2.3.0 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: lcov.info - - all-builds: - runs-on: ubuntu-22.04 - env: - SCCACHE_GHA_ENABLED: "true" - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - uses: actions/checkout@v4 - - name: Set up sccache - uses: mozilla-actions/sccache-action@v0.0.5 - - name: Install system packages - run: ./.ci/install-sys-pkgs.sh - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - name: Install build requirements - run: ./.ci/py-build-requirements.sh - - name: Build all the combinations - run: ./.ci/all-builds.sh - - sdist: - needs: [test-cxx, test-python, coverage, lint] - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - name: Install system packages - run: ./.ci/install-sys-pkgs.sh - - name: Install Python dependencies - run: ./.ci/py-requirements.sh - - run: pip install build==0.10.0 - - run: python -m build --sdist . - - uses: actions/upload-artifact@v4 - with: - name: sdist - path: ./dist/*.tar.gz - - cibuildwheel-linux: - needs: [test-cxx, test-python, coverage, lint] - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - arch: [x86_64, aarch64] - python: [cp38, cp39, cp310, cp311, cp312] - env: - SCCACHE_GHA_ENABLED: "true" - steps: - - uses: actions/checkout@v4 - - name: Set up sccache - uses: mozilla-actions/sccache-action@v0.0.5 - - uses: docker/setup-qemu-action@v3 - with: - platforms: arm64 - if: matrix.arch != 'x86_64' - - uses: pypa/cibuildwheel@v2.19.2 - env: - CIBW_ARCHS: ${{ matrix.arch }} - CIBW_BUILD: ${{ matrix.python }}-manylinux* - - uses: actions/upload-artifact@v4 - with: - name: wheel_linux-${{ matrix.arch }}-${{ matrix.python }} - path: ./wheelhouse/*.whl - - uses: actions/upload-artifact@v4 - with: - name: debug_symbols_uncompressed-${{ matrix.arch }}-${{ matrix.python }} - path: ./wheelhouse/*.debug - cibuildwheel-macos: - needs: [test-cxx, test-python, coverage, lint] strategy: fail-fast: false matrix: - os: [macos-13, macos-14] - python: [cp38, cp39, cp310, cp311, cp312] + os: [macos-14] + python: [cp312] exclude: # Python 3.8 not natively available for Apple Silicon. cibuildwheel # tries to do a cross build, which fails. @@ -284,6 +66,10 @@ jobs: env: SCCACHE_GHA_ENABLED: "true" steps: + - name: show environment + run: env + - name: try running cargo + run: cargo --version - uses: actions/checkout@v4 - name: Set up sccache uses: mozilla-actions/sccache-action@v0.0.5 @@ -294,36 +80,3 @@ jobs: with: name: wheel_macos-${{ matrix.os }}-${{ matrix.python }} path: ./wheelhouse/*.whl - - combine: - needs: [cibuildwheel-linux, cibuildwheel-macos, sdist] - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Create paths - run: mkdir -p debug-symbols dist wheelhouse - - uses: actions/download-artifact@v4 - with: - pattern: debug_symbols_uncompressed-* - path: . - merge-multiple: true - - uses: actions/download-artifact@v4 - with: - pattern: wheel_* - path: wheelhouse/ - merge-multiple: true - - uses: actions/download-artifact@v4 - with: - name: sdist - path: dist/ - merge-multiple: true - - name: Compress debug symbols - run: >- - tar -Jcvf debug-symbols/"spead2-"$(