[tests] debug #417
This file contains 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-musl-x86_64: | |
runs-on: ubuntu-latest | |
container: | |
image: tstack/lnav-build:latest | |
options: --platform linux/amd64 | |
env: | |
LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-linux-musl-x86_64.zip | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- 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@v3 | |
with: | |
# Artifact name | |
name: lnav-linux-musl-x86_64.zip | |
# A file, directory or wildcard pattern that describes what to upload | |
path: lbuild/src/lnav | |
- name: Upload musl-binary archive | |
uses: actions/upload-release-asset@v1.0.2 | |
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@v3 | |
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/upload-release-asset@v1.0.2 | |
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: | |
runs-on: macos-12 | |
env: | |
LNAV_BASENAME: lnav-${{ inputs.lnav_version_number }} | |
LNAV_ZIPNAME: lnav-${{ inputs.lnav_version_number }}-x86_64-macos.zip | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: install packages | |
run: brew install pcre2 sqlite ncurses xz zstd readline libarchive curl autoconf automake | |
- name: autogen | |
run: ./autogen.sh | |
- name: configure | |
run: >- | |
./configure --enable-static \ | |
--with-libcurl=/usr \ | |
--with-pcre2=$(brew --prefix pcre2) \ | |
--with-sqlite3=$(brew --prefix sqlite3) \ | |
"CXXFLAGS=-I$(brew --prefix ncurses)/include -g2 -O2" \ | |
'CFLAGS=-O2 -g2' \ | |
"LDFLAGS=-L$(brew --prefix ncurses)/lib -L$(brew --prefix xz)/lib -L$(brew --prefix zstd)/lib/" \ | |
--with-readline=$(brew --prefix readline) \ | |
--with-libarchive=$(brew --prefix libarchive) \ | |
"LIBS=-llzma -lzstd -liconv -llz4" | |
- 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@v3 | |
if: ${{ always() }} | |
with: | |
# Artifact name | |
name: lnav-macos-x86_64.zip | |
# A file, directory or wildcard pattern that describes what to upload | |
path: | | |
config.log | |
src/lnav | |
- name: Upload macos archive | |
uses: actions/upload-release-asset@v1.0.2 | |
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 |