mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
Check Irssi compilation using github actions
This commit is contained in:
parent
1f05f86167
commit
8f6e67b9b3
43
.github/actions.yml
vendored
43
.github/actions.yml
vendored
@ -1,43 +0,0 @@
|
|||||||
before_install:
|
|
||||||
- ./autogen.sh --with-proxy=module --with-bot --with-perl=module --with-otr=module
|
|
||||||
- make dist
|
|
||||||
- CO_DIR=$(pwd)
|
|
||||||
- mkdir -p $HOME/src
|
|
||||||
- cd $HOME/src
|
|
||||||
- tar xaf $CO_DIR/irssi-*.tar.*
|
|
||||||
|
|
||||||
install:
|
|
||||||
- cd $HOME/src/irssi-*
|
|
||||||
- ./configure --with-proxy=module --with-bot --with-perl=module --with-otr=module --prefix=$HOME/irssi-build --enable-always-build-tests
|
|
||||||
- make CFLAGS="-Wall -Werror -Werror=declaration-after-statement"
|
|
||||||
- make install
|
|
||||||
|
|
||||||
unit_tests:
|
|
||||||
- cd $HOME/src/irssi-*
|
|
||||||
- make -C tests -sk check
|
|
||||||
|
|
||||||
after_unit_tests:
|
|
||||||
- cd $HOME/src/irssi-*
|
|
||||||
- find -name test-suite.log -exec cat {} +
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- cd $HOME
|
|
||||||
- mkdir irssi-test
|
|
||||||
- |
|
|
||||||
echo 'echo automated irssi launch test
|
|
||||||
^set settings_autosave off
|
|
||||||
^set -clear log_close_string
|
|
||||||
^set -clear log_day_changed
|
|
||||||
^set -clear log_open_string
|
|
||||||
^set log_timestamp *
|
|
||||||
^window log on' > irssi-test/startup
|
|
||||||
- echo load perl >> irssi-test/startup
|
|
||||||
- echo load proxy >> irssi-test/startup
|
|
||||||
- echo ^quit >> irssi-test/startup
|
|
||||||
|
|
||||||
script:
|
|
||||||
- cd $HOME
|
|
||||||
- irssi-build/bin/irssi --home irssi-test | /tools/render.pl
|
|
||||||
|
|
||||||
after_script:
|
|
||||||
- cat $HOME/irc.log.*
|
|
96
.github/workflows/abicheck.yml
vendored
96
.github/workflows/abicheck.yml
vendored
@ -1,25 +1,24 @@
|
|||||||
on: [pull_request]
|
on: [pull_request]
|
||||||
name: abicheck
|
name: abicheck
|
||||||
|
env:
|
||||||
|
build_options: -Dbuildtype=debug -Denable-true-color=yes -Dwith-proxy=yes -Dc_args=-DPERL_EUPXS_ALWAYS_EXPORT
|
||||||
|
prefix: /usr/local
|
||||||
|
apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev
|
||||||
|
get_pip_build_deps: pip3 install setuptools; pip3 install wheel; pip3 install meson
|
||||||
|
getabidef_def: getabidef() { awk '$1=="#define" && $2=="IRSSI_ABI_VERSION" { print $3 }' "$1"/include/irssi/src/common.h; }
|
||||||
jobs:
|
jobs:
|
||||||
check-abi-diff:
|
build-base-ref:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
outputs:
|
||||||
build_options: -Dbuildtype=debug -Denable-true-color=yes -Dwith-proxy=yes -Dc_args=-DPERL_EUPXS_ALWAYS_EXPORT
|
base_abi: ${{ steps.out.outputs.base_abi }}
|
||||||
prefix: /usr/local
|
|
||||||
steps:
|
steps:
|
||||||
- name: set PATH
|
- name: set PATH
|
||||||
run: |
|
run: |
|
||||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
- name: prepare required software
|
- name: prepare required software
|
||||||
run: |
|
run: |
|
||||||
sudo apt install abigail-tools ninja-build libutf8proc-dev libperl-dev libotr5-dev
|
sudo apt install $apt_build_deps
|
||||||
pip3 install setuptools
|
eval "$get_pip_build_deps"
|
||||||
pip3 install wheel
|
|
||||||
pip3 install meson
|
|
||||||
- name: checkout merge ref
|
|
||||||
uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
path: merge.src
|
|
||||||
- name: checkout base ref
|
- name: checkout base ref
|
||||||
uses: actions/checkout@main
|
uses: actions/checkout@main
|
||||||
with:
|
with:
|
||||||
@ -30,26 +29,83 @@ jobs:
|
|||||||
meson Build.base base.src $build_options
|
meson Build.base base.src $build_options
|
||||||
ninja -C Build.base
|
ninja -C Build.base
|
||||||
DESTDIR=$PWD/base ninja -C Build.base install
|
DESTDIR=$PWD/base ninja -C Build.base install
|
||||||
|
- id: out
|
||||||
|
run: |
|
||||||
|
# print versions and abi versions
|
||||||
|
eval "$getabidef_def"
|
||||||
|
base_abi=$(getabidef base$prefix)
|
||||||
|
echo base abi : $base_abi
|
||||||
|
./base$prefix/bin/irssi --version
|
||||||
|
echo "::set-output name=base_abi::$base_abi"
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: base.inst
|
||||||
|
path: base
|
||||||
|
retention-days: 1
|
||||||
|
build-merge-ref:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
merge_abi: ${{ steps.out.outputs.merge_abi }}
|
||||||
|
steps:
|
||||||
|
- name: set PATH
|
||||||
|
run: |
|
||||||
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
|
- name: prepare required software
|
||||||
|
run: |
|
||||||
|
sudo apt install $apt_build_deps
|
||||||
|
eval "$get_pip_build_deps"
|
||||||
|
- name: checkout merge ref
|
||||||
|
uses: actions/checkout@main
|
||||||
|
with:
|
||||||
|
path: merge.src
|
||||||
- name: build merge ref
|
- name: build merge ref
|
||||||
run: |
|
run: |
|
||||||
meson Build.merge merge.src $build_options
|
meson Build.merge merge.src $build_options
|
||||||
ninja -C Build.merge
|
ninja -C Build.merge
|
||||||
DESTDIR=$PWD/merge ninja -C Build.merge install
|
DESTDIR=$PWD/merge ninja -C Build.merge install
|
||||||
- run: |
|
- id: out
|
||||||
|
run: |
|
||||||
# print versions and abi versions
|
# print versions and abi versions
|
||||||
getabidef() { awk '$1=="#define" && $2=="IRSSI_ABI_VERSION" { print $3 }' "$1"/include/irssi/src/common.h; }
|
eval "$getabidef_def"
|
||||||
base_abi=$(getabidef base$prefix)
|
|
||||||
echo base abi : $base_abi
|
|
||||||
./base$prefix/bin/irssi --version
|
|
||||||
echo "base_abi=$base_abi" >> $GITHUB_ENV
|
|
||||||
merge_abi=$(getabidef merge$prefix)
|
merge_abi=$(getabidef merge$prefix)
|
||||||
echo merge abi : $merge_abi
|
echo merge abi : $merge_abi
|
||||||
./merge$prefix/bin/irssi --version
|
./merge$prefix/bin/irssi --version
|
||||||
echo "merge_abi=$merge_abi" >> $GITHUB_ENV
|
echo "::set-output name=merge_abi::$merge_abi"
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: merge.inst
|
||||||
|
path: merge
|
||||||
|
retention-days: 1
|
||||||
|
check-abi-diff:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- build-merge-ref
|
||||||
|
- build-base-ref
|
||||||
|
env:
|
||||||
|
base_abi: ${{ needs.build-base-ref.outputs.base_abi }}
|
||||||
|
merge_abi: ${{ needs.build-merge-ref.outputs.merge_abi }}
|
||||||
|
steps:
|
||||||
|
- name: prepare required software
|
||||||
|
run: |
|
||||||
|
sudo apt install abigail-tools
|
||||||
|
- name: fetch base build
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: base.inst
|
||||||
|
path: base
|
||||||
|
- name: fetch merge build
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: merge.inst
|
||||||
|
path: merge
|
||||||
- run: |
|
- run: |
|
||||||
# abipkgdiff
|
# abipkgdiff
|
||||||
abipkgdiff -l base merge && diff_ret=0 || diff_ret=$?
|
abipkgdiff -l base merge >abipkgdiff.out && diff_ret=0 || diff_ret=$?
|
||||||
echo "diff_ret=$diff_ret" >> $GITHUB_ENV
|
echo "diff_ret=$diff_ret" >> $GITHUB_ENV
|
||||||
|
cat abipkgdiff.out
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
path: abipkgdiff.out
|
||||||
- run: |
|
- run: |
|
||||||
# Check if no changes are needed
|
# Check if no changes are needed
|
||||||
if [ "$diff_ret" -ne 0 ]; then
|
if [ "$diff_ret" -ne 0 ]; then
|
||||||
|
118
.github/workflows/check.yml
vendored
118
.github/workflows/check.yml
vendored
@ -1,21 +1,107 @@
|
|||||||
on: [pull_request]
|
on: [pull_request]
|
||||||
name: Check Irssi
|
name: Check Irssi
|
||||||
|
env:
|
||||||
|
apt_build_deps: libutf8proc-dev libperl-dev libotr5-dev
|
||||||
|
apt_build_deps_meson: ninja-build
|
||||||
|
apt_build_deps_autotools: autoconf automake libtool
|
||||||
|
get_pip_build_deps_meson: pip3 install setuptools; pip3 install wheel; pip3 install meson${meson_ver:+==${meson_ver}}
|
||||||
|
build_options_meson: -Dwith-proxy=yes -Dwith-bot=yes -Dwith-perl=yes -Dwith-otr=yes
|
||||||
|
build_options_configure: --with-proxy=module --with-bot --with-perl=module --with-otr=module
|
||||||
|
prefix: ~/irssi-build
|
||||||
jobs:
|
jobs:
|
||||||
install:
|
dist:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: prepare required software
|
||||||
- name: install
|
run: |
|
||||||
uses: irssi-import/actions-irssi/check-irssi@master
|
sudo apt install $apt_build_deps $apt_build_deps_autotools
|
||||||
with:
|
- uses: actions/checkout@main
|
||||||
args: before_install install
|
- name: make dist
|
||||||
- name: unit_tests
|
run: |
|
||||||
uses: irssi-import/actions-irssi/check-irssi@master
|
# make dist
|
||||||
with:
|
./autogen.sh $build_options_configure
|
||||||
args: unit_tests after_unit_tests
|
make dist
|
||||||
- name: script
|
- uses: actions/upload-artifact@v2
|
||||||
uses: irssi-import/actions-irssi/check-irssi@master
|
with:
|
||||||
env:
|
path: irssi-*.tar.gz
|
||||||
TERM: xterm
|
retention-days: 1
|
||||||
with:
|
install:
|
||||||
args: before_script script after_script
|
runs-on: ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.compiler }}
|
||||||
|
needs: dist
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-16.04, ubuntu-latest]
|
||||||
|
builder: [meson, configure]
|
||||||
|
compiler: [clang, gcc]
|
||||||
|
include:
|
||||||
|
- os: ubuntu-16.04
|
||||||
|
builder: meson
|
||||||
|
meson_ver: 0.49.2
|
||||||
|
steps:
|
||||||
|
- name: fetch dist
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
- name: set PATH
|
||||||
|
run: |
|
||||||
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
|
- name: prepare required software
|
||||||
|
env:
|
||||||
|
meson_ver: ${{ matrix.meson_ver }}
|
||||||
|
run: |
|
||||||
|
sudo apt install $apt_build_deps $apt_build_deps_${{ matrix.builder }}
|
||||||
|
eval "$get_pip_build_deps_${{ matrix.builder }}"
|
||||||
|
curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl
|
||||||
|
- name: unpack archive
|
||||||
|
run: tar xaf artifact/irssi-*.tar.gz
|
||||||
|
- name: build and install with meson
|
||||||
|
run: |
|
||||||
|
# ninja install
|
||||||
|
cd irssi-*/
|
||||||
|
meson Build $build_options_meson --prefix=${prefix/\~/~}
|
||||||
|
ninja -C Build
|
||||||
|
ninja -C Build install
|
||||||
|
if: ${{ matrix.builder == 'meson' }}
|
||||||
|
- name: build and install with Makefile
|
||||||
|
run: |
|
||||||
|
# make install
|
||||||
|
cd irssi-*/
|
||||||
|
mkdir Build
|
||||||
|
cd Build
|
||||||
|
../configure $build_options_configure --prefix=${prefix/\~/~} --enable-always-build-tests
|
||||||
|
make CFLAGS="-Wall -Werror -Werror=declaration-after-statement"
|
||||||
|
make install
|
||||||
|
if: ${{ matrix.builder == 'configure' }}
|
||||||
|
- name: run tests with Makefile
|
||||||
|
run: |
|
||||||
|
# make check
|
||||||
|
cd irssi-*/Build
|
||||||
|
make -C tests -sk check
|
||||||
|
find -name test-suite.log -exec cat {} +
|
||||||
|
if: ${{ matrix.builder == 'configure' }}
|
||||||
|
- name: run tests with Meson
|
||||||
|
run: |
|
||||||
|
# ninja test
|
||||||
|
cd irssi-*/
|
||||||
|
ninja -C Build test
|
||||||
|
find -name testlog.txt -exec sed -i -e '/Inherited environment:.* GITHUB/d' {} + -exec cat {} +
|
||||||
|
if: ${{ matrix.builder == 'meson' }}
|
||||||
|
- name: run launch test
|
||||||
|
env:
|
||||||
|
TERM: xterm
|
||||||
|
run: |
|
||||||
|
# automated irssi launch test
|
||||||
|
cd
|
||||||
|
mkdir irssi-test
|
||||||
|
echo 'echo automated irssi launch test
|
||||||
|
^set settings_autosave off
|
||||||
|
^set -clear log_close_string
|
||||||
|
^set -clear log_day_changed
|
||||||
|
^set -clear log_open_string
|
||||||
|
^set log_timestamp *
|
||||||
|
^window log on' > irssi-test/startup
|
||||||
|
echo load perl >> irssi-test/startup
|
||||||
|
echo load proxy >> irssi-test/startup
|
||||||
|
echo ^quit >> irssi-test/startup
|
||||||
|
irssi-build/bin/irssi --home irssi-test | ~/render.pl
|
||||||
|
cat irc.log.*
|
||||||
|
Loading…
Reference in New Issue
Block a user