Files
mattermostest/.github/actions/install-os-dependencies/action.yaml
Devin Binnie dcbb8b7a91 Fix bad path name for user data dir, upgrade node-abi (#3406)
* Fix bad path name for user data dir, upgrade node-abi

* Run windows e2e

* Enable Windows tests and fix linux e2e crash

* chore: remove redundant dependencies and environment variables in e2e workflow

* fix: resolve Linux GPU process initialization errors in GitHub Actions

* Fix linux tests

* Fix lint

* fix: Enhance GPU handling to prevent process crashes in E2E tests

This commit addresses GPU-related stability issues in our E2E test environment by:

1. Updating GPU helper utility with more comprehensive disabling methods
2. Adding environment variables to force software rendering
3. Configuring Electron to use in-process GPU rendering
4. Adding additional Linux dependencies for better GPU support
5. Expanding command-line flags to mitigate GPU process crashes

The changes include modifications to:
- e2e/utils/gpu-helper.js
- e2e/modules/environment.js
- .github/workflows/e2e-functional-template.yml
- .github/actions/install-os-dependencies/action.yaml

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Revert "chore: remove redundant dependencies and environment variables in e2e workflow"

This reverts commit 6a8eb0cbee155c3fd3f26df8d45af8c1f5cf2f12.

* run tests with xvfb-run --auto-servernum

* change ubuntu-runner to use latest

* change ubuntu-runner to use 24.04 version

* fix linux tests

* fix linux tests

* add preload test script

* add preload test script

* add preload test script

* update preload script

* reset all changes made to fix linux e2e error

* reset all changes made to fix linux e2e error

* reset all changes made to fix linux e2e error

* fix linux package instalation

* fix chrome sandbox permission issue

* bump electron version to 36.1.0

* Revert "bump electron version to 36.1.0"

This reverts commit 4a9bf858754c0c1909b3626f703578913adf3714.

* install dbus and declare DBUS_SYSTEM_BUS_ADDRESS

* fix dbus error

* fix dbus error

* fix dbus error

* fix dbus error

* fix: Try the community suggestion

-  https://github.com/actions/runner-images/issues/12127#issuecomment-2854346891

* change libasound2 to libasound2t64

* use gcc-12-aarch64-linux-gnu instead of gcc-aarch64-linux-gnu

* remove multilib

* fix xvfb crash

* fix: add PW_CHROMIUM_ARGS

* fix: add --disable-gpu-sandbox to the e2e run command

* fix: windows job

* pass version to electron rebuild

* fix post install script under /e2e

* Revert "fix post install script under /e2e"

This reverts commit 01efeed2e5038684c0aea5bb0be837b7041be8ca.

* skip postinstall scipt for windows job

* hardcode electron version in the e2e/package.json

* update script

* Revert "update script"

This reverts commit 078d197e44dc78972876a977f4a91182d89024b6.

* update script

* reset

* upgrade electron/rebuild package

* Revert "upgrade electron/rebuild package"

This reverts commit 25b144df05152b0bc112db6473263bfd68850874.

* Patch electron/rebuild

* Fix macOS test

---------

Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-19 10:39:16 -04:00

82 lines
2.5 KiB
YAML

name: 'Install OS Dependencies'
description: 'Installs OS-specific dependencies for E2E tests'
inputs:
os:
description: 'Operating system (Linux, macOS, Windows)'
required: true
runs:
using: "composite"
steps:
- name: Install Linux Dependencies
if: inputs.os == 'Linux'
shell: bash
run: |
# Add Wine repository key
wget -qO - https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/Release.key | sudo apt-key add -
# Install yq binary
wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/download/v4.20.1/yq_linux_amd64 && chmod a+x /usr/local/bin/yq
# Update package lists
sudo apt-get update || true
# Install required packages
sudo apt-get install -y \
build-essential \
clang \
libdbus-1-dev \
libgtk-3-dev \
libnotify-dev \
libasound2-dev \
libcap-dev \
libcups2-dev \
libxtst-dev \
libxss1 \
libnss3-dev \
curl \
gperf \
bison \
python3-dbusmock \
openjdk-8-jre \
ca-certificates \
libpng++-dev \
gcc-12-aarch64-linux-gnu \
g++-12-aarch64-linux-gnu \
jq \
icnsutils \
graphicsmagick \
tzdata \
xsel \
xvfb \
x11-utils \
libgtk-3-0 \
libnss3 \
libasound2t64 \
dbus \
dbus-x11 \
libxtst6
- name: Install macOS Dependencies
if: inputs.os == 'macOS'
shell: bash
run: |
brew install nss
jq '.mac.target=["zip"]' electron-builder.json | \
jq '.mac.gatekeeperAssess=false' > /tmp/electron-builder.json && \
cp /tmp/electron-builder.json .
- name: Install Windows Dependencies
if: inputs.os == 'Windows'
shell: bash
run: |
choco install yq --version 4.15.1 -y
choco install vcredist-all -y
npm i -g node-gyp
ELECTRON_VERSION=$(jq -r .devDependencies.electron package.json)
node-gyp install
node-gyp install --devdir="C:\Users\runneradmin\.electron-gyp" --target=$ELECTRON_VERSION --dist-url="https://electronjs.org/headers"
node-gyp install --devdir="C:\Users\runneradmin\.electron-gyp" --target=$ELECTRON_VERSION --dist-url="https://electronjs.org/headers" --arch arm64
npm install mochawesome-report-generator