diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 20:38:37 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 20:38:37 +0300 |
| commit | 25a9943d68a7dc31eeefeb17913dbe37d87e5302 (patch) | |
| tree | 540166d548cafc56726a07225f2dbe649c8e2444 /uvim/.github/workflows | |
| parent | a4b5ffbaadb591066e2a97f8d450fb1d93e56a6e (diff) | |
| download | Project-Tick-25a9943d68a7dc31eeefeb17913dbe37d87e5302.tar.gz Project-Tick-25a9943d68a7dc31eeefeb17913dbe37d87e5302.zip | |
NOISSUE Remove not needed CI workflows for GitHub Actions and reworked some workflows
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'uvim/.github/workflows')
| -rw-r--r-- | uvim/.github/workflows/ci.yml | 853 | ||||
| -rw-r--r-- | uvim/.github/workflows/codeql-analysis.yml | 76 | ||||
| -rw-r--r-- | uvim/.github/workflows/coverity.yml | 85 | ||||
| -rw-r--r-- | uvim/.github/workflows/label.yml | 22 | ||||
| -rw-r--r-- | uvim/.github/workflows/link-check.yml | 15 |
5 files changed, 0 insertions, 1051 deletions
diff --git a/uvim/.github/workflows/ci.yml b/uvim/.github/workflows/ci.yml deleted file mode 100644 index 5a3f2f6f0f..0000000000 --- a/uvim/.github/workflows/ci.yml +++ /dev/null @@ -1,853 +0,0 @@ -name: GitHub CI - -on: - push: - branches: ['**'] - pull_request: - -# Cancels all previous workflow runs for pull requests that have not completed. -concurrency: - # The concurrency group contains the workflow name and the branch name for - # pull requests or the commit hash for any other events. - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - linux: - runs-on: ${{ matrix.architecture == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - - env: - CC: ${{ matrix.compiler }} - GCC_VER: 14 - CLANG_VER: 21 - TEST: test - SRCDIR: ./src - LEAK_CFLAGS: -DEXITFREE - LOG_DIR: ${{ github.workspace }}/logs - TERM: xterm - DISPLAY: ':99' - DEBIAN_FRONTEND: noninteractive - - strategy: - fail-fast: false - matrix: - features: [tiny, normal, huge] - compiler: [clang, gcc] - extra: [[]] - # Only use non-native architecture when features != huge. - # features=huge tries to install python3-dev, which fails to install - # for the non-native architecture. - architecture: [native] - include: - - features: tiny - compiler: clang - extra: [nogui] - - features: tiny - compiler: gcc - extra: [nogui, syn_test_execs] - - features: tiny - compiler: gcc - extra: [nogui] - architecture: arm64 - - features: normal - shadow: ./src/shadow - compiler: gcc - architecture: i386 - - features: huge - coverage: true - - features: huge - compiler: clang - interface: dynamic - python3: stable-abi - - features: huge - compiler: gcc - coverage: true - interface: dynamic - extra: [uchar, testgui] - - features: huge - compiler: clang - # Lua5.1 is the most widely used version (since it's what LuaJIT is - # compatible with), so ensure it works - lua_ver: '5.1' - extra: [asan] - - features: huge - compiler: gcc - coverage: true - extra: [unittests] - - features: huge - compiler: gcc - coverage: true - extra: [unittests] - architecture: arm64 - - features: normal - compiler: gcc - extra: [vimtags, proto, preproc_indent, encoding, codestyle] - - features: huge - compiler: gcc - extra: [no_x11_wl] - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Check Filelist (for packaging) - run: | - # If any files in the repository are not listed in Filelist this will - # exit with an error code and list the missing entries. - make -f ci/unlisted.make - - - name: Check hlgroups (are any new hlgroups added, but not handled in highlight.c) - run: | - # If any highlight groups have been documented, but not handled in - # highlight.c, nor listed as 'intentionally left out' in hlgroups.ignore, - # exit with an error code and list the missing entries. - make -C ci -f hlgroups.make - - - name: Report executable syntax tests - if: contains(matrix.extra, 'syn_test_execs') - run: | - # Search and list all found executable syntax tests, and exit with - # an error code. - make -C runtime/syntax executables - - - run: sudo dpkg --add-architecture i386 - if: matrix.architecture == 'i386' - - - name: Uninstall snap - run: | - sudo bash ci/remove_snap.sh - - - name: Enable debug packages - run: | - # Some of the ASAN suppressions are in libraries linked with dlopen - # and symbolization of them requires these debug packages. - sudo apt install ubuntu-dbgsym-keyring - sudo cp ci/ddebs.list /etc/apt/sources.list.d/ddebs.list - sudo cp ci/pinned-pkgs /etc/apt/preferences.d/pinned-pkgs - - - name: Install packages - run: | - # This is added by default, and it is often broken, but we don't need anything from it - sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list - PKGS=( \ - gettext \ - x11-utils \ - labwc \ - wl-clipboard \ - wayland-utils \ - libgtk-3-dev:${{ matrix.architecture }} \ - libgtk-3-bin:${{ matrix.architecture }} \ - desktop-file-utils \ - libc6-dbgsym:${{ matrix.architecture }} \ - libtool-bin \ - libncurses-dev:${{ matrix.architecture }} \ - libxt-dev:${{ matrix.architecture }} \ - libegl-mesa0:${{ matrix.architecture }} \ - libegl1:${{ matrix.architecture }} \ - libegl1-mesa-dev:${{ matrix.architecture }} \ - libepoxy-dev:${{ matrix.architecture }} \ - libwayland-egl1:${{ matrix.architecture }} \ - libwayland-client0:${{ matrix.architecture }} \ - libwayland-cursor0:${{ matrix.architecture }} \ - locales-all \ - software-properties-common \ - ) - if ${{ contains(matrix.extra, 'asan') }} && ${{ contains(matrix.architecture, 'native') }}; then - PKGS+=( \ - libepoxy0-dbgsym:${{ matrix.architecture }} \ - libxdamage1-dbgsym:${{ matrix.architecture }} \ - libxcb1-dbgsym:${{ matrix.architecture }} \ - libgtk-3-bin-dbgsym:${{ matrix.architecture }} \ - libgtk-3-0t64-dbgsym:${{ matrix.architecture }} \ - libglib2.0-0t64-dbgsym:${{ matrix.architecture }} \ - libglib2.0-bin-dbgsym:${{ matrix.architecture }} \ - libglib2.0-dev-bin-dbgsym:${{ matrix.architecture }} \ - ) - fi - if ${{ matrix.features == 'huge' }}; then - LUA_VER=${{ matrix.lua_ver || '5.4' }} - PKGS+=( \ - autoconf \ - gdb \ - lcov \ - libcanberra-dev \ - libperl-dev \ - python3-dev \ - liblua${LUA_VER}-dev \ - lua${LUA_VER} \ - ruby-dev \ - tcl-dev \ - cscope \ - libsodium-dev \ - attr \ - libattr1-dev - ) - fi - if ${{ contains(matrix.extra, 'proto') }}; then - PKGS+=( python3-clang ) - fi - sudo apt-get update && sudo apt-get upgrade -y --allow-downgrades && sudo apt-get install -y --allow-downgrades "${PKGS[@]}" - - - name: Install gcc-${{ env.GCC_VER }} - if: matrix.compiler == 'gcc' - run: | - # ubuntu-toolchain-r/test PPA for gcc-13 compiler - # disabled because the installation failed, causing test failures - # sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - sudo apt-get update -y - sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }} - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100 - sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }} - - - name: Install clang-${{ env.CLANG_VER }} - if: matrix.compiler == 'clang' - run: | - . /etc/lsb-release - curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/llvm-archive-keyring.gpg > /dev/null - echo "Types: deb - URIs: https://apt.llvm.org/${DISTRIB_CODENAME}/ - Suites: llvm-toolchain-${DISTRIB_CODENAME}-${{ env.CLANG_VER }} - Components: main - Signed-By: /usr/share/keyrings/llvm-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/llvm-toolchain.sources > /dev/null - sudo apt-get update -y - sudo apt-get install -y clang-${{ env.CLANG_VER }} llvm-${{ env.CLANG_VER }} - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ env.CLANG_VER }} 100 - sudo update-alternatives --set clang /usr/bin/clang-${{ env.CLANG_VER }} - sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${{ env.CLANG_VER }} 100 - sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-${{ env.CLANG_VER }} 100 - - - name: Set up environment - run: | - mkdir -p "${LOG_DIR}" - mkdir -p "${HOME}/bin" - echo "${HOME}/bin" >> $GITHUB_PATH - ( - echo "LINUX_VERSION=$(uname -r)" - echo "NPROC=$(getconf _NPROCESSORS_ONLN)" - echo "TMPDIR=$(mktemp -d -p /tmp)" - - case "${{ matrix.features }}" in - tiny) - echo "TEST=testtiny" - if ${{ contains(matrix.extra, 'nogui') }}; then - CONFOPT="--disable-gui" - fi - ;; - normal) - ;; - huge) - echo "TEST=scripttests test_libvterm indenttest syntaxtest" - INTERFACE=${{ matrix.interface || 'yes' }} - if ${{ matrix.python3 == 'stable-abi' }}; then - PYTHON3_CONFOPT="--with-python3-stable-abi=3.8" - fi - # The ubuntu-24.04 CI runner does not provide a python2 package. - CONFOPT="--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}" - ;; - esac - - if ${{ contains(matrix.extra, 'no_x11_wl') }}; then - CONFOPT="${CONFOPT} --without-x --disable-gui --without-wayland --enable-socketserver" - fi - if ${{ matrix.coverage == true }}; then - CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH" - echo "LDFLAGS=--coverage" - fi - if ${{ contains(matrix.extra, 'uchar') }}; then - CFLAGS="${CFLAGS} -funsigned-char" - fi - if ${{ contains(matrix.extra, 'testgui') }}; then - echo "TEST=-C src testgui" - fi - if ${{ contains(matrix.extra, 'unittests') }}; then - echo "TEST=unittests" - fi - if ${{ contains(matrix.extra, 'asan') }}; then - echo "SANITIZER_CFLAGS=-g -O0 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" - echo "ASAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/asan" - echo "UBSAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/ubsan" - echo "LSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/src/testdir/lsan-suppress.txt" - fi - if ${{ contains(matrix.extra, 'vimtags') }}; then - echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim" - fi - if ${{ contains(matrix.extra, 'proto') }}; then - echo "TEST=-C src protoclean proto" - fi - echo "CFLAGS=${CFLAGS}" - echo "CONFOPT=${CONFOPT}" - # Disables GTK attempt to integrate with the accessibility service that does run in CI. - echo "NO_AT_BRIDGE=1" - ) >> $GITHUB_ENV - - - name: Set up system - run: | - if [[ ${CC} = clang ]]; then - # Use llvm-cov instead of gcov when compiler is clang. - ln -fs /usr/bin/llvm-cov ${HOME}/bin/gcov - fi - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 - sudo usermod -a -G audio "${USER}" - sudo bash ci/setup-xvfb.sh - - - name: Check autoconf - if: contains(matrix.extra, 'unittests') - run: | - make -C src autoconf - - - name: Set up shadow dir - if: matrix.shadow - run: | - make -C src shadow - echo "SRCDIR=${{ matrix.shadow }}" >> $GITHUB_ENV - echo "SHADOWOPT=-C ${{ matrix.shadow }}" >> $GITHUB_ENV - - - name: Configure - run: | - ./configure --with-features=${{ matrix.features }} ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. - sed -i -f ci/config.mk.sed ${SRCDIR}/auto/config.mk - sed -i -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk - if [[ ${CC} = clang ]]; then - # Suppress some warnings produced by clang 12 and later. - sed -i -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk - fi - - - name: Build - if: (!contains(matrix.extra, 'unittests')) - run: | - make ${SHADOWOPT} -j${NPROC} - - - name: Check version - if: (!contains(matrix.extra, 'unittests')) - run: | - "${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 - timeout-minutes: 45 - run: | - make ${SHADOWOPT} ${TEST} - - # Enable to debug failing tests live and ssh into the CI runners - # - name: Setup tmate session - # if: ${{ failure() }} - # uses: mxschmitt/action-tmate@v3 - # with: - # limit-access-to-actor: true - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - - name: Vim tags - if: contains(matrix.extra, 'vimtags') - run: | - # This will exit with an error code if the generated vim tags differs from source. - ( - cd runtime/doc - git diff --exit-code -- tags - make html; rm *.html tags.ref; - test -f errors.log && exit 3; - true - ) - - - name: Generate Proto files - if: contains(matrix.extra, 'proto') - run: | - # This will exit with an error code if the generated proto files differ from source - ( - git diff --exit-code -- src/proto/ - true - ) - - - name: Check Source Code style - if: contains(matrix.extra, 'codestyle') - run: | - make -C src/testdir codestyle - - - name: Check preprocessor indent - if: contains(matrix.extra, 'preproc_indent') - run: | - # This will exit with an error code if the files differ from source - ( - "${SRCDIR}"/vim -u NONE --not-a-term -esNX +"cd runtime/tools" -S preproc_indent.vim - git diff --exit-code -- src/*.[ch] src/xxd/xxd.c - true - ) - - - name: Check encoding of utf-8 runtime files - if: contains(matrix.extra, 'encoding') - run: | - # This will exit with an error code if utf-8 runtime files are not in utf-8 encoding - ( - find . -type f -name "*utf-8*.vim" -exec sh -c \ - 'iconv -f utf-8 -t utf-8 "$1" >/dev/null 2>&1 || echo "non utf-8 encoding detected in $1"' \ - find-sh {} \; |grep "non utf-8 encoding" && exit 3 - true - ) - - - name: Generate gcov files - if: matrix.coverage - run: | - cd "${SRCDIR}" - find . -type f -name '*.gcno' -exec gcov -pb {} + || true - - - name: Codecov - timeout-minutes: 20 - if: matrix.coverage - uses: codecov/codecov-action@v5 - with: - flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ join(matrix.extra, '-') }} - token: ${{ secrets.CODECOV_TOKEN }} - - - name: ASan logs - if: contains(matrix.extra, 'asan') && !cancelled() - run: | - for f in $(grep -lR '#[[:digit:]]* *0x[[:xdigit:]]*' "${LOG_DIR}"); do - echo "$f" - asan_symbolize -l "$f" - false # in order to fail a job - done - - macos: - runs-on: ${{ matrix.runner }} - - env: - CC: clang - TEST: test - SRCDIR: ./src - LEAK_CFLAGS: -DEXITFREE - TERM: xterm - - strategy: - fail-fast: false - matrix: - features: [tiny, normal, huge] - runner: [macos-15-intel, macos-26] - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Install packages - if: matrix.features == 'huge' - run: | - brew install lua libtool - echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV - - - name: Set up environment - run: | - ( - echo "NPROC=$(getconf _NPROCESSORS_ONLN)" - case "${{ matrix.features }}" in - tiny) - echo "TEST=testtiny" - echo "CONFOPT=--disable-gui" - ;; - normal) - ;; - huge) - echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - ;; - esac - ) >> $GITHUB_ENV - - - name: Configure - run: | - ./configure --with-features=${{ matrix.features }} ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. - # BSD sed needs backup extension specified. - sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk - # On macOS, the entity of gcc is clang. - sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk - # Suppress some warnings produced by clang 12 and later. - if clang --version | grep -qs 'Apple clang version \(1[3-9]\|[2-9]\)\.'; then - sed -i.bak -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk - fi - - - name: Build - env: - LC_ALL: C - run: | - make -j${NPROC} - - - name: Check version - run: | - "${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: | - # Apple diff is broken. Use GNU diff instead. See #14032. - brew install diffutils - - - name: Test - timeout-minutes: 25 - run: | - make ${TEST} - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - windows: - runs-on: windows-2022 - - env: - # Interfaces - # Lua - LUA_VER: 54 - LUA_VER_DOT: '5.4' - LUA_RELEASE: 5.4.2 - LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip - LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip - LUA_DIR: D:\Lua - # do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l - LUA_DIR_SLASH: D:/Lua - # Python 2 - PYTHON_VER: 27 - PYTHON_VER_DOT: '2.7' - PYTHON_DIR: 'C:\Python27' - # Python 3 - PYTHON3_VER: 313 - PYTHON3_VER_DOT: '3.13' - # Other dependencies - # winpty - WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip - # libsodium - SODIUM_VER: '1.0.20' - # SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip - SODIUM_MSVC_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-msvc.zip - SODIUM_MSVC_VER: v143 - # SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz - SODIUM_MINGW_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-mingw.tar.gz - SODIUM_MINGW_VER: 26 - # Gettext-tools, iconv and libraries - GETTEXT32_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-32.zip - GETTEXT64_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip - # Escape sequences - COL_RED: "\x1b[31m" - COL_GREEN: "\x1b[32m" - COL_YELLOW: "\x1b[33m" - COL_RESET: "\x1b[m" - - strategy: - fail-fast: false - matrix: - include: - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, python3: stable } - - { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: yes, arch: x86, python3: stable, coverage: yes } - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: yes, arch: x86 } - - { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: no, arch: x64, coverage: yes } - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, ttytype: conpty } - - { features: NORMAL, toolchain: msvc, VIMDLL: yes, GUI: no, arch: x86 } - - { features: NORMAL, toolchain: mingw, VIMDLL: no, GUI: yes, arch: x64 } - - { features: TINY, toolchain: msvc, VIMDLL: yes, GUI: yes, arch: x64 } - - { features: TINY, toolchain: mingw, VIMDLL: no, GUI: no, arch: x86 } - - steps: - - name: Initialize - id: init - shell: bash - run: | - # Show Windows version - cmd /c ver - - if ${{ matrix.arch == 'x64' }}; then - cygreg=registry - pyreg= - echo "VCARCH=amd64" >> $GITHUB_ENV - echo "WARCH=x64" >> $GITHUB_ENV - echo "BITS=64" >> $GITHUB_ENV - echo "MSYSTEM=MINGW64" >> $GITHUB_ENV - else - cygreg=registry32 - pyreg=-32 - echo "VCARCH=x86" >> $GITHUB_ENV - echo "WARCH=ia32" >> $GITHUB_ENV - echo "BITS=32" >> $GITHUB_ENV - echo "MSYSTEM=MINGW32" >> $GITHUB_ENV - fi - - echo "VCVARSALL=$(vswhere -products \* -latest -property installationPath)\\VC\\Auxiliary\\Build\\vcvarsall.bat" >> $GITHUB_ENV - if ${{ matrix.features != 'TINY' }}; then - if ${{ matrix.arch == 'x86' }}; then - choco install python2 --no-progress --forcex86 - else - choco install python2 --no-progress - fi - fi - python3_dir=$(cat "/proc/$cygreg/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}$pyreg/InstallPath/@") - echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV - - if ${{ matrix.toolchain == 'msvc' }}; then - SODIUM_DIR=D:\\libsodium - echo "SODIUM_LIB=${SODIUM_DIR}\\${{ matrix.arch == 'x64' && 'x64' || 'Win32' }}\\Release\\${SODIUM_MSVC_VER}\\dynamic" >> $GITHUB_ENV - else - SODIUM_DIR=D:\\libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} - # do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l - SODIUM_DIR_SLASH=D:/libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} - echo "SODIUM_LIB=${SODIUM_DIR}\\bin" >> $GITHUB_ENV - echo "SODIUM_DIR_SLASH=${SODIUM_DIR_SLASH}" >> $GITHUB_ENV - fi - echo "SODIUM_DIR=${SODIUM_DIR}" >> $GITHUB_ENV - echo "GETTEXT_PATH=D:\gettext${{ matrix.arch == 'x64' && '64' || '32' }}" >> $GITHUB_ENV - - - uses: msys2/setup-msys2@v2 - if: matrix.toolchain == 'mingw' - with: - update: true - install: tar - pacboy: >- - make:p gcc:p - msystem: ${{ env.MSYSTEM }} - release: false - - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Create a list of download URLs - shell: cmd - run: | - type NUL > urls.txt - echo %LUA_RELEASE%>> urls.txt - echo %WINPTY_URL%>> urls.txt - echo %SODIUM_VER%>> urls.txt - echo %GETTEXT32_URL%>> urls.txt - echo %GETTEXT64_URL%>> urls.txt - - - name: Cache downloaded files - uses: actions/cache@v5 - with: - path: downloads - key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('urls.txt') }} - - - name: Download dependencies - shell: cmd - run: | - path C:\Program Files\7-Zip;%path% - if not exist downloads mkdir downloads - - echo %COL_GREEN%Download Lua%COL_RESET% - call :downloadfile %LUA${{ env.BITS }}_URL% downloads\lua.zip - 7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1 - - if not "${{ matrix.ttytype }}" == "conpty" ( - echo %COL_GREEN%Download winpty%COL_RESET% - call :downloadfile %WINPTY_URL% downloads\winpty.zip - 7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1 - copy /Y D:\winpty\%WARCH%\bin\winpty.dll src\winpty%BITS%.dll - copy /Y D:\winpty\%WARCH%\bin\winpty-agent.exe src\ - ) - - echo %COL_GREEN%Download libsodium%COL_RESET% - if "${{ matrix.toolchain }}"=="msvc" ( - call :downloadfile %SODIUM_MSVC_URL% downloads\libsodium.zip - 7z x -y downloads\libsodium.zip -oD:\ > nul || exit 1 - ) else ( - call :downloadfile %SODIUM_MINGW_URL% downloads\libsodium.tar.gz - 7z x -y downloads\libsodium.tar.gz -so | 7z x -si -ttar -oD:\ > nul || exit 1 - mklink %SODIUM_LIB%\libsodium.dll %SODIUM_LIB%\libsodium-%SODIUM_MINGW_VER%.dll - ) - - echo %COL_GREEN%Download Gettext%COL_RESET% - call :downloadfile %GETTEXT${{ env.BITS }}_URL% downloads\gettext${{ env.BITS }}.zip - 7z e -y downloads\gettext${{ env.BITS }}.zip -oD:\gettext${{ env.BITS }} > nul || exit 1 - copy /y D:\gettext${{ env.BITS }}\libintl-8.dll src\ || exit 1 - copy /y D:\gettext${{ env.BITS }}\libiconv-2.dll src\ || exit 1 - - goto :eof - - :downloadfile - :: call :downloadfile <URL> <localfile> - if not exist %2 ( - curl -f -L %1 -o %2 - ) - if ERRORLEVEL 1 ( - rem Retry once. - curl -f -L %1 -o %2 || exit 1 - ) - goto :eof - - - name: Build (MSVC) - if: matrix.toolchain == 'msvc' - shell: cmd - run: | - call "%VCVARSALL%" %VCARCH% - cd src - if "${{ matrix.VIMDLL }}"=="yes" ( - set GUI=yes - ) else ( - set GUI=${{ matrix.GUI }} - ) - if "${{ matrix.python3 }}"=="stable" ( - set PYTHON3_STABLE=yes - ) else ( - set PYTHON3_STABLE=no - ) - if "${{ matrix.features }}"=="HUGE" ( - nmake -nologo -f Make_mvc.mak ^ - FEATURES=${{ matrix.features }} ^ - GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^ - DYNAMIC_LUA=yes LUA=%LUA_DIR% ^ - DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^ - DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^ - DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^ - DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR% ^ - CI_FLAGS=/we4267 - ) else ( - nmake -nologo -f Make_mvc.mak ^ - FEATURES=${{ matrix.features }} ^ - GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^ - CI_FLAGS=/we4267 - ) - - - name: Build (MinGW) - if: matrix.toolchain == 'mingw' - shell: msys2 {0} - run: | - cd src - if [ "${{ matrix.VIMDLL }}" = "yes" ]; then - GUI=yes - else - GUI=${{ matrix.GUI }} - fi - if [ "${{ matrix.python3 }}" = "stable" ]; then - PYTHON3_STABLE=yes - else - PYTHON3_STABLE=no - fi - if [ "${{ matrix.features }}" = "HUGE" ]; then - mingw32-make -f Make_ming.mak -j2 \ - FEATURES=${{ matrix.features }} \ - GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \ - DYNAMIC_LUA=yes LUA=${LUA_DIR_SLASH} \ - DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \ - DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \ - DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \ - DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR_SLASH} \ - STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }} - else - mingw32-make -f Make_ming.mak -j2 \ - FEATURES=${{ matrix.features }} \ - GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \ - STATIC_STDCPLUS=yes - fi - - - name: Check version - shell: cmd - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH% - if "${{ matrix.GUI }}"=="yes" ( - start /wait src\gvim -u NONE -i NONE -c "redir > version.txt | ver | q" || exit 1 - type version.txt - echo. - start /wait src\gvim -u NONE -i NONE -c "redir! > version.txt | so ci\if_ver-1.vim | q" - start /wait src\gvim -u NONE -i NONE -c "redir >> version.txt | so ci\if_ver-2.vim | q" - type version.txt - del version.txt - ) else ( - 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 - # shell: cmd - # run: | - # mkdir artifacts - # copy src\*vim.exe artifacts - # copy src\vim*.dll artifacts - # - #- name: Upload Artifact - # uses: actions/upload-artifact@v7 - # with: - # name: vim${{ matrix.bits }}-${{ matrix.toolchain }} - # path: ./artifacts - - # disabled because of https://github.com/tunisiano187/Chocolatey-packages/issues/3916 - #- name: Install packages for testing - # shell: bash - # run: | - # if ${{ matrix.features != 'TINY' }}; then - # if ${{ matrix.arch == 'x64' }}; then - # choco install netbeans --no-progress - # else - # exit 0 - # fi - # fi - - - name: Test and show the result of testing gVim - if: matrix.GUI == 'yes' || matrix.VIMDLL == 'yes' - shell: cmd - timeout-minutes: 15 - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB% - call "%VCVARSALL%" %VCARCH% - - echo %COL_GREEN%Test gVim:%COL_RESET% - cd src\testdir - if "${{ matrix.GUI }}"=="yes" ( - nmake -nologo -f Make_mvc.mak VIMPROG=..\gvim || exit 1 - ) else ( - @rem Run only tiny tests. - nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\gvim || exit 1 - ) - - - name: Test and show the result of testing Vim - if: matrix.GUI == 'no' || matrix.VIMDLL == 'yes' - shell: cmd - timeout-minutes: 15 - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB% - call "%VCVARSALL%" %VCARCH% - - echo %COL_GREEN%Test Vim:%COL_RESET% - cd src\testdir - nmake -nologo -f Make_mvc.mak clean - if "${{ matrix.GUI }}"=="no" ( - nmake -nologo -f Make_mvc.mak VIMPROG=..\vim || exit 1 - ) else ( - @rem Run only tiny tests. - nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\vim || exit 1 - ) - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - - name: Generate gcov files - if: matrix.coverage - shell: msys2 {0} - run: | - cd src - find . -type f -name '*.gcno' -exec gcov -pb {} + || true - - - name: Codecov - timeout-minutes: 20 - if: matrix.coverage - uses: codecov/codecov-action@v5 - with: - directory: src - flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }} - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/uvim/.github/workflows/codeql-analysis.yml b/uvim/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 3364adf340..0000000000 --- a/uvim/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,76 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -name: "CodeQL" - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: '0 18 * * 1' - -# Cancels all previous workflow runs for pull requests that have not completed. -concurrency: - # The concurrency group contains the workflow name and the branch name for - # pull requests or the commit hash for any other events. - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - analyze: - permissions: - contents: read # to fetch code (actions/checkout) - security-events: write # (github/codeql-action/autobuild) - - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - # Override automatic language detection by changing the below list - # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ['cpp', 'python'] - # Learn more... - # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v4 - - # âšī¸ Command-line programs to run using the OS shell. - # đ https://git.io/JvXDl - - # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 diff --git a/uvim/.github/workflows/coverity.yml b/uvim/.github/workflows/coverity.yml deleted file mode 100644 index 04859a9758..0000000000 --- a/uvim/.github/workflows/coverity.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Coverity -on: - schedule: - - cron: '42 0 * * *' # Run once per day, to avoid Coverity's submission limits - workflow_dispatch: - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - scan: - runs-on: ubuntu-24.04 - - env: - CC: gcc - DEBIAN_FRONTEND: noninteractive - TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} - - steps: - - name: Checkout repository from github - if: env.TOKEN - uses: actions/checkout@v6 - - - name: Download Coverity - if: env.TOKEN - run: | - wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz - mkdir cov-scan - tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan - - - name: Install packages - if: env.TOKEN - run: | - sudo apt-get update && sudo apt-get install -y \ - autoconf \ - gettext \ - libcanberra-dev \ - libperl-dev \ - python3-dev \ - liblua5.4-dev \ - lua5.4 \ - ruby-dev \ - tcl-dev \ - libgtk2.0-dev \ - desktop-file-utils \ - libtool-bin \ - libsodium-dev - - - name: Set up environment - if: env.TOKEN - run: | - echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH - ( - echo "NPROC=$(getconf _NPROCESSORS_ONLN)" - echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - ) >> $GITHUB_ENV - - - name: Configure - if: env.TOKEN - run: | - ./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. - sed -i -f ci/config.mk.sed src/auto/config.mk - sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk - # -O2 gives false warning and turns it into an error: - # warning: function may return address of local variable [-Wreturn-local-addr] - sed -i 's/-O2 \?//' src/auto/config.mk - - - name: Build/scan vim - if: env.TOKEN - run: | - cov-build --dir cov-int make -j${NPROC} - - - name: Submit results - if: env.TOKEN - run: | - tar zcf cov-scan.tgz cov-int - curl --form token=$TOKEN \ - --form email=$EMAIL \ - --form file=@cov-scan.tgz \ - --form version="$(git rev-parse HEAD)" \ - --form description="Automatic GHA scan" \ - 'https://scan.coverity.com/builds?project=vim' - env: - EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }} diff --git a/uvim/.github/workflows/label.yml b/uvim/.github/workflows/label.yml deleted file mode 100644 index e413603bd4..0000000000 --- a/uvim/.github/workflows/label.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This workflow will triage pull requests and apply a label based on the -# paths that are modified in the pull request. -# -# To use this workflow, you will need to set up a .github/labeler.yml -# file with configuration. For more information, see: -# https://github.com/actions/labeler - -name: Labeler -on: [pull_request_target] - -jobs: - label: - - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - - steps: - - uses: actions/labeler@v6 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/uvim/.github/workflows/link-check.yml b/uvim/.github/workflows/link-check.yml deleted file mode 100644 index 4eac572158..0000000000 --- a/uvim/.github/workflows/link-check.yml +++ /dev/null @@ -1,15 +0,0 @@ -# .github/workflows/link-check.yml -name: Check Links -on: - workflow_dispatch: - schedule: - - cron: '0 3 * * 0' # Every Sunday at 03:00 UTC -jobs: - lychee: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - name: Run Lychee - uses: lycheeverse/lychee-action@v2 - with: - args: --verbose --config ci/lychee.toml . |
