comparison .github/workflows/ci.yml @ 33183:c8c9d89fc55f v9.0.1871

patch 9.0.1871: Github CI does not run i386 job Commit: https://github.com/vim/vim/commit/a4245a10eacac614dc833a2721cd7c0376627ec8 Author: James McCoy <jamessan@jamessan.com> Date: Tue Sep 5 07:41:23 2023 +0200 patch 9.0.1871: Github CI does not run i386 job Problem: Github CI does not run i386 job Solution: Add a i386 architecture Add CI testing for i386 message_test recently failed on i386, which exposed a gap in the CI testing. Convert the shadowdir job to one that runs on i386 so we get 32-bit test coverage. Since the GHA runners are x86_64, we can enable the i386 architecture in dpkg and install i386 packages for the i386 CI jobs. However, this can't currently be done with features=huge since that would require installing python3-dev:i386, which breaks the CI environment. closes: #12975 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: James McCoy <jamessan@jamessan.com>
author Christian Brabandt <cb@256bit.org>
date Tue, 05 Sep 2023 07:45:10 +0200
parents 9b2c827e0f2e
children db65486d8d75
comparison
equal deleted inserted replaced
33182:ab047eb6d559 33183:c8c9d89fc55f
35 fail-fast: false 35 fail-fast: false
36 matrix: 36 matrix:
37 features: [tiny, normal, huge] 37 features: [tiny, normal, huge]
38 compiler: [clang, gcc] 38 compiler: [clang, gcc]
39 extra: [[]] 39 extra: [[]]
40 # Only use non-native architecture when features != huge.
41 # features=huge tries to install python3-dev, which fails to install
42 # for the non-native architecture.
43 architecture: [native]
40 include: 44 include:
41 - features: tiny 45 - features: tiny
42 compiler: clang 46 compiler: clang
43 extra: [nogui] 47 extra: [nogui]
44 - features: tiny 48 - features: tiny
45 compiler: gcc 49 compiler: gcc
46 extra: [nogui] 50 extra: [nogui]
47 - features: normal 51 - features: normal
48 shadow: ./src/shadow 52 shadow: ./src/shadow
53 compiler: gcc
54 architecture: i386
49 - features: huge 55 - features: huge
50 coverage: true 56 coverage: true
51 - features: huge 57 - features: huge
52 compiler: clang 58 compiler: clang
53 interface: dynamic 59 interface: dynamic
73 79
74 steps: 80 steps:
75 - name: Checkout repository from github 81 - name: Checkout repository from github
76 uses: actions/checkout@v3 82 uses: actions/checkout@v3
77 83
84 - run: sudo dpkg --add-architecture i386
85 if: matrix.architecture == 'i386'
86
78 - name: Install packages 87 - name: Install packages
79 run: | 88 run: |
80 PKGS=( \ 89 PKGS=( \
81 gettext \ 90 gettext \
82 libgtk2.0-dev \ 91 libgtk2.0-dev:${{ matrix.architecture }} \
83 desktop-file-utils \ 92 desktop-file-utils \
84 libtool-bin \ 93 libtool-bin \
94 libncurses-dev:${{ matrix.architecture }} \
95 libxt-dev:${{ matrix.architecture }} \
85 ) 96 )
86 if ${{ matrix.features == 'huge' }}; then 97 if ${{ matrix.features == 'huge' }}; then
87 LUA_VER=${{ matrix.lua_ver || '5.4' }} 98 LUA_VER=${{ matrix.lua_ver || '5.4' }}
88 PKGS+=( \ 99 PKGS+=( \
89 autoconf \ 100 autoconf \
104 sudo apt-get update && sudo apt-get install -y "${PKGS[@]}" 115 sudo apt-get update && sudo apt-get install -y "${PKGS[@]}"
105 116
106 - name: Install gcc-${{ env.GCC_VER }} 117 - name: Install gcc-${{ env.GCC_VER }}
107 if: matrix.compiler == 'gcc' 118 if: matrix.compiler == 'gcc'
108 run: | 119 run: |
109 sudo apt-get install -y gcc-${{ env.GCC_VER }} 120 sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }}
110 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100 121 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
111 sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }} 122 sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }}
112 123
113 - name: Install clang-${{ env.CLANG_VER }} 124 - name: Install clang-${{ env.CLANG_VER }}
114 if: matrix.compiler == 'clang' 125 if: matrix.compiler == 'clang'