[log] show invalid utf hex dump in log view too #1387
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: bins | |
| on: | |
| push: | |
| branches: | |
| - master | |
| paths-ignore: | |
| - 'docs/**' | |
| - 'test/**' | |
| - README.md | |
| - NEWS.md | |
| - .github/actions/muslbuilder/Dockerfile | |
| - .github/actions/muslbuilder/entrypoint.sh | |
| - .github/workflows/musl-build-image.yml | |
| - '.github/ISSUE_TEMPLATE/**' | |
| workflow_call: | |
| inputs: | |
| lnav_version_number: | |
| description: The version number of the release | |
| required: false | |
| type: string | |
| upload_url: | |
| description: The URL to upload release assets | |
| required: false | |
| type: string | |
| jobs: | |
| build-linux-musl: | |
| strategy: | |
| matrix: | |
| include: | |
| - runs-on: ubuntu-latest | |
| arch: x86_64 | |
| platform: linux/amd64 | |
| - runs-on: ubuntu-22.04-arm | |
| arch: arm64 | |
| platform: linux/arm64 | |
| runs-on: ${{ matrix.runs-on }} | |
| container: | |
| image: tstack/lnav-build:latest | |
| options: --platform ${{ matrix.platform }} | |
| volumes: | |
| - /opt:/opt:rw,rshared | |
| - /opt:/__e/node20:ro,rshared | |
| env: | |
| LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
| LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-linux-musl-${{ matrix.arch }}.zip | |
| steps: | |
| - name: Patch native Alpine NodeJS into Runner environment | |
| if: runner.os == 'Linux' | |
| run: | | |
| sed -i "s:ID=alpine:ID=NotpineForGHA:" /etc/os-release | |
| apk add nodejs --update-cache | |
| mkdir /opt/bin | |
| ln -s /usr/bin/node /opt/bin/node | |
| shell: sh # No bash in Alpine by default | |
| - name: checkout | |
| uses: actions/checkout@v3 | |
| - name: list | |
| run: find /fake.root | |
| - name: make | |
| run: /entrypoint.sh | |
| - name: Build musl package | |
| if: ${{ inputs.lnav_version_number != '' }} | |
| run: >- | |
| mkdir ${{ env.LNAV_BASENAME }} && | |
| cd ${{ env.LNAV_BASENAME }} && | |
| cp ../NEWS.md ../README ../lnav.1 . && | |
| cp ../lbuild/src/lnav . && | |
| cd .. && | |
| zip -r ${{ env.LNAV_ZIPNAME }} ${{ env.LNAV_BASENAME }} | |
| - name: Upload a Build Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| # Artifact name | |
| name: lnav-linux-musl-${{ matrix.arch }}.zip | |
| # A file, directory or wildcard pattern that describes what to upload | |
| path: lbuild/src/lnav | |
| - name: Upload musl-binary archive | |
| uses: actions/[email protected] | |
| if: ${{ inputs.upload_url != '' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ inputs.upload_url }} | |
| asset_path: ${{ env.LNAV_ZIPNAME }} | |
| asset_name: ${{ env.LNAV_ZIPNAME }} | |
| asset_content_type: application/octet-stream | |
| build-arm: | |
| runs-on: ubuntu-latest | |
| if: false | |
| strategy: | |
| matrix: | |
| include: | |
| - container-platform: linux/arm/v7 | |
| arch: armv7l | |
| - container-platform: linux/arm64 | |
| arch: aarch64 | |
| env: | |
| LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
| LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-linux-musl-${{ matrix.arch }}.zip | |
| LNAV_ARTIFACT: lnav-linux-musl-${{ matrix.arch }}.zip | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v3 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v2 | |
| - name: make | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: tstack/lnav-build:latest | |
| options: -v ${{ github.workspace }}:/lnav -e GITHUB_WORKSPACE=/lnav --platform ${{ matrix.container-platform }} | |
| run: /entrypoint.sh | |
| - name: Build musl package | |
| if: ${{ inputs.lnav_version_number != '' }} | |
| run: >- | |
| cd ${{ github.workspace }} && | |
| mkdir ${{ env.LNAV_BASENAME }} && | |
| cd ${{ env.LNAV_BASENAME }} && | |
| cp ../NEWS.md ../README ../lnav.1 . && | |
| cp ../lbuild/src/lnav . && | |
| cd .. && | |
| zip -r ${{ env.LNAV_ZIPNAME }} ${{ env.LNAV_BASENAME }} | |
| - name: Upload a Build Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| # Artifact name | |
| name: ${{ env.LNAV_ARTIFACT }} | |
| # A file, directory or wildcard pattern that describes what to upload | |
| path: ${{ github.workspace }}/lbuild/src/lnav | |
| - name: Upload musl-binary archive | |
| uses: actions/[email protected] | |
| if: ${{ inputs.upload_url != '' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ inputs.upload_url }} | |
| asset_path: ${{ github.workspace }}/${{ env.LNAV_ZIPNAME }} | |
| asset_name: ${{ env.LNAV_ZIPNAME }} | |
| asset_content_type: application/octet-stream | |
| build-macos: | |
| strategy: | |
| matrix: | |
| include: | |
| - runs-on: macos-14 | |
| arch: aarch64 | |
| runs-on: ${{ matrix.runs-on }} | |
| env: | |
| LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
| LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-${{ matrix.arch }}-macos.zip | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v3 | |
| - name: install packages | |
| run: brew install pcre2 sqlite xz zstd lz4 libarchive curl autoconf automake libunistring | |
| - name: autogen | |
| run: ./autogen.sh | |
| - name: configure | |
| run: >- | |
| ./configure --enable-static \ | |
| --with-libcurl=/usr \ | |
| --with-pcre2=$(brew --prefix pcre2) \ | |
| --with-sqlite3=$(brew --prefix sqlite3) \ | |
| "CPPFLAGS=-I$(brew --prefix libunistring)/include" \ | |
| "CXXFLAGS=-g2 -O3" \ | |
| 'CFLAGS=-O3 -g2' \ | |
| "LDFLAGS=-L$(brew --prefix xz)/lib -L$(brew --prefix zstd)/lib/ -L$(brew --prefix lz4)/lib/ -L$(brew --prefix libunistring)/lib" \ | |
| --with-libarchive=$(brew --prefix libarchive) \ | |
| "LIBS=-llzma -lexpat -lzstd -liconv -llz4 -lbz2 -lz -lpcre2-8" | |
| - name: make | |
| run: make -j2 | |
| - name: Build macos package | |
| if: ${{ inputs.lnav_version_number != '' }} | |
| run: >- | |
| mkdir ${{ env.LNAV_BASENAME }} && | |
| cd ${{ env.LNAV_BASENAME }} && | |
| cp ../NEWS.md ../README ../lnav.1 . && | |
| cp ../src/lnav . && | |
| cd .. && | |
| zip -r ${{ env.LNAV_ZIPNAME }} ${{ env.LNAV_BASENAME }} | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ always() }} | |
| with: | |
| # Artifact name | |
| name: lnav-macos-${{ matrix.arch }}.zip | |
| # A file, directory or wildcard pattern that describes what to upload | |
| path: | | |
| config.log | |
| src/lnav | |
| - name: Upload macos archive | |
| uses: actions/[email protected] | |
| if: ${{ inputs.upload_url != '' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ inputs.upload_url }} | |
| asset_path: ${{ env.LNAV_ZIPNAME }} | |
| asset_name: ${{ env.LNAV_ZIPNAME }} | |
| asset_content_type: application/octet-stream | |
| build-windows: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { icon: "🟦", sys: MSYS, arch: x86_64 } | |
| - { icon: "🟦", sys: MSYS, arch: arm64 } | |
| name: ${{ matrix.icon }} ${{ matrix.sys }} ${{ matrix.arch }} | |
| env: | |
| LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
| LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-windows-${{ matrix.arch }}.zip | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - name: "🧰 Checkout" | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| # Install Rust using moonrepo/setup-rust | |
| - name: Setup Rust | |
| uses: moonrepo/setup-rust@v1 | |
| with: | |
| rust-version: stable | |
| - 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/libsqlite-devel | |
| msys/libunistring-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/${{ env.LNAV_BASENAME }} | |
| touch config.log | |
| # Corrected CPPFLAGS with proper source directory paths | |
| ../lnav/configure \ | |
| --enable-static \ | |
| LDFLAGS="-static" \ | |
| CPPFLAGS="-O3" \ | |
| CXXFLAGS="-fPIC" \ | |
| CFLAGS="-fPIC" \ | |
| LIBS="-larchive -lssh2 -llzma -lexpat -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 | |
| pwd | |
| ls -la | |
| cd ../lnav-build | |
| pwd | |
| ls -la | |
| ls -l Makefile | |
| make CFLAGS="-c" | |
| strip -s src/lnav.exe | |
| - name: "📦 Package for distribution" | |
| run: | | |
| set -x | |
| cd ../lnav-build | |
| export PREFIX=$PWD/${{ env.LNAV_BASENAME }} | |
| mkdir -p $PREFIX | |
| make install | |
| cp ../lnav/release/signed-msys-2.0.dll.gz $PREFIX/bin/msys-2.0.dll.gz | |
| gunzip $PREFIX/bin/msys-2.0.dll.gz | |
| cp ../lnav/README ../lnav/NEWS.md . | |
| mkdir ../lnav/bin | |
| cp $PREFIX/bin/* ../lnav/bin/ | |
| - name: "💉 Basic test" | |
| if: false | |
| run: | | |
| set -x | |
| cd ../lnav-build | |
| export PREFIX=$PWD/${{ env.LNAV_BASENAME }} | |
| $PREFIX/bin/lnav.exe -n ../lnav/test/logfile_multiline.0 | |
| - name: upload-unsigned-artifact | |
| id: upload-unsigned-artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lnav-windows-${{ matrix.arch }}.zip | |
| # path: ${{ env.LNAV_ZIPNAME }} | |
| path: | | |
| bin/lnav.exe | |
| bin/msys-2.0.dll | |
| README | |
| NEWS.md | |
| if-no-files-found: error | |
| - name: sign | |
| if: ${{ inputs.upload_url != '' }} | |
| uses: signpath/[email protected] | |
| env: | |
| # select release-signing policy for main and release branches | |
| SIGNPATH_SIGNING_POLICY_SLUG: | | |
| ${{ ((inputs.lnav_version_number != '') | |
| && 'release-signing') | |
| || 'test-signing' }} | |
| with: | |
| api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
| organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' | |
| project-slug: 'lnav' | |
| signing-policy-slug: '${{ env.SIGNPATH_SIGNING_POLICY_SLUG }}' | |
| github-artifact-id: "${{steps.upload-unsigned-artifact.outputs.artifact-id}}" | |
| wait-for-completion: true | |
| output-artifact-directory: 'lnav-signed' | |
| - name: upload-signed-artifact | |
| id: upload-signed-artifact | |
| if: ${{ inputs.upload_url != '' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lnav-signed-windows-${{ matrix.arch }}.zip | |
| path: "lnav-signed" | |
| if-no-files-found: error | |
| - name: "Produce zip" | |
| if: ${{ inputs.upload_url != '' }} | |
| run: | | |
| set -x | |
| cp lnav-signed/bin/* ../lnav-build/${{ env.LNAV_BASENAME }}/bin/ | |
| cd ../lnav-build | |
| zip -r ../lnav/${{ env.LNAV_ZIPNAME }} ${{ env.LNAV_BASENAME }} | |
| - name: Upload windows archive | |
| uses: actions/[email protected] | |
| if: ${{ inputs.upload_url != '' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ inputs.upload_url }} | |
| asset_path: ${{ env.LNAV_ZIPNAME }} | |
| asset_name: ${{ env.LNAV_ZIPNAME }} | |
| asset_content_type: application/octet-stream |