summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md17
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.md20
-rw-r--r--.github/mlc_config.json10
-rw-r--r--.github/workflows/c-cpp.yml191
-rw-r--r--.github/workflows/check-md-links.yml12
-rw-r--r--.github/workflows/coverity.yml48
-rw-r--r--.github/workflows/tailer-ape.yml33
7 files changed, 331 insertions, 0 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..8c8cc0a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,17 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**lnav version**
+v0.11.0 is the latest
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..11fc491
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: enhancement
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/mlc_config.json b/.github/mlc_config.json
new file mode 100644
index 0000000..be01fdb
--- /dev/null
+++ b/.github/mlc_config.json
@@ -0,0 +1,10 @@
+{
+ "ignorePatterns": [
+ {
+ "pattern": "^/assets"
+ },
+ {
+ "pattern": "^https://archive.org"
+ }
+ ]
+} \ No newline at end of file
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
new file mode 100644
index 0000000..af9bdbf
--- /dev/null
+++ b/.github/workflows/c-cpp.yml
@@ -0,0 +1,191 @@
+name: ci-build
+
+on:
+ push:
+ branches: [ master ]
+ tags: ['*']
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ coverage:
+ runs-on: self-hosted
+ steps:
+ - uses: actions/checkout@v2
+# - 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@v2
+ - name: Update apt
+ run: sudo apt-get update
+ - name: Install packages
+ run: >-
+ sudo apt-get install -y
+ make
+ automake
+ autoconf
+ g++
+ libpcre2-dev
+ libpcre3-dev
+ libncurses-dev
+ libsqlite3-dev
+ libbz2-dev
+ libcurl4-openssl-dev
+ libreadline-dev
+ tshark
+ zlib1g-dev
+ - 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@v2
+ 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@v2
+ 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" \
+ --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@v2
+ 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
diff --git a/.github/workflows/check-md-links.yml b/.github/workflows/check-md-links.yml
new file mode 100644
index 0000000..f55b468
--- /dev/null
+++ b/.github/workflows/check-md-links.yml
@@ -0,0 +1,12 @@
+name: Check Markdown links
+
+on: push
+
+jobs:
+ markdown-link-check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@master
+ - uses: gaurav-nelson/github-action-markdown-link-check@v1
+ with:
+ config-file: '.github/mlc_config.json'
diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
new file mode 100644
index 0000000..9f4ef4d
--- /dev/null
+++ b/.github/workflows/coverity.yml
@@ -0,0 +1,48 @@
+# GitHub actions workflow.
+# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
+
+name: Coverity Scan
+
+on:
+ push:
+ branches: [ main ]
+
+ schedule:
+ # The GH mirroring from Google GoB does not trigger push actions.
+ # Fire it once a week to provide some coverage.
+ - cron: '39 2 * * WED'
+
+ # Allow for manual triggers from the web.
+ workflow_dispatch:
+
+jobs:
+ coverity:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Update apt
+ run: sudo apt-get update
+ - name: Install packages
+ run: >-
+ sudo apt-get install -y
+ make
+ automake
+ autoconf
+ g++
+ libpcre3-dev
+ libncurses-dev
+ libsqlite3-dev
+ libbz2-dev
+ libcurl4-openssl-dev
+ libreadline-dev
+ tshark
+ zlib1g-dev
+ - name: autogen
+ run: ./autogen.sh
+ - name: configure
+ run: ./configure --disable-static
+ - uses: vapier/coverity-scan-action@v1
+ with:
+ command: make -j$(getconf _NPROCESSORS_CONF)
+ email: ${{ secrets.COVERITY_SCAN_EMAIL }}
+ token: ${{ secrets.COVERITY_SCAN_TOKEN }} \ No newline at end of file
diff --git a/.github/workflows/tailer-ape.yml b/.github/workflows/tailer-ape.yml
new file mode 100644
index 0000000..52c65e4
--- /dev/null
+++ b/.github/workflows/tailer-ape.yml
@@ -0,0 +1,33 @@
+name: tailer-ape
+
+on:
+ push:
+ branches: [ master ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: update apt
+ run: sudo apt-get update
+ - name: Install packages
+ run: >-
+ wget https://github.com/tstack/cosmopolitan/releases/download/v1.0stack/cosmopolitan-amalgamation-1.0-stack.zip &&
+ unzip cosmopolitan-amalgamation-1.0-stack.zip
+ - name: Build
+ run: >-
+ gcc -g -Os -static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zone
+ -fno-omit-frame-pointer -pg -mnop-mcount
+ -o tailer.dbg -I src/tailer
+ src/tailer/tailer.main.c src/tailer/tailer.c src/tailer/sha-256.c
+ -fuse-ld=bfd -Wl,-T,ape.lds
+ -include cosmopolitan.h crt.o ape.o cosmopolitan.a
+ - name: Objcopy
+ run: objcopy -S -O binary tailer.dbg src/tailer/tailer.ape
+ - uses: stefanzweifel/git-auto-commit-action@v4
+ with:
+ # Optional, but recommended
+ # Defaults to "Apply automatic changes"
+ commit_message: Update tailer
+ file_pattern: src/tailer/tailer.ape