name: C/C++ CI on: [push, pull_request] jobs: ubuntu: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo apt install gettext libncurses5-dev libpcre2-dev python3-pip tmux sudo pip3 install pexpect - name: cmake env: # Some warnings upgraded to errors to match Open Build Service platforms CXXFLAGS: "-Werror=address -Werror=return-type" run: | mkdir build && cd build cmake .. - name: make run: | make - name: make test run: | make test ubuntu-32bit-vendored-pcre2: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo apt update sudo apt install gettext lib32ncurses5-dev python3-pip g++-multilib tmux sudo pip3 install pexpect - name: cmake env: CXXFLAGS: "-m32 -Werror=address -Werror=return-type" CFLAGS: "-m32" run: | mkdir build && cd build cmake -DFISH_USE_SYSTEM_PCRE2=OFF .. - name: make run: | make - name: make test run: | make test ubuntu-asan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo apt install gettext libncurses5-dev libpcre2-dev python3-pip tmux sudo pip3 install pexpect - name: cmake env: CC: clang CXX: clang++ CXXFLAGS: "-fno-omit-frame-pointer -fsanitize=undefined -fsanitize=address" ASAN_OPTIONS: check_initialization_order=1:detect_stack_use_after_return=1:detect_leaks=1 UBSAN_OPTIONS: print_stacktrace=1:report_error_type=1 run: | mkdir build && cd build cmake .. - name: make run: | make - name: make test run: | make test ubuntu-threadsan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo apt install gettext libncurses5-dev libpcre2-dev python3-pip tmux sudo pip3 install pexpect - name: cmake env: CC: clang CXX: clang++ CXXFLAGS: "-fsanitize=thread" run: | mkdir build && cd build cmake .. - name: make run: | make - name: make test run: | make test macos: runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo pip3 install pexpect brew install tmux - name: cmake run: | mkdir build && cd build cmake -DWITH_GETTEXT=NO .. - name: make run: | make - name: make test run: | make test