diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 19eabc477d..2b4a8ccc9c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -266,6 +266,12 @@ jobs: "${SRCDIR}"/vim --version "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit + if ${{ matrix.features == 'huge' }}; then + # Also check that optional and dynamic features are configured and working + "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \ + -c "let g:required=['gettext', 'sodium', 'sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \ + -S ci/if_feat_check.vim -c quit + fi - name: Test if: matrix.architecture != 'arm64' @@ -392,6 +398,12 @@ jobs: "${SRCDIR}"/vim --version "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit + if ${{ matrix.features == 'huge' }}; then + # Also check that optional and dynamic features are configured and working + "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \ + -c "let g:required=['sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \ + -S ci/if_feat_check.vim -c quit + fi - name: Install packages for testing run: | @@ -663,6 +675,11 @@ jobs: src\vim --version || exit 1 src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit + if "${{ matrix.features }}"=="HUGE" ( + src\vim -u NONE -i NONE --not-a-term -esNX -V1 ^ + -c "let g:required=['gettext', 'sodium', 'sound', 'python3', 'lua']" ^ + -S ci/if_feat_check.vim -c quit + ) ) #- name: Prepare Artifact diff --git a/Filelist b/Filelist index 7302788fea..4067df5081 100644 --- a/Filelist +++ b/Filelist @@ -23,6 +23,7 @@ SRC_ALL = \ ci/appveyor.bat \ ci/config.mk*.sed \ ci/if_ver*.vim \ + ci/if_feat_check.vim \ ci/setup-xvfb.sh \ ci/remove_snap.sh \ src/Make_all.mak \ diff --git a/ci/if_feat_check.vim b/ci/if_feat_check.vim new file mode 100644 index 0000000000..f846f7cbf8 --- /dev/null +++ b/ci/if_feat_check.vim @@ -0,0 +1,15 @@ +if 1 " This prevents it from being run in tiny versions + " Check for required features + if exists("g:required") + for feature in g:required + if !has(feature) + echo "Error: Feature '" .. feature .. "' not found" + echo '' + cquit + endif + endfor + echo "\nChecked features: " .. string(g:required) + echo '' + endif +endif +" vim: sts=2 sw=2 et diff --git a/ci/if_ver-1.vim b/ci/if_ver-1.vim index adc40a7cb0..397c05a456 100644 --- a/ci/if_ver-1.vim +++ b/ci/if_ver-1.vim @@ -1,6 +1,6 @@ -" Print all interface versions for Ubuntu. Part 1. +" Print all interface versions. Part 1. -if 1 +if 1 " This prevents it from being run in tiny versions execute 'source' expand(':h') .. '/if_ver-cmd.vim' echo "*** Interface versions ***\n" diff --git a/ci/if_ver-2.vim b/ci/if_ver-2.vim index 83e80e48ff..f717ec1e56 100644 --- a/ci/if_ver-2.vim +++ b/ci/if_ver-2.vim @@ -1,6 +1,8 @@ -" Print py3 interface versions for Ubuntu. Part 2. +" Print py3 interface versions. Part 2. +" This is done separately from part 1 because Vim cannot concurrently load +" Python 2 and 3 together. -if 1 +if 1 " This prevents it from being run in tiny versions execute 'source' expand(':h') .. '/if_ver-cmd.vim' echo 'Python 3:'