Serializers for core extensions #206
Workflow file for this run
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: Build | |
| on: | |
| push: | |
| branches: [main] | |
| tags: '*' | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| make_flags: | |
| description: Extra flags to pass to make | |
| required: false | |
| default: 'CFLAGS=-Werror' | |
| jobs: | |
| build-and-test: | |
| name: Build and run `make check` | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: macos-latest | |
| cc: clang | |
| asan: no | |
| - os: ubuntu-latest | |
| cc: gcc | |
| asan: no | |
| - os: ubuntu-latest | |
| cc: gcc | |
| asan: yes | |
| - os: ubuntu-latest | |
| cc: clang | |
| asan: no | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| - name: Install dependencies (Ubuntu) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| autoconf \ | |
| automake \ | |
| libtool \ | |
| build-essential \ | |
| libfyaml-dev \ | |
| libbz2-dev \ | |
| liblz4-dev \ | |
| zlib1g-dev \ | |
| libbsd-dev \ | |
| libstatgrab-dev | |
| if [ "${{ matrix.cc }}" = "clang" ]; then | |
| sudo apt-get install -y clang | |
| fi | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew update | |
| brew install \ | |
| autoconf \ | |
| automake \ | |
| libtool \ | |
| libfyaml \ | |
| argp-standalone \ | |
| libstatgrab \ | |
| libbsd | |
| - name: Setup ccache action | |
| uses: Chocobo1/[email protected] | |
| - name: Bootstrap autotools | |
| run: ./autogen.sh | |
| - name: Configure | |
| run: | | |
| CONFIGURE_FLAGS="--with-gwcs" | |
| if [ "${{ matrix.asan }}" = "yes" ]; then | |
| CONFIGURE_FLAGS="--with-asan" | |
| fi | |
| ./configure CC=${{ matrix.cc }} $CONFIGURE_FLAGS | |
| - name: Build | |
| run: make ${{ github.event.inputs.make_flags }} | |
| - name: Check | |
| run: make check ${{ github.event.inputs.make_flags }} | |
| - name: Output test logs on failure | |
| if: failure() | |
| run: | | |
| tail -n +1 tests/*.log | |
| tail -n +1 tests/tmp/*.out.txt | |
| - name: Dist | |
| run: make dist ${{ github.event.inputs.make_flags }} | |
| - name: Dist check | |
| run: | | |
| hbroot=/opt/homebrew | |
| CMAKE_EXTRA_FLAGS="-DARGP_NO_PKGCONFIG=YES -DARGP_LIBDIR=${hbroot}/lib -DARGP_INCLUDEDIR=${hbroot}/include" | |
| make distcheck ${{ github.event.inputs.make_flags }} CMAKE_EXTRA_FLAGS="${CMAKE_EXTRA_FLAGS}" | |
| # Test the documentation build if the build passes | |
| docs: | |
| name: 'Build documentation' | |
| runs-on: ubuntu-latest | |
| needs: build-and-test | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| - name: Install documentation dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| autoconf \ | |
| automake \ | |
| libtool \ | |
| build-essential \ | |
| libclang-dev \ | |
| libfyaml-dev \ | |
| libbz2-dev \ | |
| liblz4-dev \ | |
| zlib1g-dev \ | |
| libstatgrab-dev \ | |
| llvm \ | |
| python3-sphinx \ | |
| python3-clang | |
| pip install furo hawkmoth towncrier | |
| - name: Set LD_LIBRARY_PATH | |
| run: echo "LD_LIBRARY_PATH=$(llvm-config --libdir):$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
| - name: Bootstrap autotools | |
| run: ./autogen.sh | |
| - name: Configure | |
| run: | | |
| ./configure --enable-docs | |
| # Run towncrier to build the changelog--since this gets included into | |
| # docs it's important to check that the changelog entries don't | |
| # introduce any doc build failures. | |
| - name: Extract changelog | |
| run: scripts/changelog.sh | |
| - name: Build Sphinx documentation | |
| run: make docs SPHINX_FLAGS=-W |