Skip to content

[CP-3188] I want to open the category of ebooks files and see the list of available #2418

[CP-3188] I want to open the category of ebooks files and see the list of available

[CP-3188] I want to open the category of ebooks files and see the list of available #2418

name: e2e (standalone) for feature branch
on:
pull_request:
types:
- opened
- ready_for_review
- reopened
workflow_dispatch:
jobs:
e2e:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [Windows, Linux, macOS]
if: startsWith(github.head_ref || github.ref, 'CP-')
environment: development
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18.16.1
- name: Find open port for ChromeBrowser on Linux/Mac
if: matrix.os != 'Windows'
id: find-port-unix
run: |
START_PORT=30000
END_PORT=40000
PORT=$START_PORT
RUNNER_OS="${{ matrix.os }}"
while [ $PORT -le $END_PORT ]; do
if [[ "$RUNNER_OS" == "Linux" ]]; then
nc -z 127.0.0.1 $PORT 2>/dev/null || break
elif [[ "$RUNNER_OS" == "macOS" ]]; then
nc -z -w1 127.0.0.1 $PORT 2>/dev/null || break
fi
PORT=$((PORT+1))
done
if [ $PORT -gt $END_PORT ]; then
echo "No available port found in the range $START_PORT-$END_PORT" >&2
exit 1
fi
echo "CHROME_OPEN_PORT=$PORT" >> $GITHUB_ENV
- name: Find open port for ChromeBrowser on Windows
if: matrix.os == 'Windows'
id: find-port-windows
run: |
$startPort = 30000
$endPort = 40000
$port = $startPort
while ($port -le $endPort) {
$isUsed = (Test-NetConnection -ComputerName 127.0.0.1 -Port $port).TcpTestSucceeded
if (-not $isUsed) {
break
}
$port++
}
if ($port -gt $endPort) {
Write-Error "No available port found in the range $startPort-$endPort"
exit 1
}
echo "CHROME_OPEN_PORT=$port" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
- name: Setup environment variables for Linux
if: matrix.os == 'Linux'
env:
E2ECI: "true"
TEST_GITHUB_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
TEST_BINARY_PATH: "../mudita-center/release/linux-unpacked/Mudita Center"
PHRASE_API_KEY: ${{ secrets.PHRASE_API_KEY }}
PHRASE_API_URL: ${{ secrets.PHRASE_API_URL }}
PHRASE_API_KEY_DEV: ${{ secrets.PHRASE_API_KEY_DEV }}
MUDITA_CENTER_SERVER_URL: ${{ secrets.MUDITA_CENTER_SERVER_URL }}
MUDITA_CENTER_SERVER_V2_URL: ${{ secrets.MUDITA_CENTER_SERVER_V2_URL }}
ROLLBAR_TOKEN: ${{ secrets.ROLLBAR_TOKEN }}
RELEASES_REPOSITORY_NAME: ${{ secrets.RELEASES_REPOSITORY_NAME }}
PRERELEASES_ENABLED: ${{ secrets.PRERELEASES_ENABLED }}
GITHUB_ACCESS_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
LOGIN_MICROSOFT_ONLINE_CLIENT_ID: ${{ secrets.LOGIN_MICROSOFT_ONLINE_CLIENT_ID }}
FONTS_DIRECTORY_URL: ${{ secrets.FONTS_DIRECTORY_URL }}
FRESHDESK_API_URL: ${{ secrets.FRESHDESK_API_URL }}
FRESHDESK_API_TOKEN: ${{ secrets.FRESHDESK_API_TOKEN }}
ANALYTICS_ENABLED: ${{ secrets.ANALYTICS_ENABLED }}
ANALYTICS_API_URL: ${{ secrets.ANALYTICS_API_URL }}
ANALYTICS_API_SITE_ID: ${{ secrets.ANALYTICS_API_SITE_ID }}
FEATURE_TOGGLE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_ENVIRONMENT }}
STATIC_CONFIGURATION_FILE_PATH: ${{ secrets.STATIC_CONFIGURATION_FILE_PATH }}
DEV_REDUX_LOGGER_ENABLED: ${{ secrets.DEV_REDUX_LOGGER_ENABLED }}
DEV_DEVICE_LOGGER_ENABLED: ${{ secrets.DEV_DEVICE_LOGGER_ENABLED }}
FEATURE_TOGGLE_RELEASE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_RELEASE_ENVIRONMENT }}
MOCK_SERVICE_ENABLED: ${{ secrets.MOCK_SERVICE_ENABLED }}
NEW_HELP_ENABLED: ${{ secrets.NEW_HELP_ENABLED }}
KOMPAKT_OS_UPDATE_DEV_TOKEN: ${{ secrets.KOMPAKT_OS_UPDATE_DEV_TOKEN }}
run: |
printenv > .env
- name: Setup Env for Mac
if: matrix.os == 'macOS'
env:
E2ECI: "true"
TEST_GITHUB_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
TEST_BINARY_PATH: "../mudita-center/release/mac/Mudita Center.app/Contents/MacOS/Mudita Center"
PHRASE_API_KEY: ${{ secrets.PHRASE_API_KEY }}
PHRASE_API_URL: ${{ secrets.PHRASE_API_URL }}
PHRASE_API_KEY_DEV: ${{ secrets.PHRASE_API_KEY_DEV }}
MUDITA_CENTER_SERVER_URL: ${{ secrets.MUDITA_CENTER_SERVER_URL }}
MUDITA_CENTER_SERVER_V2_URL: ${{ secrets.MUDITA_CENTER_SERVER_V2_URL }}
ROLLBAR_TOKEN: ${{ secrets.ROLLBAR_TOKEN }}
RELEASES_REPOSITORY_NAME: ${{ secrets.RELEASES_REPOSITORY_NAME }}
PRERELEASES_ENABLED: ${{ secrets.PRERELEASES_ENABLED }}
GITHUB_ACCESS_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
LOGIN_MICROSOFT_ONLINE_CLIENT_ID: ${{ secrets.LOGIN_MICROSOFT_ONLINE_CLIENT_ID }}
FONTS_DIRECTORY_URL: ${{ secrets.FONTS_DIRECTORY_URL }}
FRESHDESK_API_URL: ${{ secrets.FRESHDESK_API_URL }}
FRESHDESK_API_TOKEN: ${{ secrets.FRESHDESK_API_TOKEN }}
ANALYTICS_ENABLED: ${{ secrets.ANALYTICS_ENABLED }}
ANALYTICS_API_URL: ${{ secrets.ANALYTICS_API_URL }}
ANALYTICS_API_SITE_ID: ${{ secrets.ANALYTICS_API_SITE_ID }}
FEATURE_TOGGLE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_ENVIRONMENT }}
STATIC_CONFIGURATION_FILE_PATH: ${{ secrets.STATIC_CONFIGURATION_FILE_PATH }}
DEV_REDUX_LOGGER_ENABLED: ${{ secrets.DEV_REDUX_LOGGER_ENABLED }}
DEV_DEVICE_LOGGER_ENABLED: ${{ secrets.DEV_DEVICE_LOGGER_ENABLED }}
FEATURE_TOGGLE_RELEASE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_RELEASE_ENVIRONMENT }}
MOCK_SERVICE_ENABLED: ${{ secrets.MOCK_SERVICE_ENABLED }}
NEW_HELP_ENABLED: ${{ secrets.NEW_HELP_ENABLED }}
KOMPAKT_OS_UPDATE_DEV_TOKEN: ${{ secrets.KOMPAKT_OS_UPDATE_DEV_TOKEN }}
run: |
printenv > .env
- name: Setup environment variables for Windows
if: matrix.os == 'Windows'
env:
E2ECI: "true"
TEST_GITHUB_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
TEST_BINARY_PATH: '..\mudita-center\release\win-unpacked\Mudita Center.exe'
PHRASE_API_KEY: ${{ secrets.PHRASE_API_KEY }}
PHRASE_API_URL: ${{ secrets.PHRASE_API_URL }}
PHRASE_API_KEY_DEV: ${{ secrets.PHRASE_API_KEY_DEV }}
MUDITA_CENTER_SERVER_URL: ${{ secrets.MUDITA_CENTER_SERVER_URL }}
MUDITA_CENTER_SERVER_V2_URL: ${{ secrets.MUDITA_CENTER_SERVER_V2_URL }}
ROLLBAR_TOKEN: ${{ secrets.ROLLBAR_TOKEN }}
RELEASES_REPOSITORY_NAME: ${{ secrets.RELEASES_REPOSITORY_NAME }}
PRERELEASES_ENABLED: ${{ secrets.PRERELEASES_ENABLED }}
GITHUB_ACCESS_TOKEN: ${{ secrets.MC_GITHUB_ACCESS_TOKEN }}
LOGIN_MICROSOFT_ONLINE_CLIENT_ID: ${{ secrets.LOGIN_MICROSOFT_ONLINE_CLIENT_ID }}
FONTS_DIRECTORY_URL: ${{ secrets.FONTS_DIRECTORY_URL }}
FRESHDESK_API_URL: ${{ secrets.FRESHDESK_API_URL }}
FRESHDESK_API_TOKEN: ${{ secrets.FRESHDESK_API_TOKEN }}
ANALYTICS_ENABLED: ${{ secrets.ANALYTICS_ENABLED }}
ANALYTICS_API_URL: ${{ secrets.ANALYTICS_API_URL }}
ANALYTICS_API_SITE_ID: ${{ secrets.ANALYTICS_API_SITE_ID }}
FEATURE_TOGGLE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_ENVIRONMENT }}
STATIC_CONFIGURATION_FILE_PATH: ${{ secrets.STATIC_CONFIGURATION_FILE_PATH }}
DEV_REDUX_LOGGER_ENABLED: ${{ secrets.DEV_REDUX_LOGGER_ENABLED }}
DEV_DEVICE_LOGGER_ENABLED: ${{ secrets.DEV_DEVICE_LOGGER_ENABLED }}
FEATURE_TOGGLE_RELEASE_ENVIRONMENT: ${{ secrets.FEATURE_TOGGLE_RELEASE_ENVIRONMENT }}
MOCK_SERVICE_ENABLED: ${{ secrets.MOCK_SERVICE_ENABLED }}
NEW_HELP_ENABLED: ${{ secrets.NEW_HELP_ENABLED }}
KOMPAKT_OS_UPDATE_DEV_TOKEN: ${{ secrets.KOMPAKT_OS_UPDATE_DEV_TOKEN }}
shell: cmd
run: |
SET > .env
- name: Setup dependencies
run: npm run setup
- name: Build App for Linux/Mac
if: matrix.os != 'Windows'
run: |
export NODE_OPTIONS="--max-old-space-size=4096"
npm run app:dist
- name: Build App for Windows
if: matrix.os == 'Windows'
run: |
$env:NODE_OPTIONS="--max-old-space-size=4096"
$env:LOCALAPPDATA=""
npm run app:dist
- name: Run E2E tests headless with Xvfb on Linux
if: matrix.os == 'Linux'
run: |
npm run e2e:test:cicd:standalone
- name: Run E2E tests headless on Windows
env:
TEST_BINARY_PATH: '..\mudita-center\release\win-unpacked\Mudita Center.exe'
if: matrix.os == 'Windows'
run: |
cd apps/mudita-center-e2e
npm run e2e:test:cicd:standalone
- name: Run E2E tests headless on Mac
if: matrix.os == 'macOS'
run: |
npm run e2e:test:standalone