Since, git aspires to support many PCRE2 versions, it is only sensible to test changes to git against versions of PCRE2 that are deemed to be notable, to ensure those changes to git don't cause regressions when using the aforementioned PCRE2 versions. This is underscored by the fact that, commit ae39ba431a (grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data, 2021-10-15) was able to make it's way to master while causing an otherwise easy to catch regression when an older version of PCRE2 is used. So, to address this issue, add a job for PCRE2 to build all of the notable versions, compile all of them against git and only run the tests that can possibly be impacted by PCRE2. Suggested-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> Signed-off-by: Hamza Mahfooz <someguy@xxxxxxxxxxxxxxxxxxx> --- .github/workflows/main.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6ed6a9e807..ae96fc0251 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -319,3 +319,29 @@ jobs: - uses: actions/checkout@v2 - run: ci/install-dependencies.sh - run: ci/test-documentation.sh + pcre2: + needs: ci-config + if: needs.ci-config.outputs.enabled == 'yes' + strategy: + fail-fast: false + matrix: + jit: ['--enable-jit', '--disable-jit'] + utf: ['--enable-utf', '--disable-utf'] + version: [31, 34, 36, 39] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/checkout@v2 + with: + repository: 'PhilipHazel/pcre2' + path: 'compat/pcre2-repo' + - run: ci/install-dependencies.sh + - run: cd compat/pcre2-repo + - run: git checkout pcre2-10.${{matrix.version}} + - run: ./autogen.sh + - run: ./configure ${{matrix.jit}} ${{matrix.utf}} --prefix="$PWD/inst" + - run: make + - run: sudo make install + - run: cd ../.. + - run: make USE_LIBPCRE=Y CFLAGS=-O3 LIBPCREDIR="$PWD/compat/pcre2-repo/inst" + - run: cd t && make *{grep,log,pickaxe}* -- 2.34.0