mirror of
https://github.com/mudita/mudita-center.git
synced 2025-12-23 22:28:03 -05:00
198 lines
13 KiB
YAML
198 lines
13 KiB
YAML
name: Build & deploy to feature branch
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- ready_for_review
|
|
- reopened
|
|
workflow_dispatch:
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.runner_label }}
|
|
strategy:
|
|
matrix:
|
|
runner_label: [linux-nexus, windows-nexus, macos-nexus]
|
|
if: startsWith(github.head_ref || github.ref, 'CP-')
|
|
environment: development
|
|
timeout-minutes: 40
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- name: Setup node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 18.16.1
|
|
- name: Setup Env for Windows
|
|
if: matrix.runner_label == 'windows-nexus'
|
|
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 }}
|
|
GH_BUILD_TOKEN: ${{ secrets.GH_BUILD_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 }}
|
|
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.runner_label == 'macos-nexus'
|
|
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 }}
|
|
GH_BUILD_TOKEN: ${{ secrets.GH_BUILD_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 }}
|
|
DEV_TOOLS_SHORTCUT_ENABLED: "1"
|
|
run: |
|
|
printenv > .env
|
|
- name: Setup Env for Linux
|
|
if: matrix.runner_label == 'linux-nexus'
|
|
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 }}
|
|
GH_BUILD_TOKEN: ${{ secrets.GH_BUILD_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 }}
|
|
DEV_TOOLS_SHORTCUT_ENABLED: "1"
|
|
run: |
|
|
printenv > .env
|
|
- name: Changing app version in packages.json for Linux
|
|
if: matrix.runner_label == 'linux-nexus'
|
|
run: |
|
|
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
|
|
export SOURCE_BRANCH=${{ github.head_ref }}
|
|
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.head_ref }}"
|
|
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.runner_label == 'macos-nexus'
|
|
run: |
|
|
export APP_VERSION=`cat apps/mudita-center/package.json | jq -r .version`
|
|
export SOURCE_BRANCH=${{ github.head_ref }}
|
|
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.head_ref }}"
|
|
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.runner_label == 'windows-nexus'
|
|
run: |
|
|
$SOURCE_BRANCH = "${{ github.head_ref }}"
|
|
$ENVIRONMENT_CATALOG_NAME = "feature-branch/${{ github.head_ref }}"
|
|
$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 Linux/Mac
|
|
if: matrix.runner_label != 'windows-nexus'
|
|
run: |
|
|
cp ~/actions-runner/envs/electron-builder.env apps/mudita-center/electron-builder.env
|
|
- name: Build App for Windows
|
|
if: matrix.runner_label == 'windows-nexus'
|
|
run: |
|
|
$env:NODE_OPTIONS="--max-old-space-size=4096"
|
|
$env:LOCALAPPDATA=""
|
|
npm run app:dist
|
|
- name: Build App for Linux/Mac
|
|
if: matrix.runner_label != 'windows-nexus'
|
|
run: |
|
|
export NODE_OPTIONS="--max-old-space-size=4096"
|
|
npm run app:dist
|
|
- name: Push artifacts to nexus registry from Windows
|
|
if: matrix.runner_label == 'windows-nexus'
|
|
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.head_ref }}"
|
|
$ENVIRONMENT_CATALOG_NAME = "feature-branch/${{ github.head_ref }}"
|
|
$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.runner_label == 'linux-nexus'
|
|
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.head_ref }}
|
|
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.head_ref }}"
|
|
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.runner_label == 'macos-nexus'
|
|
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.head_ref }}
|
|
export "ENVIRONMENT_CATALOG_NAME=feature-branch/${{ github.head_ref }}"
|
|
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
|