diff --git a/.gitea/workflows/linux.yaml b/.gitea/workflows/linux.yaml index f53c268..a8aab9b 100644 --- a/.gitea/workflows/linux.yaml +++ b/.gitea/workflows/linux.yaml @@ -20,30 +20,66 @@ jobs: uses: actions/setup-node@v6 with: node-version: '22' + + - name: Cache npm dependencies + uses: actions/cache@v5 + with: + path: ~/.npm + key: ${{ runner.os }}-linux-npm-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-linux-npm- + if-no-files-found: ignore + + - name: Cache electron-builder + uses: actions/cache@v5 + with: + path: | + ~/.cache/electron + key: ${{ runner.os }}-linux-electron-builder-${{ hashFiles('**/electron-builder.yml') }} + restore-keys: | + ${{ runner.os }}-linux-electron-builder- + if-no-files-found: ignore + + - name: NPM offline setup + run: | + npm config set cache ~/.npm --global + npm config set prefer-offline true --global + - name: Install npm dependencies run: npm install --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: Install scp - run: sudo apt-get install -y openssh-client + + - name: Check if files exist + run: | + echo "=== Checking dist structure ===" + find dist/builds -type f -name "*.AppImage" 2>/dev/null || echo "No AppImage files found" + ls -la dist/builds/linux/ 2>/dev/null || echo "linux folder not found" + + - name: Install SCP in Docker container + run: apt-get install -y openssh-client + - name: Upload x64 to SSH using SCP - uses: appleboy/scp-upload@master + uses: appleboy/scp-action@master with: host: ${{ secrets.SDU_SSH_HOST }} username: ${{ secrets.SDU_SSH_USERNAME }} password: ${{ secrets.SDU_SSH_PASSWORD }} port: 22 - source: "$GITHUB_WORKSPACE/dist/builds/linux/x64/Rosetta-*.AppImage" + source: "dist/builds/linux/x64/Rosetta-*.AppImage" target: "${{ secrets.SDU_SSH_KERNEL }}/linux/x64" + strip_components: 4 + rm: true + - name: Upload arm64 to SSH using SCP - uses: appleboy/scp-upload@master + uses: appleboy/scp-action@master with: host: ${{ secrets.SDU_SSH_HOST }} username: ${{ secrets.SDU_SSH_USERNAME }} password: ${{ secrets.SDU_SSH_PASSWORD }} port: 22 - source: "$GITHUB_WORKSPACE/dist/builds/linux/arm64/Rosetta-*.AppImage" - target: "${{ secrets.SDU_SSH_KERNEL }}/linux/arm64" \ No newline at end of file + source: "dist/builds/linux/arm64/Rosetta-*.AppImage" + target: "${{ secrets.SDU_SSH_KERNEL }}/linux/arm64" + strip_components: 4 + rm: true \ No newline at end of file