Skip to content

[CP-2634] fixes after merge #1880

[CP-2634] fixes after merge

[CP-2634] fixes after merge #1880

name: Build & deploy to feature branch
on:
push:
branches:
- CP-*
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [Linux, Windows, macOS]
environment: development
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20.14.0
- name: Setup Env for Windows
if: matrix.os == 'Windows'
env:
E2ECI: "false"
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 }}
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 }}
MUDITA_CENTER_PRERELEASE_ENABLED: ${{ secrets.MUDITA_CENTER_PRERELEASE_ENABLED }}
DEV_TOOLS_SHORTCUT_ENABLED: "1"
LOCALAPPDATA: ""
shell: cmd
run: |
SET > .env
jq -r -j .version apps/mudita-center/package.json > apps/mudita-center/version
- name: Setup Env for Mac
if: matrix.os == 'macOS'
env:
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 }}
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 }}
MUDITA_CENTER_PRERELEASE_ENABLED: ${{ secrets.MUDITA_CENTER_PRERELEASE_ENABLED }}
DEV_TOOLS_SHORTCUT_ENABLED: "1"
run: |
printenv > .env
- name: Setup Env for Linux
if: matrix.os == 'Linux'
env:
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 }}
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 }}
MUDITA_CENTER_PRERELEASE_ENABLED: ${{ secrets.MUDITA_CENTER_PRERELEASE_ENABLED }}
DEV_TOOLS_SHORTCUT_ENABLED: "1"
run: |
printenv > .env
- name: Changing app version in packages.json for Linux
if: matrix.os == 'Linux'
run: |
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
export SOURCE_BRANCH=${{ github.ref_name }}
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.ref_name }}"
export "BUILD_VERSION=-dev.${{ github.run_number }}"
sed -i "s/\"version\": \".*\",/\"version\": \"$APP_VERSION$BUILD_VERSION\",/" apps/mudita-center/package.json
- name: Changing app version in packages.json for Mac
if: matrix.os == 'macOS'
run: |
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
export SOURCE_BRANCH=${{ github.ref_name }}
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.ref_name }}"
export "BUILD_VERSION=-dev.${{ github.run_number }}"
sed -i '' "s/\"version\": \".*\",/\"version\": \"$APP_VERSION$BUILD_VERSION\",/" apps/mudita-center/package.json
- name: Changing app version in packages.json for Windows
if: matrix.os == 'Windows'
run: |
$SOURCE_BRANCH = "${{ github.ref_name }}"
$ENVIRONMENT_CATALOG_NAME = "feature-branch/${{ github.ref_name }}"
$BUILD_VERSION = "-dev.${{ github.run_number }}"
$APP_VERSION = (Get-Content -Path "apps/mudita-center/version") + $BUILD_VERSION
(Get-Content -Path 'apps/mudita-center/package.json') | ForEach-Object {
$_ -replace '"version": ".*",' , "`"version`"`: `"$APP_VERSION`","
} | Set-Content -Path 'apps/mudita-center/package.json'
- name: Setup depedencies
run: npm run setup
# - name: Copy electron-builder environment file for Windows
# if: matrix.os == 'Windows'
# run: |
# copy C:\actions-runner\envs\electron-builder.env apps/mudita-center/electron-builder.env
- name: Copy electron-builder environment file for Linux/Mac
if: matrix.os != 'Windows'
run: |
cp ~/actions-runner/envs/electron-builder.env apps/mudita-center/electron-builder.env
- 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: Build App for Linux/Mac
if: matrix.os != 'Windows'
run: |
export NODE_OPTIONS="--max-old-space-size=4096"
npm run app:dist
- name: Verify apple sign
if: matrix.os == 'macOS'
run: |
codesign -v -v apps/mudita-center/release/mac/Mudita\ Center.app
- name: Push artifacts to nexus registry from Windows
if: matrix.os == 'Windows'
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
run: |
jq -r -j .version apps/mudita-center/package.json > apps/mudita-center/version
$APP_VERSION = Get-Content -Path "apps/mudita-center/version"
$SOURCE_BRANCH = "${{ github.ref_name }}"
$ENVIRONMENT_CATALOG_NAME = "feature-branch/${{ github.ref_name }}"
$NEXUS_USERNAME = "$env:NEXUS_USERNAME"
$NEXUS_PASSWORD = ConvertTo-SecureString "$env:NEXUS_PASSWORD" -AsPlainText -Force
$AUTH = New-Object System.Management.Automation.PSCredential ($NEXUS_USERNAME, $NEXUS_PASSWORD)
copy ./apps/mudita-center/release/builder-debug.yml ./apps/mudita-center/release/builder-debug-win.yml
Invoke-WebRequest -Uri https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$($APP_VERSION)/Mudita-Center.exe -InFile ./apps/mudita-center/release/Mudita-Center.exe -Method Put -Credential $AUTH
Invoke-WebRequest -Uri https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$($APP_VERSION)/Mudita-Center.exe.blockmap -InFile ./apps/mudita-center/release/Mudita-Center.exe.blockmap -Method Put -Credential $AUTH
Invoke-WebRequest -Uri https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$($APP_VERSION)/latest.yml -InFile ./apps/mudita-center/release/latest.yml -Method Put -Credential $AUTH
Invoke-WebRequest -Uri https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$($APP_VERSION)/builder-debug-win.yml -InFile ./apps/mudita-center/release/builder-debug-win.yml -Method Put -Credential $AUTH
- name: Push artifacts to nexus registry from Linux
if: matrix.os == 'Linux'
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
run: |
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
export SOURCE_BRANCH=${{ github.ref_name }}
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.ref_name }}"
cp ./apps/mudita-center/release/builder-debug.yml ./apps/mudita-center/release/builder-debug-linux.yml
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/Mudita-Center.AppImage https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/Mudita-Center.AppImage
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/latest-linux.yml https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/latest-linux.yml
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/builder-debug-linux.yml https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/builder-debug-linux.yml
- name: Push artifacts to nexus registry from macOS
if: matrix.os == 'macOS'
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
run: |
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
export SOURCE_BRANCH=${{ github.ref_name }}
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.ref_name }}"
cp ./apps/mudita-center/release/builder-debug.yml ./apps/mudita-center/release/builder-debug-mac.yml
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/Mudita-Center.dmg https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/Mudita-Center.dmg
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/Mudita-Center.zip https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/Mudita-Center.zip
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/Mudita-Center.zip.blockmap https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/Mudita-Center.zip.blockmap
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/Mudita-Center.dmg.blockmap https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/Mudita-Center.dmg.blockmap
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/latest-mac.yml https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/latest-mac.yml
curl -u $NEXUS_USERNAME:$NEXUS_PASSWORD --upload-file ./apps/mudita-center/release/builder-debug-mac.yml https://nexus.mudita.com/repository/mudita-center/releases/$ENVIRONMENT_CATALOG_NAME/$APP_VERSION/builder-debug-mac.yml