mirror of
https://github.com/weechat/weechat.git
synced 2026-06-25 04:16:38 +02:00
c243e4add9
Since the PHP plugin is not built, the doc can not be built any more (all plugins must be compiled to generate autogen files).
172 lines
5.0 KiB
YAML
172 lines
5.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
- push
|
|
- pull_request
|
|
|
|
env:
|
|
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-3.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php-dev libphp-embed libargon2-dev libsodium-dev flake8 pylint python3-bandit asciidoctor ruby-pygments.rb shellcheck
|
|
|
|
jobs:
|
|
|
|
tests_linux:
|
|
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-22.04
|
|
config:
|
|
- { name: "gcc", cc: "gcc", cxx: "g++", buildargs: "" }
|
|
- { name: "gcc_ninja", cc: "gcc", cxx: "g++", buildargs: "-G Ninja" }
|
|
- { name: "gcc_no_nls", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_NLS=OFF" }
|
|
- { name: "gcc_coverage", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_CODE_COVERAGE=ON" }
|
|
- { name: "clang", cc: "clang", cxx: "clang++", buildargs: "" }
|
|
|
|
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
|
|
sudo -H pip3 install --ignore-installed msgcheck
|
|
|
|
- name: Check gettext files
|
|
run: msgcheck po/*.po
|
|
|
|
- name: Check shell and Python scripts
|
|
run: ./tools/check_scripts.sh
|
|
|
|
- name: Check Python stub file
|
|
run: ./doc/python_stub.py | diff src/plugins/python/weechat.pyi -
|
|
|
|
- name: Check Curl symbols
|
|
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
|
|
|
|
- name: Build and run tests
|
|
env:
|
|
CC: ${{ matrix.config.cc }}
|
|
CXX: ${{ matrix.config.cxx }}
|
|
BUILDARGS: ${{ matrix.config.buildargs }}
|
|
run: ./tools/build_test.sh
|
|
|
|
- name: Run WeeChat
|
|
env:
|
|
TERM: xterm-256color
|
|
run: |
|
|
weechat --help
|
|
weechat-curses --help
|
|
weechat --colors
|
|
weechat --license
|
|
weechat --version
|
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
|
|
|
- name: Code coverage
|
|
if: ${{ matrix.config.name == 'gcc_coverage' }}
|
|
env:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
run: |
|
|
cd build-tmp-*
|
|
lcov --directory . --capture --output-file coverage.info
|
|
lcov --remove coverage.info '/usr/*' --output-file coverage.info
|
|
lcov --list coverage.info
|
|
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
|
|
|
tests_macos:
|
|
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- macos-12
|
|
- macos-11
|
|
config:
|
|
- { name: "gcc", cc: "gcc", cxx: "g++" }
|
|
- { name: "clang", cc: "clang", cxx: "clang++" }
|
|
|
|
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew update
|
|
# temporary fix, see: https://github.com/actions/setup-python/issues/577
|
|
rm -f \
|
|
/usr/local/bin/2to3 \
|
|
/usr/local/bin/idle3 \
|
|
/usr/local/bin/pydoc3 \
|
|
/usr/local/bin/python3 \
|
|
/usr/local/bin/python3-config \
|
|
/usr/local/bin/2to3-3.11 \
|
|
/usr/local/bin/idle3.11 \
|
|
/usr/local/bin/pydoc3.11 \
|
|
/usr/local/bin/python3.11 \
|
|
/usr/local/bin/python3.11-config \
|
|
;
|
|
brew install asciidoctor guile lua pkg-config ruby
|
|
|
|
- name: Build
|
|
env:
|
|
CC: ${{ matrix.config.cc }}
|
|
CXX: ${{ matrix.config.cxx }}
|
|
run: |
|
|
mkdir build-tmp && cd build-tmp
|
|
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=OFF -DENABLE_PHP=OFF
|
|
make VERBOSE=1 -j2
|
|
sudo make install
|
|
|
|
- name: Run WeeChat
|
|
env:
|
|
TERM: xterm-256color
|
|
run: |
|
|
weechat --help
|
|
weechat-curses --help
|
|
weechat --colors
|
|
weechat --license
|
|
weechat --version
|
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
|
|
|
build_debian:
|
|
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-22.04
|
|
|
|
name: "Build Debian on ${{ matrix.os }}"
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
|
|
|
|
- name: Test Debian patches
|
|
run: ./tools/build_debian.sh test-patches
|
|
|
|
- name: Build Debian packages
|
|
run: ./tools/build_debian.sh devel ubuntu/jammy
|
|
|
|
- name: Install Debian packages
|
|
run: sudo dpkg -i ../weechat-devel*.deb
|
|
|
|
- name: Run WeeChat
|
|
env:
|
|
TERM: xterm-256color
|
|
run: |
|
|
weechat --help
|
|
weechat-curses --help
|
|
weechat --version
|
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|