Skip to content

Frontend optimization #136

Frontend optimization

Frontend optimization #136

Workflow file for this run

name: Desktop UI
on:
workflow_dispatch:
inputs:
backend:
description: 'Backend URL to connect Desktop UI'
required: true
default: 'https://127.0.0.1'
pull_request:
paths:
- 'src/frontend/**'
jobs:
desktop-ui:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
extension: deb
- os: macos-latest
extension: dmg
- os: windows-latest
extension: exe
runs-on: ${{ matrix.os }}
env:
DEB_FILENAME: RekonoUI
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Configure backend URL
if: github.event_name == 'workflow_dispatch'
shell: python
working-directory: src/frontend
# nosemgrep: yaml.github-actions.security.run-shell-injection.run-shell-injection
run: |
import re
import sys
urlregex = r'https?://[\w/:.]+'
match = re.match(urlregex, '${{ github.event.inputs.backend }}')
if match.group(0) == '${{ github.event.inputs.backend }}':
with open('.env.production', 'w') as env_production:
env_production.write('VUE_APP_DESKTOP_BACKEND_URL=${{ github.event.inputs.backend }}')
else:
print('Invalid URL format')
sys.exit(1)
- name: Install dependencies
working-directory: src/frontend
run: npm install .
- name: Generate Desktop UI
working-directory: src/frontend
run: npm run electron:build
- name: Change DEB filename
if: matrix.os != 'windows-latest'
working-directory: src/frontend/dist_electron
run: mv *.${{ matrix.extension }} $DEB_FILENAME.${{ matrix.extension }}
- name: Change DEB filename
if: matrix.os == 'windows-latest'
working-directory: src/frontend/dist_electron
run: ren *.${{ matrix.extension }} ${{ env.DEB_FILENAME }}.${{ matrix.extension }}
- name: Upload Desktop UI as GitHub artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.DEB_FILENAME }}_${{ matrix.os }}
path: src/frontend/dist_electron/${{ env.DEB_FILENAME }}.${{ matrix.extension }}
if-no-files-found: warn