mirror of
https://github.com/tstack/lnav
synced 2024-11-09 19:10:52 +00:00
197 lines
6.2 KiB
YAML
197 lines
6.2 KiB
YAML
name: ci-build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- docs
|
|
- README.md
|
|
- NEWS.md
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
coverage:
|
|
runs-on: self-hosted
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
# - name: Update apt
|
|
# run: sudo apt-get update
|
|
# - name: Install packages
|
|
# run: sudo apt-get install libncursesw5-dev libpcre++-dev libsqlite3-dev libbz2-dev libcurl4-openssl-dev libreadline-dev zlib1g-dev lcov
|
|
# - name: install cpp-coveralls
|
|
# run: pip install --user cpp-coveralls
|
|
- name: autogen
|
|
run: ./autogen.sh
|
|
- name: configure
|
|
run: ./configure --disable-static --enable-code-coverage --enable-debug CFLAGS=-g3 CXXFLAGS=-g3
|
|
- name: make
|
|
run: make -j3
|
|
- name: make check
|
|
run: make check
|
|
- name: upload cover
|
|
env:
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
TRAVIS_JOB_ID: ${{ github.run_id }}-${{ github.run_number }}
|
|
run: >-
|
|
coveralls
|
|
--exclude src/doctest.hh
|
|
--exclude src/fmtlib
|
|
--exclude src/ghc
|
|
--exclude src/k_merge_tree.h
|
|
--exclude src/mapbox
|
|
--exclude src/pugixml
|
|
--exclude src/base/result.h
|
|
--exclude src/safe
|
|
--exclude src/spookyhash
|
|
--exclude src/third-party
|
|
--exclude src/ww898
|
|
--exclude src/yajl
|
|
--exclude test
|
|
--exclude src/data_scanner_re.cc
|
|
--gcov-options '\-lp'
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Update apt
|
|
run: sudo apt-get update
|
|
- name: Install packages
|
|
run: >-
|
|
sudo apt-get install -y
|
|
make
|
|
automake
|
|
autoconf
|
|
g++
|
|
libpcre2-dev
|
|
libncurses-dev
|
|
libsqlite3-dev
|
|
libbz2-dev
|
|
libcurl4-openssl-dev
|
|
libreadline-dev
|
|
pipx
|
|
tshark
|
|
zlib1g-dev
|
|
- name: Install python packages
|
|
run: pipx install check-jsonschema
|
|
- name: autogen
|
|
run: ./autogen.sh
|
|
- name: configure
|
|
run: ./configure --disable-static
|
|
- name: make
|
|
run: make -j4
|
|
- name: make distcheck
|
|
run: make distcheck -j4 || (test -e lnav-*/_build/sub/src/tailer/test-suite.log && cat lnav-*/_build/sub/src/tailer/test-suite.log && false) || (test -e lnav-*/_build/sub/test/test-suite.log && cat lnav-*/_build/sub/test/test-suite.log && false)
|
|
- name: Upload a Build Artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
# Artifact name
|
|
name: lnav-tot-linux-64bit.zip
|
|
# A file, directory or wildcard pattern that describes what to upload
|
|
path: src/lnav
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { icon: '🟦', sys: MSYS }
|
|
name: ${{ matrix.icon }} ${{ matrix.sys }}
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- name: '🧰 Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: '${{ matrix.icon }} Setup MSYS2'
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{matrix.sys}}
|
|
update: true
|
|
install: >-
|
|
autoconf
|
|
automake
|
|
gcc
|
|
git
|
|
make
|
|
zip
|
|
msys/libarchive-devel
|
|
msys/libbz2-devel
|
|
msys/libcurl-devel
|
|
msys/libidn2-devel
|
|
msys/liblzma-devel
|
|
msys/libreadline-devel
|
|
msys/libsqlite-devel
|
|
msys/libunistring-devel
|
|
msys/ncurses-devel
|
|
msys/pcre2-devel
|
|
msys/zlib-devel
|
|
- name: '🔧 Generate and configure'
|
|
run: |
|
|
set -x
|
|
./autogen.sh
|
|
mkdir -p ../lnav-build
|
|
cd ../lnav-build
|
|
export PREFIX=$PWD/lnav
|
|
../lnav/configure \
|
|
--enable-static \
|
|
LDFLAGS="-static" \
|
|
CPPFLAGS="-I../src -I../../lnav/src -I../../lnav/src/fmtlib -O2 -DNCURSES_STATIC" \
|
|
CXXFLAGS="-fPIC" \
|
|
CFLAGS="-fPIC" \
|
|
LIBS="-larchive -lssh2 -llzma -llz4 -lz -lzstd -lssl -lcrypto -liconv -lunistring -lbrotlicommon -lcrypt32" \
|
|
--sysconfdir=/etc \
|
|
--prefix=$PREFIX || cat config.log
|
|
- name: '🚧 Make (do not use -j)'
|
|
run: |
|
|
set -x
|
|
cd ../lnav-build
|
|
make CFLAGS="-c"
|
|
strip -s src/lnav.exe
|
|
- name: '📦 Package for distribution'
|
|
run: |
|
|
set -x
|
|
cd ../lnav-build
|
|
export PREFIX=$PWD/lnav
|
|
make install
|
|
ldd $PREFIX/bin/lnav.exe | grep /usr | cut -d' ' -f3 | xargs -I {} cp {} $PREFIX/bin/
|
|
mkdir -p lib/terminfo/78
|
|
cp -r /usr/lib/terminfo/78/xterm-256color lib/terminfo/78/
|
|
zip -r ../lnav/lnav-${{ github.ref_name }}-windows-amd64.zip lnav lib
|
|
- name: '💉 Basic test'
|
|
run: |
|
|
set -x
|
|
cd ../lnav-build
|
|
export PREFIX=$PWD/lnav
|
|
$PREFIX/bin/lnav.exe -n ../lnav/test/logfile_multiline.0
|
|
- name: '⬆️ Upload a Build Artifact'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: lnav-${{ github.ref_name }}-windows-amd64.zip
|
|
path: lnav-${{ github.ref_name }}-windows-amd64.zip
|
|
if-no-files-found: error
|
|
# - name: '🎁 Create Release'
|
|
# id: create_release
|
|
# uses: actions/create-release@v1
|
|
# env:
|
|
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# with:
|
|
# tag_name: ${{ github.ref_name }}
|
|
# release_name: Release ${{ github.ref_name }}
|
|
# draft: false
|
|
# prerelease: false
|
|
# - name: '⬆️ Upload Release Asset'
|
|
# id: upload-release-asset
|
|
# uses: actions/upload-release-asset@v1
|
|
# env:
|
|
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# with:
|
|
# upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
|
|
# asset_path: ./lnav-${{ github.ref_name }}-windows-amd64.zip
|
|
# asset_name: lnav-${{ github.ref_name }}-windows-amd64.zip
|
|
# asset_content_type: application/zip
|