mirror of
https://github.com/stedolan/jq.git
synced 2024-05-11 05:55:39 +00:00
Merge old jqlang/jq master to the latest (#2596)
* Try making some GitHub Actions * GHA: Add OS X, Windows, and Linux w/ scan-build builds * Add link to discord server Add link to discord server * Update Ubuntu to 22.04 for GitHub Actions * Remove if condition for Ubuntu build * Fix MacOS OS on GitHub Actions * Fix python3 package on GitHub Actions * Disalbe valgrind Getting failed tests: https://github.com/jqlang/jq/actions/runs/5113866588/jobs/9193542140#step:9:341 * Format file * Fix macos build * Fix syntax errors of windows build https://github.com/jqlang/jq/actions/runs/5114162556/workflow * Install windows package with choco * Pin oniguruma to 5a24a49d710a9e3bb8ff11d12e1eae5a9f9df40c MacOS build [fails](https://github.com/jqlang/jq/actions/runs/5114162555/jobs/9194126677#step:6:3160) due to ``` posix.c:94:3: error: implicit declaration of function 'onig_end' is invalid in C99 [-Werror,-Wimplicit-function-declaration] onig_end(); ``` The current `oniguruma` revision 6fa38f4084b448592888ed9ee43c6e90a46b5f5c (15 Mar 2017) lacks the following explicit declaration in src/onigposix.h: ``` ONIG_EXTERN int onig_end P_((void)); ``` This was added to oniguruma in revision 5a24a49d710a9e3bb8ff11d12e1eae5a9f9df40c (8 Sep 2017). Ref: https://github.com/jqlang/jq/issues/2381 * Revert windows build to use pacman * Don't zip jq.exe * Fixing windows build * Update .gitattriutes for eol on Windows * Skip workflow_dispatch for windows build * Clean up builds * Use LF line endings for all text Ref: https://github.com/actions/checkout/issues/135 * Fix test that has rounding error https://github.com/jqlang/jq/pull/2596#issuecomment-1568498993 * Enable CI for all --------- Co-authored-by: Nicolas Williams <nico@cryptonector.com>
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1,2 +1,3 @@
|
||||
.gitattributes export-ignore
|
||||
.gitignore export-ignore
|
||||
* text=auto eol=lf
|
||||
|
70
.github/workflows/linux.yml
vendored
Normal file
70
.github/workflows/linux.yml
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
name: Linux Build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name: [linux-clang, linux-gcc]
|
||||
include:
|
||||
- name: linux-clang
|
||||
os: ubuntu-22.04
|
||||
compiler: clang
|
||||
cflags: ''
|
||||
- name: linux-gcc
|
||||
os: ubuntu-22.04
|
||||
compiler: gcc
|
||||
cflags: '-Wnonnull'
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install packages
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y \
|
||||
automake \
|
||||
autoconf \
|
||||
bison \
|
||||
flex \
|
||||
gdb \
|
||||
python3 \
|
||||
valgrind
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
autoreconf -fi
|
||||
rm src/lexer.c src/lexer.h
|
||||
rm src/parser.c src/parser.h
|
||||
./configure --disable-valgrind --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE
|
||||
make -j4
|
||||
make dist
|
||||
- name: Test
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
ulimit -c unlimited
|
||||
make -j4 check
|
||||
- name: Upload Test Logs
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-logs
|
||||
path: |
|
||||
test-suite.log
|
||||
tests/*.log
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jq-${{ matrix.name }}
|
||||
path: |
|
||||
jq
|
62
.github/workflows/macos.yml
vendored
Normal file
62
.github/workflows/macos.yml
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
name: MacOS Build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
jobs:
|
||||
macos:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name: [macos-12-clang, macos-13-clang]
|
||||
include:
|
||||
- name: macos-12-clang
|
||||
os: macos-12
|
||||
compiler: clang
|
||||
- name: macos-13-clang
|
||||
os: macos-13
|
||||
compiler: clang
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install packages
|
||||
run: |
|
||||
brew update
|
||||
brew install autoconf automake libtool flex bison python3
|
||||
sed -i.bak '/^AM_INIT_AUTOMAKE(\[-Wno-portability 1\.14\])$/s/14/11/' modules/oniguruma/configure.ac
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
autoreconf -fi
|
||||
rm src/lexer.c src/lexer.h
|
||||
rm src/parser.c src/parser.h
|
||||
./configure --disable-valgrind --with-oniguruma=builtin YACC="$(brew --prefix)/opt/bison/bin/bison -y" $COVERAGE
|
||||
make -j4
|
||||
make dist
|
||||
- name: Test
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
ulimit -c unlimited
|
||||
make -j4 check
|
||||
- name: Upload Test Logs
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-logs
|
||||
path: |
|
||||
test-suite.log
|
||||
tests/*.log
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jq-${{ matrix.name }}
|
||||
path: |
|
||||
jq
|
77
.github/workflows/scanbuild.yml
vendored
Normal file
77
.github/workflows/scanbuild.yml
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
name: Linux Clang scan-build Static Analyzer Build
|
||||
|
||||
on:
|
||||
# Don't do this for PRs. It eats up minutes.
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'scan-build'
|
||||
paths:
|
||||
- '.github/workflows/scanbuild.yml'
|
||||
|
||||
jobs:
|
||||
unix:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name: [linux-clang]
|
||||
include:
|
||||
- name: linux-clang
|
||||
os: ubuntu-18.04
|
||||
compiler: clang
|
||||
cflags: ''
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v1
|
||||
- name: Open Submodule(s)
|
||||
run: |
|
||||
git submodule update --init --recursive
|
||||
- name: Install packages
|
||||
if: startsWith(matrix.os, 'ubuntu')
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y automake autoconf bison flex gdb python valgrind clang-tools
|
||||
- name: Prep
|
||||
run: |
|
||||
#pyenv global 3.6.7
|
||||
#pip3 install pipenv
|
||||
#(cd docs && pipenv sync)
|
||||
#if [ -n "$COVERAGE" ]; then pip install --user cpp-coveralls; fi
|
||||
echo SHELL=$SHELL
|
||||
echo PATH=$PATH
|
||||
which bison
|
||||
bison --version
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
autoreconf -fi
|
||||
rm src/lexer.c src/lexer.h
|
||||
rm src/parser.c src/parser.h
|
||||
./configure --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE
|
||||
scan-build --keep-going make -j4
|
||||
- name: Test
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
MAKEVARS: ${{ matrix.makevars }}
|
||||
run: |
|
||||
ulimit -c unlimited
|
||||
scan-build --keep-going make -j4 check
|
||||
- name: Core dump stacks
|
||||
run: |
|
||||
echo "thread apply all bt" > /tmp/x
|
||||
find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
|
||||
if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
|
||||
- name: Test logs
|
||||
if: ${{ failure() }}
|
||||
run: |
|
||||
cat test-suite.log
|
||||
cat tests/*.log
|
||||
- name: Upload Logs
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Scan-Build Reports
|
||||
path: '/tmp/scan-build*/'
|
45
.github/workflows/windows.yml
vendored
Normal file
45
.github/workflows/windows.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
name: Windows Build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
update: true
|
||||
install: >-
|
||||
base-devel
|
||||
git
|
||||
clang
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
p7zip
|
||||
- shell: msys2 {0}
|
||||
run: |
|
||||
autoreconf -fiv
|
||||
./configure --disable-valgrind --with-oniguruma=builtin --disable-shared --enable-static --enable-all-static
|
||||
make -j4
|
||||
make SUBDIRS= "TESTS=tests/mantest tests/jqtest tests/onigtest tests/base64test" check
|
||||
- name: Upload Test Logs
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-logs
|
||||
path: |
|
||||
test-suite.log
|
||||
tests/*.log
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jq-windows
|
||||
path: |
|
||||
jq.exe
|
@ -72,4 +72,8 @@ cross-compilation environment. See also
|
||||
["Cross compilation"](https://github.com/jqlang/jq/wiki/Cross-compilation) on
|
||||
the wiki.
|
||||
|
||||
Send questions to https://stackoverflow.com/questions/tagged/jq or to the #jq channel (https://web.libera.chat/#jq) on Libera.Chat (https://libera.chat/).
|
||||
|
||||
# Community
|
||||
|
||||
* Send questions to https://stackoverflow.com/questions/tagged/jq.
|
||||
* Join our [Discord server](https://discord.gg/yg6yjNmgAC).
|
||||
|
Submodule modules/oniguruma updated: 6fa38f4084...5a24a49d71
@ -1565,7 +1565,7 @@ try (1%.) catch .
|
||||
jq: error: Division by zero? at <top-level>, line 1:
|
||||
|
||||
# Basic numbers tests: integers, powers of two
|
||||
[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2] == $powers
|
||||
[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2|round] == $powers
|
||||
null
|
||||
true
|
||||
|
||||
|
Reference in New Issue
Block a user