# Build from source on Linux. name: build_linux on: pull_request: push: permissions: read-all jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-24.04 compiler: 'clang' configure_options: '' - os: ubuntu-24.04 compiler: 'gcc' configure_options: '' - os: ubuntu-24.04-arm compiler: 'clang' configure_options: '' - os: ubuntu-24.04-arm compiler: 'gcc' configure_options: '' - os: ubuntu-24.04 compiler: 'gcc' configure_options: '--with-pthread=no' - os: ubuntu-24.04 compiler: 'gcc' configure_options: '--enable-wide-character-type' - os: ubuntu-24.04 compiler: 'gcc' configure_options: '--disable-multi-threading-support --enable-static-executables' steps: - uses: actions/checkout@v6 - name: Install build dependencies run: | sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config - name: Download test data run: | if test -x "synctestdata.sh"; then ./synctestdata.sh; fi - name: Build from source env: CC: ${{ matrix.compiler }} run: | ./synclibs.sh --use-head ./autogen.sh ./configure ${{ matrix.configure_options }} make > /dev/null - name: Run tests run: | tests/runtests.sh build_dist: runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-24.04 compiler: 'gcc' configure_options: '' steps: - uses: actions/checkout@v6 - name: Install build dependencies run: | sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config - name: Download test data run: | if test -x "synctestdata.sh"; then ./synctestdata.sh; fi - name: Build from source env: CC: ${{ matrix.compiler }} run: | ./synclibs.sh --use-head ./autogen.sh ./configure ${{ matrix.configure_options }} make > /dev/null - name: Run tests run: | make distcheck build_python: runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-24.04 compiler: 'gcc' configure_options: '--enable-python' python_version: '' steps: - uses: actions/checkout@v6 - name: Install build dependencies run: | sudo add-apt-repository universe && sudo apt update && sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config python3-dev - name: Download test data run: | if test -x "synctestdata.sh"; then ./synctestdata.sh; fi - name: Build from source env: CC: ${{ matrix.compiler }} run: | ./synclibs.sh --use-head ./autogen.sh ./configure ${{ matrix.configure_options }} make > /dev/null - name: Run tests env: PYTHON_VERSION: ${{ matrix.python_version }} run: | tests/runtests.sh build_pyproject: runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-24.04 compiler: 'gcc' configure_options: '' steps: - uses: actions/checkout@v6 - name: Install build dependencies run: | sudo add-apt-repository universe && sudo apt update && sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config python3 python3-build python3-dev - name: Build from source env: CC: ${{ matrix.compiler }} run: | ./synclibs.sh --use-head ./autogen.sh ./configure ${{ matrix.configure_options }} make > /dev/null - name: Build Python module run: | python -m build build_shared: runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-24.04 compiler: 'gcc' configure_options: '' - os: ubuntu-24.04 compiler: 'gcc' configure_options: '--enable-wide-character-type' steps: - uses: actions/checkout@v6 - name: Install build dependencies run: | sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config - name: Download test data run: | if test -x "synctestdata.sh"; then ./synctestdata.sh; fi - name: Prepare shared libraries run: | tests/syncsharedlibs.sh --use-head - name: Build from source env: CC: ${{ matrix.compiler }} run: | ./synclibs.sh --use-head ./autogen.sh ./configure ${{ matrix.configure_options }} make > /dev/null - name: Run tests run: | tests/runtests.sh