optional.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. name: optional
  2. on:
  3. pull_request:
  4. types: [labeled, opened, synchronize, reopened]
  5. workflow_dispatch:
  6. concurrency:
  7. group: ${{ github.workflow }}-${{ github.ref }}
  8. cancel-in-progress: ${{ github.event_name == 'pull_request' }}
  9. env:
  10. INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
  11. # Double test timeout since it's running via qemu
  12. TEST_TIMEOUT: 3600
  13. # TEST_FILE: test/functional/shada
  14. # TEST_FILTER: foo
  15. jobs:
  16. s390x:
  17. if: contains(github.event.pull_request.labels.*.name, 'ci:s390x') || github.event_name == 'workflow_dispatch'
  18. strategy:
  19. fail-fast: false
  20. matrix:
  21. test: [functionaltest, oldtest]
  22. runs-on: ubuntu-latest
  23. timeout-minutes: 90
  24. steps:
  25. - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
  26. - uses: docker://multiarch/ubuntu-core:s390x-focal
  27. with:
  28. # Docker runs the command as root, but we want the build/test to run
  29. # as non-root so permissions based tests run correctly
  30. args: >
  31. bash -c
  32. "
  33. apt-get -y update &&
  34. time DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential cmake curl gettext ninja-build locales-all cpanminus git attr libattr1-dev xdg-utils &&
  35. useradd --create-home qemuci &&
  36. chown -R qemuci. . &&
  37. runuser -u qemuci -- git clone --depth=1 https://github.com/neovim/neovim.git &&
  38. cd neovim &&
  39. runuser -u qemuci -- git fetch origin ${{ github.ref }}:pr &&
  40. runuser -u qemuci -- git switch pr &&
  41. runuser -u qemuci -- cmake -S cmake.deps -B .deps -G Ninja -D USE_BUNDLED_LUAJIT=OFF -D USE_BUNDLED_LUA=ON &&
  42. runuser -u qemuci -- cmake --build .deps &&
  43. runuser -u qemuci -- cmake -B build -G Ninja -D CI_BUILD=ON -D PREFER_LUA=ON &&
  44. runuser -u qemuci -- make ${{ matrix.test }}
  45. "
  46. windows-asan:
  47. if: contains(github.event.pull_request.labels.*.name, 'ci:windows-asan') || github.event_name == 'workflow_dispatch'
  48. uses: ./.github/workflows/test_windows.yml
  49. with:
  50. build_flags: "-D ENABLE_ASAN_UBSAN=ON"
  51. functionaltest_timeout: 40