Add new step to upload MacVim test results when we have failed tests.
The xcresult folder can be opened in Xcode for inspection to help
understand what went wrong. Also, fix the ordering so failed Vim GUI
test artifacts can be uploaded as well.
When configuring Vim, be explicit to not build with sodium/gettext for
the non-publish builds. This makes sure that even if the CI environment
somehow has them installed by default, we won't use them by mistake.
Those installed packages would be built for a different OS target anyway
and throw out warnings (the ones we bundle with MacVim are custom built
to target the proper OS versions).
Make sure to use Xcode 16.2 which fixed a clang compiler bug which would
generate incorrect optimized code in the 8g8 feature.
Turn off macos-12 because that has now been removed by GitHub Actions.
We will need to find an alternative way to build official legacy binary
releases.
Also, update Perl version to 5.34 as macOS-15 doesn't come with 5.30
anymore. Perl 5.34 has been installed on macOS 13 and above. Should not
be a huge deal as Perl isn't commonly used for plugins.
Problem: CI: tests can be improved
Solution: collect failed indent tests, raise timeout for search()
functions when using ASAN/Valgrind (Aliaksei Budavei)
ASan-instrumented Vim builds tend to run slower (x2) than
non-instrumented Vim builds and occasionally make indent
tests fail when "search*()" functions time out and give up
further execution.
Reference:
https://github.com/google/sanitizers/wiki/AddressSanitizercloses: #15974
Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: tests: Mac OS tests are too flaky
Solution: Increase max test timeout to 25 minutes,
allow up to 10 retries on Mac OS runners,
refactor runtest.vim (Milly).
closes: #15940
Co-authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Milly <milly.ca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: tests: not clear what tests cause asan failures
Solution: append testname to $ASAN_OPTIONS
Mention what test causes ASAN failures by appending the testname
to log_path in $ASAN_OPTIONS/$UBSAN_OPTIONS. This assumes 'log_path' is
always the last sub-option in $ASAN_OPTIONS.
While at it, also make the CI run with `-O0` instead of `-O1` when ASAN
is enable since this causes line numbers to disappear.
closes: #15927
Signed-off-by: Christian Brabandt <cb@256bit.org>
The test_gettext* files need specific locales available to exercise
their tests.
related: #15591
Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: translation of vim scripts can be improved
(after v9.1.0509)
Solution: improve documentation, add tests, include missing
libraries for the Windows CI
(RestorerZ)
closes: #15100
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
gcc -O2 outputs this warning and turns it into an error when running
Coverity action:
```
eval.c: In function ‘echo_string_core’:
cc1: warning: function may return address of local variable [-Wreturn-local-addr]
eval.c:6495:12: note: declared here
6495 | char_u buf[MAX_FUNC_NAME_LEN];
| ^~~
```
This seems to be a false positive, so disable -O2 for Coverity
specifically.
Signed-off-by: Christian Brabandt <cb@256bit.org>
It's a bit of a pain to debug failing screendump tests without knowing
exactly what went wrong. Therefore include actions/upload-artifact for
the Github CI runners and have them uploaded those failing screen dump
tests automatically.
Let's add this step to each of the Linux/MacOS/Windows workflows but do
not duplicate the code, factor it out to a single file
.github/actions/screendump/action.yml and reference this one from the
main ci.yml file
Example:
https://github.com/chrisbra/vim/actions/runs/9085493619closes: #14771
Co-authored-by: dundargoc <gocdundar@gmail.com>
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
* CI: ubuntu-toolchain-r/test repository will be removed
The ubuntu-toolchain-r/test PPA will be removed from Ubuntu images.
The images rollout process will start on May 6 and take 3-4 days.
Mitigation ways
The repository can still be added manually in runtime by calling to following commands:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -y
* fixup: add a note what this repo is for
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: CI: mingw complains about unknown escape sequence: '\l', fails with sodium v1.0.19
Solution: Use other slash instead, also revert sodium version to v1.0.18
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: Installer does not remove all files
Solution: Update installer and delete all files on uninstall
update Sodium library dependency, update Readme
(RestorerZ)
closes: #14214
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: CI: Fix MacOS-14 tests (after 9.1.0070)
Solution: Re-enable sound tests by granting Mic access,
disable Test_diff_screen because of buggy MacOS diff
(non GNU version), re-enable Test_term_gettitle()
(Yee Cheng Chin)
macos-14 runner was turned on in #13943, but it had to turn off a few
tests in order for CI to run. Re-enable them and fix the underlying
issues.
* `Test_diff_screen`: The test failure is due to a bug in Apple's diff
utility. Apple introduced a new diff tool based on FreeBSD in macOS 13
and it has buggy behaviors when using unified diff (`-U0`) and the
diff is on the first line of the file. Simply disable this test for
now if we detect Apple diff (instead of the old GNU diff). Can
re-enable this in the future if Apple fixes the issue.
* `Test_play_event` / `Test_play_silent`: GitHub Actions currently has
an issue with playing sound in CI in macos-14 runners. It for some
reason triggers a microphone permission dialog popup which blocks the
CI action (see https://github.com/actions/runner-images/issues/9330).
To fix this, add a temporary step in macos-14 to manually allow
microphone permissions in the runner.
* `Test_term_gettitle`: I could not reproduce the failure, so I just
turned it on and it seems to run just fine. Maybe it's a timing issue
and whatnot but either way that should be fixed when we can reproduce
the issue.
closes: #14032
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
GitHub Actions has recently added support for macos-14 runners which
run on top of Apple Silicon. Switch CI to using it for publishing binary
builds. Keep running the other OSes for now to test compatibility.
Close#1263
Problem: CI: testsuite not run on M1 Mac
Solution: Make it run on gh runners for M1, disable failing tests for
now, until we figure the problem with the failings tests out
(rhysd)
closes: #13943
Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
- Run the doc make html awk script, which also checks, that all
referenced help tags exists.
- Run the doc maketags awk script, which checks for duplicates
- in case of any error in the previous two steps, exit the CI with
an error and show the errors.log file, that is generated by the
previous 2 steps
Signed-off-by: Christian Brabandt <cb@256bit.org>
Fix the following error:
```
The following packages have unmet dependencies:
binutils : Conflicts: binutils:i386 but 2.38-4ubuntu2.4 is to be installed
binutils:i386 : Conflicts: binutils but 2.38-4ubuntu2.3 is to be installed
binutils-common : Breaks: binutils-common:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed
binutils-common:i386 : Breaks: binutils-common (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed
libbinutils : Breaks: libbinutils:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed
libbinutils:i386 : Breaks: libbinutils (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed
libctf0 : Breaks: libctf0:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed
libctf0:i386 : Breaks: libctf0 (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
```
Run `apt-get upgrade` before installing additional packages.
Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Sometimes patches add files that should be included in tarballs for
distribution, but are not added to Filelist (used by Makefile to build
the tar archive). This can break the build, or it can be silently
ignored as runtime files are simply not included in the distribution.
Add a CI check to ensure all files tracked in the repository are
assigned to a variable in Filelist. A few files were not listed because
they do not need to be included in builds and tarballs, so add an IGNORE
variable for these exceptions.
Co-authored-by: Peter Simonyi <pts@petersimonyi.ca>
Signed-off-by: Christian Brabandt <cb@256bit.org>
In CI, turn on warnings as errors, but ignore deprecated warnings as we
are still using NSConnection right now and we won't be fixing that for
now. Don't turn on warnings as errors for development (similar to Vim
itself) / outside of CI, because it could make it annoying to build
MacVim locally and across different Xcode versions.
Fix the misc warnings. A lot of 64/32-bit warnings due to careless casts
of NSInteger/NSUInteger.
Also fix up MacVimTests so the waiting for Vim window is more robust
when waiting for 2 windows in a row in vim tutor. Otherwise sometimes
the tests would randomly fail in CI.