Skip to content

Release Mezon App for Linux #799

Release Mezon App for Linux

Release Mezon App for Linux #799

name: Release Mezon App for Linux
permissions:
contents: read
on:
release:
types: [published]
workflow_dispatch:
jobs:
release:
runs-on: mezon-build-linux
name: Release Mezon App for Linux
environment: prod
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24.5.0'
- name: Install package
run: |
export nv=$(node -v)
echo "Node version: $nv"
echo "Installing dependencies"
yarn config set nodedir ~/.cache/node-gyp/20.18.1/
echo "Node directory: ${nv:1}"
yarn
- name: Reset Nx cache
run: |
echo "Resetting Nx cache"
yarn nx reset
- name: Remove ENV
run: |
rm -rf apps/desktop/src/assets/mac-icon.png
rm -rf apps/chat/.env
cd apps/chat/src/assets/
find . -maxdepth 1 -type f -name "*.png" ! -name "button_openmezon.png" -delete
- name: Create ENV
uses: SpicyPizza/create-envfile@v2.0
with:
directory: apps/chat
envkey_NX_CHAT_APP_API_HOST: ${{ secrets.NX_CHAT_APP_API_HOST_PROD }}
envkey_NX_CHAT_APP_API_PORT: ${{ secrets.NX_CHAT_APP_API_PORT_PROD }}
envkey_NX_CHAT_APP_API_KEY: ${{ secrets.NX_CHAT_APP_API_KEY_PROD }}
envkey_NX_CHAT_APP_API_SECURE: ${{ secrets.NX_CHAT_APP_API_SECURE_PROD }}
envkey_NX_CHAT_APP_GOOGLE_CLIENT_ID: ${{ secrets.NX_CHAT_APP_GOOGLE_CLIENT_ID_PROD }}
envkey_NX_CHAT_APP_REDIRECT_URI: ${{ secrets.NX_CHAT_APP_REDIRECT_URI_PROD }}
envkey_NX_CHAT_APP_FCM_API_KEY: ${{ secrets.NX_CHAT_APP_FCM_API_KEY_PROD }}
envkey_NX_CHAT_APP_FCM_AUTH_DOMAIN: ${{ secrets.NX_CHAT_APP_FCM_AUTH_DOMAIN_PROD }}
envkey_NX_CHAT_APP_FCM_PROJECT_ID: ${{ secrets.NX_CHAT_APP_FCM_PROJECT_ID_PROD }}
envkey_NX_CHAT_APP_FCM_STORAGE_BUCKET: ${{ secrets.NX_CHAT_APP_FCM_STORAGE_BUCKET_PROD }}
envkey_NX_CHAT_APP_FCM_MESSAGING_SENDER_ID: ${{ secrets.NX_CHAT_APP_FCM_MESSAGING_SENDER_ID_PROD }}
envkey_NX_CHAT_APP_FCM_APP_ID: ${{ secrets.NX_CHAT_APP_FCM_APP_ID_PROD }}
envkey_NX_CHAT_APP_FCM_MEASUREMENT_ID: ${{ secrets.NX_CHAT_APP_FCM_MEASUREMENT_ID_PROD }}
envkey_NX_CHAT_APP_FCM_VAPID_KEY: ${{ secrets.NX_CHAT_APP_FCM_VAPID_KEY_PROD }}
envkey_NX_CHAT_APP_API_TENOR_KEY: ${{ secrets.NX_CHAT_APP_API_TENOR_KEY_PROD }}
envkey_NX_CHAT_APP_API_CLIENT_KEY_CUSTOM: ${{ secrets.NX_CHAT_APP_API_CLIENT_KEY_CUSTOM_PROD }}
envkey_NX_CHAT_SENTRY_DNS: ${{ secrets.NX_CHAT_SENTRY_DNS_PROD }}
envkey_NX_CHAT_APP_ANNONYMOUS_USER_ID: ${{ secrets.NX_CHAT_APP_ANNONYMOUS_USER_ID_PROD }}
envkey_NX_CHAT_APP_NOTIFICATION_WS_URL: ${{ secrets.NX_CHAT_APP_NOTIFICATION_WS_URL_PROD }}
envkey_NX_CHAT_SENTRY_DSN: ${{ secrets.NX_CHAT_SENTRY_DSN_PROD }}
envkey_NX_IMGPROXY_BASE_URL: ${{ secrets.NX_IMGPROXY_BASE_URL }}
envkey_NX_IMGPROXY_KEY: ${{ secrets.NX_IMGPROXY_KEY }}
envkey_NX_WEBRTC_ICESERVERS_URL: ${{ secrets.NX_WEBRTC_ICESERVERS_URL_PROD }}
envkey_NX_WEBRTC_ICESERVERS_USERNAME: ${{ secrets.NX_WEBRTC_ICESERVERS_USERNAME_PROD }}
envkey_NX_WEBRTC_ICESERVERS_CREDENTIAL: ${{ secrets.NX_WEBRTC_ICESERVERS_CREDENTIAL_PROD }}
envkey_NX_CHAT_APP_STREAM_WS_URL: ${{ secrets.NX_CHAT_APP_STREAM_WS_URL }}
envkey_NX_CHAT_APP_MEET_WS_URL: ${{ secrets.NX_CHAT_APP_MEET_WS_URL }}
envkey_NX_CHAT_APP_OAUTH2_AUTHORIZE_URL: ${{ secrets.NX_CHAT_APP_OAUTH2_AUTHORIZE_URL }}
envkey_NX_CHAT_APP_OAUTH2_CLIENT_ID: ${{ secrets.NX_CHAT_APP_OAUTH2_CLIENT_ID }}
envkey_NX_CHAT_APP_OAUTH2_REDIRECT_URI: ${{ secrets.NX_CHAT_APP_OAUTH2_REDIRECT_URI }}
envkey_NX_CHAT_APP_OAUTH2_RESPONSE_TYPE: ${{ secrets.NX_CHAT_APP_OAUTH2_RESPONSE_TYPE }}
envkey_NX_CHAT_APP_OAUTH2_SCOPE: ${{ secrets.NX_CHAT_APP_OAUTH2_SCOPE }}
envkey_NX_CHAT_APP_OAUTH2_CODE_CHALLENGE_METHOD: ${{ secrets.NX_CHAT_APP_OAUTH2_CODE_CHALLENGE_METHOD }}
envkey_NX_CHAT_APP_API_TENOR_URL_CATEGORIES: https://tenor.googleapis.com/v2/categories?key=
envkey_NX_CHAT_APP_API_TENOR_URL_SEARCH: https://tenor.googleapis.com/v2/search?q=
envkey_NX_CHAT_APP_API_TENOR_URL_FEATURED: https://tenor.googleapis.com/v2/featured?key=
envkey_NX_MAX_LENGTH_NAME_ALLOWED: 64
envkey_NX_LOGO_MEZON: https://cdn.mezon.ai/images/mezon_logo.png
envkey_NX_BASE_IMG_URL: https://cdn.mezon.ai
envkey_NX_PROFILE_IMG_URL: https://profile.mezon.ai
envkey_NX_CHAT_APP_OAUTH2_LOG_OUT_CALLBACK: https://mezon.ai/logout/callback
envkey_NX_CHAT_APP_OAUTH2_LOG_OUT: https://oauth2.mezon.ai/oauth2/sessions/logout
envkey_NX_CLI_SET: true
envkey_NX_LOAD_DOT_ENV_FILES: true
envkey_NX_TASK_TARGET_PROJECT: chat
envkey_NX_TASK_TARGET_TARGET: build
envkey_NX_TASK_TARGET_CONFIGURATION: production
envkey_NX_CHAT_APP_API_GW_HOST: ${{ secrets.NX_CHAT_APP_API_GW_HOST }}
envkey_NX_CHAT_APP_API_GW_PORT: ${{ secrets.NX_CHAT_APP_API_GW_PORT }}
envkey_NX_DOMAIN_URL: https://mezon.ai
envkey_NX_CHAT_APP_MMN_API_URL: https://dong.mezon.ai/mmn-api
envkey_NX_CHAT_APP_INDEXER_API_URL: https://dong.mezon.ai/indexer-api
envkey_NX_CHAT_APP_ZK_API_URL: https://dong.mezon.ai/zk-api
envkey_NX_OGP_URL: https://ogp.mezon.ai/ogp
- name: Release Desktop
run: |
yarn release:desktop
env:
USE_HARD_LINKS: false
- name: Push to MinIO
run: |
mc cp dist/executables/latest-linux.yml mezon/mezon/release/latest-linux.yml
mc cp dist/executables/mezon-*-linux-amd64.deb mezon/mezon/release/