Skip to content

VPN-5520: Decouple data collection checkbox from setting during onboa… #16010

VPN-5520: Decouple data collection checkbox from setting during onboa…

VPN-5520: Decouple data collection checkbox from setting during onboa… #16010

Workflow file for this run

name: WebAssembly
on:
push:
branches:
- main
- 'releases/**'
pull_request:
branches:
- main
- 'releases/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
wasmQt6:
name: Wasm Qt6
runs-on: ubuntu-20.04
outputs:
matrix: ${{ steps.testGen.outputs.tests }}
env:
QTVERSION: 6.2.4
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
submodules: 'true'
- name: Install Qt
shell: bash
run: |
python3 -m pip install aqtinstall
# qt6.2.3 for wasm needs the desktop linux installation
python3 -m aqt install-qt -O /opt linux desktop $QTVERSION
python3 -m aqt install-qt -O /opt linux desktop $QTVERSION wasm_32 -m qtcharts qtwebsockets qt5compat
- name: Install python dependencies
shell: bash
run: |
pip install -r requirements.txt
- name: Setup emsdk
uses: mymindstorm/setup-emsdk@v7
- name: Compiling
shell: bash
run: |
export PATH=/opt/$QTVERSION/wasm_32/bin:/opt/$QTVERSION/gcc_64/bin:$PATH
mkdir build
/opt/$QTVERSION/wasm_32/bin/qt-cmake -S . -B build -DQT_HOST_PATH=/opt/$QTVERSION/gcc_64 -DQT_HOST_PATH_CMAKE_DIR=/opt/$QTVERSION/gcc_64/lib/cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4
- name: Generate tasklist
id: testGen
shell: bash
run: |
echo -n "tests=" >> $GITHUB_OUTPUT
for test in $(find tests/functional -name 'test*.js' | sort); do
printf '{"name": "%s", "path": "%s"}' $(basename ${test%.js} | sed -n 's/test//p') $test
done | jq -s -c >> $GITHUB_OUTPUT
- name: Check tests
shell: bash
env:
TEST_LIST: ${{ steps.testGen.outputs.tests }}
run: |
echo $TEST_LIST | jq
- name: Uploading
uses: actions/upload-artifact@v3
with:
name: WebAssembly Build Qt6
path: build/wasm_build
functionaltests:
name: Functional tests
needs:
- wasmQt6
runs-on: ubuntu-20.04
timeout-minutes: 45
strategy:
fail-fast: false # Don't cancel other jobs if a test fails
matrix:
test: ${{ fromJson(needs.wasmQt6.outputs.matrix) }}
env:
QTVERSION: 6.2.4
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Cache build
id: cache-build
uses: actions/cache@v3
with:
path: build/
key: ${{ github.sha }}
- name: Install Qt
shell: bash
run: |
python3 -m pip install aqtinstall
python3 -m aqt install-qt -O /opt linux desktop $QTVERSION
- name: Install dependecies
run: |
sudo apt install --no-upgrade firefox xvfb -y
pip3 install -r requirements.txt
npm install
- name: Download a Build Artifact
uses: actions/download-artifact@v3
with:
name: WebAssembly Build Qt6
# Destination path, WASM_BUILD_DIRECTORY
path: wasm_build
- name: Build addons
shell: bash
run: ./scripts/addon/generate_all_tests.py -q /opt/$QTVERSION/gcc_64/bin
- name: Running ${{matrix.test.name}} Tests
id: runTests
uses: nick-invision/retry@v2
with:
timeout_minutes: 15
max_attempts: 3
command: |
export PATH=$GECKOWEBDRIVER:$(npm bin):$PATH
export HEADLESS=yes
export WASM_BUILD_DIRECTORY=$(pwd)/wasm_build
xvfb-run -a npm run functionalTestWasm -- --retries 3 ${{matrix.test.path}}