2828 type : boolean
2929 required : false
3030 default : false
31+ gtk :
32+ description : " (Required on Linux only) GTK version to use (one of gtk3, gtk4)"
33+ type : string
34+ required : false
35+ default : " "
3136
3237jobs :
3338 build :
4045 lfs : false # lfs-pull is not necessary, the natives are re-build in each run
4146 - name : Install Linux requirements
4247 if : ${{ inputs.native == 'gtk.linux.x86_64'}}
48+ shell : bash
4349 run : |
50+ set -x
4451 sudo apt-get update -qq
45- sudo apt-get install -qq -y libgtk-3-dev libgtk-4-dev freeglut3-dev webkit2gtk-driver
52+ # Required tools (GHA normally provides these in their base images)
53+ sudo apt-get install -qq -y build-essential git
54+ # GTK3 dependencies
55+ sudo apt-get install -qq -y libgtk-3-dev freeglut3-dev webkit2gtk-driver
56+ # GTK4 dependencies
57+ sudo apt-get install -qq -y libgtk-4-dev freeglut3-dev libwebkitgtk-6.0-4
58+
59+ - name : Disable AppArmor when testing WebKit on GTK4
60+ if : ${{ inputs.native == 'gtk.linux.x86_64' && inputs.gtk == 'gtk4' }}
61+ shell : bash
62+ run : |
63+ # WebKit for GTK4 uses bwrap and on Ubuntu 24.04 default settings are not working
64+ # so turn off apparmor. We are already running in a protected environment, so we
65+ # don't really need this extra level.
66+ sudo sysctl kernel.unprivileged_userns_clone=1
67+ sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
68+
4669 - name : Pull large static Windows binaries
4770 if : ${{ inputs.native == 'win32.win32.x86_64'}}
4871 run : |
6083 - name : Build
6184 env :
6285 GTK_XCFLAGS : ' -Wno-deprecated-declarations'
86+ SWT_GTK4 : " ${{ inputs.gtk == 'gtk4' && '1' || '0' }}"
6387 run : >-
6488 ${{ contains(inputs.native, 'linux') && 'xvfb-run' || '' }}
6589 mvn --batch-mode -V -U -e
@@ -71,10 +95,12 @@ jobs:
7195 --fail-at-end
7296 -DskipNativeTests=false
7397 -DfailIfNoTests=false
74- ${{ (inputs.runtodotests == false && contains( inputs.native, 'linux')) && '-DexcludedGroups=gtk3 -todo' || '' }}
98+ ${{ (inputs.runtodotests == false && inputs.gtk == 'gtk4') && '-DexcludedGroups=gtk4 -todo' || '' }}
7599 clean install
76100 - name : Performance tests
77101 if : ${{ inputs.performance }}
102+ env :
103+ SWT_GTK4 : " ${{ inputs.gtk == 'gtk4' && '1' || '0' }}"
78104 working-directory : tests/org.eclipse.swt.tests
79105 run : >-
80106 ${{ contains(inputs.native, 'linux') && 'xvfb-run' || '' }}
89115 if : always()
90116 uses : actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
91117 with :
92- name : test-results-${{ inputs.native }}-java${{ inputs.java }}
118+ name : test-results-${{ inputs.native }}-${{ inputs.gtk }}- java${{ inputs.java }}
93119 if-no-files-found : warn
94120 path : |
95121 ${{ github.workspace }}/**/target/surefire-reports/*.xml
0 commit comments