Улучшен CI/CD

This commit is contained in:
RoyceDa
2026-03-22 16:08:24 +02:00
parent 329e6d7825
commit b300fa4d03
4 changed files with 80 additions and 125 deletions

View File

@@ -13,6 +13,10 @@ on:
jobs:
build:
runs-on: macos
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
steps:
- name: Checkout code
uses: actions/checkout@v6
@@ -31,6 +35,7 @@ jobs:
restore-keys: |
${{ runner.os }}-npm-
if-no-files-found: ignore
# Кэш для electron-builder
- name: Cache electron-builder
uses: actions/cache@v5
@@ -42,32 +47,35 @@ jobs:
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:mac
#Загружаем на удаленный сервер по SSH используя scp и пароль из секретов
#Загружаем из двух папок dist/builds/darwin/x64 и dist/builds/darwin/arm64, так как electron-builder может создавать разные файлы для разных архитектур
#Вызываем файл sshupload.sh и передаем ему параметры из секретов, чтобы не хранить пароль в открытом виде в workflow
- name: Upload to SSH using scp
shell: bash
- name: Build the application (${{ matrix.arch }})
run: |
chmod +x "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh"
sh "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh" \
-l "$GITHUB_WORKSPACE/dist/builds/darwin/x64/Rosetta-*.pkg" \
-r "${{ secrets.SDU_SSH_KERNEL }}/darwin/x64" \
-s "${{ secrets.SDU_SSH_HOST }}" \
-u "${{ secrets.SDU_SSH_USERNAME }}" \
-p '${{ secrets.SDU_SSH_PASSWORD }}'
sh "$GITHUB_WORKSPACE/.gitea/workflows/sshupload.sh" \
-l "$GITHUB_WORKSPACE/dist/builds/darwin/arm64/Rosetta-*.pkg" \
-r "${{ secrets.SDU_SSH_KERNEL }}/darwin/arm64" \
-s "${{ secrets.SDU_SSH_HOST }}" \
-u "${{ secrets.SDU_SSH_USERNAME }}" \
-p '${{ secrets.SDU_SSH_PASSWORD }}'
npx electron-vite build
npx electron-builder --mac --${{ matrix.arch }}
- name: Check if files exist (${{ matrix.arch }})
run: |
echo "=== Checking dist structure ==="
find dist/builds/darwin/${{ matrix.arch }} -type f -name "*.pkg" 2>/dev/null || echo "No PKG files found"
ls -la dist/builds/darwin/${{ matrix.arch }}/ 2>/dev/null || echo "arch folder not found"
- name: Upload ${{ matrix.arch }} to SSH using SCP
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SDU_SSH_HOST }}
username: ${{ secrets.SDU_SSH_USERNAME }}
password: ${{ secrets.SDU_SSH_PASSWORD }}
port: 22
source: "dist/builds/darwin/${{ matrix.arch }}/Rosetta-*.pkg"
target: "${{ secrets.SDU_SSH_KERNEL }}/darwin/${{ matrix.arch }}"
strip_components: 4
rm: true