Files
desktop/.gitea/workflows/linux.yaml
2026-02-18 17:53:37 +02:00

72 lines
2.9 KiB
YAML

name: Linux Kernel Build
#Запускаем только кнопкой "Run workflow" в Actions
on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'lib/**'
jobs:
build:
runs-on: macos
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
# Кэш npm (тарифы грузятся из ~/.npm-cache на macOS)
- name: Cache npm cache
uses: actions/cache@v5
with:
path: ${{ env.HOME }}/.npm-cache
key: ${{ runner.os }}-npm-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-npm-
if-no-files-found: ignore
# Кэш для electron-builder
- name: Cache electron-builder
uses: actions/cache@v5
with:
path: |
${{ env.HOME }}/Library/Caches/electron-builder
${{ env.HOME }}/Library/Caches/electron
key: ${{ runner.os }}-electron-builder-${{ hashFiles('**/electron-builder.yml') }}
restore-keys: |
${{ runner.os }}-electron-builder-
if-no-files-found: ignore
- name: NPM offline setup
shell: bash
run: |
npm config set cache "$HOME/.npm-cache" --global
npm config set prefer-offline true --global
- name: Install npm dependencies
run: npm install --prefer-offline --no-audit --no-fund
- name: Build the application
run: npm run kernel:linux
#Загружаем на удаленный сервер по SSH используя scp и пароль из секретов
#Загружаем из двух папок dist/builds/darwin/x64 и dist/builds/darwin/arm64, так как electron-builder может создавать разные файлы для разных архитектур
#Вызываем файл sshupload.sh и передаем ему параметры из секретов, чтобы не хранить пароль в открытом виде в workflow
- name: Upload to SSH
shell: bash
run: |
chmod +x "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh"
sh "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh" \
-l "$GITHUB_WORKSPACE/dist/builds/linux/x64/Rosetta-*.AppImage" \
-r "${{ secrets.SSH_TARGET_DIR }}/linux/x64" \
-s "${{ secrets.SSH_HOST }}" \
-u "${{ secrets.SSH_USERNAME }}" \
-p '${{ secrets.SSH_PASSWORD }}'
sh "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh" \
-l "$GITHUB_WORKSPACE/dist/builds/linux/arm64/Rosetta-*.AppImage" \
-r "${{ secrets.SSH_TARGET_DIR }}/linux/arm64" \
-s "${{ secrets.SSH_HOST }}" \
-u "${{ secrets.SSH_USERNAME }}" \
-p '${{ secrets.SSH_PASSWORD }}'