Skip to content

Fix macOS test app build and update Xcode setup in workflow #187

Fix macOS test app build and update Xcode setup in workflow

Fix macOS test app build and update Xcode setup in workflow #187

Workflow file for this run

name: Test on Ubuntu 24.04
on:
pull_request:
push:
paths:
- '.github/actions/**'
- '.github/workflows/test_ubuntu24.yml'
- 'cmake/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- 'CMakeLists.txt'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build_linux:
runs-on: ${{ matrix.os }}
if: |
!contains(github.event.head_commit.message, '[test-windows]')
&& !contains(github.event.head_commit.message, '[test-macos]')
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm]
arch: [x64, arm64]
c_compiler: [gcc-13, gcc-14, clang-16, clang-17, clang-18]
bit7z_auto_format: [OFF, ON]
bit7z_detect_from_extension: [OFF, ON]
bit7z_regex_matching: [OFF, ON]
bit7z_link_libcpp: [OFF, ON]
bit7z_7zip_version: [23.01, 24.09, '26.00']
include:
- c_compiler: gcc-13
cpp_compiler: g++-13
- c_compiler: gcc-14
cpp_compiler: g++-14
- c_compiler: clang-16
cpp_compiler: clang++-16
- c_compiler: clang-17
cpp_compiler: clang++-17
- c_compiler: clang-18
cpp_compiler: clang++-18
exclude:
- os: ubuntu-24.04
arch: arm64
- os: ubuntu-24.04-arm
arch: x64
- c_compiler: gcc-13
bit7z_link_libcpp: ON
- c_compiler: gcc-14
bit7z_link_libcpp: ON
- c_compiler: clang-18 # re-enable once improved string conversions in bit7z
bit7z_link_libcpp: ON
- bit7z_auto_format: OFF
bit7z_detect_from_extension: ON
name: |
Ubuntu (${{ matrix.arch }}), ${{ matrix.c_compiler }}, 7-Zip ${{ matrix.bit7z_7zip_version }}${{ (matrix.bit7z_auto_format == 'ON') && ', AUTO_FORMAT' || '' }}${{ (matrix.bit7z_detect_from_extension == 'ON') && ', DETECT_FROM_EXT' || '' }}${{ (matrix.bit7z_regex_matching == 'ON') && ', REGEX_MATCHING' || '' }}${{ (matrix.bit7z_link_libcpp == 'ON') && ', LINK_LIBCPP' || '' }}
steps:
- uses: actions/checkout@v6
- name: Fix missing libc++ and libc++abi packages for clang-16 compiler
shell: bash
if: ${{ matrix.bit7z_link_libcpp == 'ON' && contains(matrix.c_compiler, 'clang-16') }}
run: sudo apt-get install libc++-16-dev libc++abi-16-dev -y
- name: Fix missing libc++ and libc++abi packages for clang-17 compiler
shell: bash
if: ${{ matrix.bit7z_link_libcpp == 'ON' && contains(matrix.c_compiler, 'clang-17') }}
run: sudo apt-get install libc++-17-dev libc++abi-17-dev -y
- name: Fix missing libc++ and libc++abi packages for clang-18 compiler
shell: bash
if: ${{ matrix.bit7z_link_libcpp == 'ON' && contains(matrix.c_compiler, 'clang-18') }}
run: sudo apt-get install libc++-18-dev libc++abi-18-dev -y
- name: Building and testing bit7z
uses: ./.github/actions/ci_action
with:
arch: ${{ matrix.arch }}
c_compiler: ${{ matrix.c_compiler }}
cpp_compiler: ${{ matrix.cpp_compiler }}
sevenzip_version: ${{ matrix.bit7z_7zip_version }}
build_flags: |-
-DBIT7Z_TESTS_USE_SYSTEM_7ZIP=OFF -DBIT7Z_BUILD_FOR_P7ZIP=OFF -DBIT7Z_AUTO_FORMAT=${{ matrix.bit7z_auto_format }} -DBIT7Z_DETECT_FROM_EXTENSION=${{ matrix.bit7z_detect_from_extension }} -DBIT7Z_REGEX_MATCHING=${{ matrix.bit7z_regex_matching }} -DBIT7Z_LINK_LIBCPP=${{ matrix.bit7z_link_libcpp }}