diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b2394da..efb1b4be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,12 +29,30 @@ on: jobs: build: runs-on: ${{ matrix.os }} + container: ${{ matrix.docker_image }} strategy: matrix: os: [ubuntu-latest] + include: + - package: deb + docker_image: "debian:12" + - package: rpm + docker_image: "almalinux:8" + steps: + - name: Install Build Dependencies + if: matrix.package == 'deb' + run: | + apt-get update + apt-get install -y curl git wget build-essential devscripts fakeroot equivs lintian + + - name: Install Build Dependencies + if: matrix.package == 'rpm' + run: | + dnf install -y curl git wget @development-tools rpmdevtools rpmlint + - name: Checkout Code uses: actions/checkout@v6 @@ -48,13 +66,13 @@ jobs: npm install - name: Build Release Files - run: npm run build + run: ${{ matrix.package == 'deb' && 'npm run build:deb' || matrix.package == 'rpm' && 'npm run build:rpm' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload Artifact uses: actions/upload-artifact@v6 with: - name: release_on_${{ matrix. os }} + name: release_for_${{ matrix.package }} path: release/ retention-days: 5 \ No newline at end of file diff --git a/electron-builder.json5 b/electron-builder.json5 index d323c4fa..99da5a33 100644 --- a/electron-builder.json5 +++ b/electron-builder.json5 @@ -3,7 +3,7 @@ "$schema": "https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json", "appId": "apm-app-store", "asar": true, - "productName": "APM AppStore", + "productName": "apm-app-store", "directories": { "output": "release/${version}" }, @@ -27,7 +27,8 @@ }, "target": [ "AppImage", - "deb" + "deb", + "rpm" ], "artifactName": "${productName}-Linux-${version}.${ext}" } diff --git a/electron/main/backend/install-manager.ts b/electron/main/backend/install-manager.ts index 77a53f1f..37c8278f 100644 --- a/electron/main/backend/install-manager.ts +++ b/electron/main/backend/install-manager.ts @@ -41,6 +41,7 @@ const runCommandCapture = async (execCommand: string, execParams: string[]) => { return await new Promise<{ code: number; stdout: string; stderr: string }>((resolve) => { const child = spawn(execCommand, execParams, { shell: true, + env: process.env }); let stdout = ''; diff --git a/package.json b/package.json index 53074266..0d4f4c10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "apm-app-store", - "version": "1.0.0-beta.0", + "version": "1.0.0", "main": "dist-electron/main/index.js", "description": "Client for APM App Store", "author": "elysia-best ", @@ -23,6 +23,8 @@ "scripts": { "dev": "vite --mode debug | pino-pretty", "build": "vue-tsc --noEmit && vite build --mode production && electron-builder", + "build:rpm": "vue-tsc --noEmit && vite build --mode production && electron-builder --linux rpm", + "build:deb": "vue-tsc --noEmit && vite build --mode production && electron-builder --linux deb", "preview": "vite preview --mode debug" }, "devDependencies": { diff --git a/store.spark-app.amber-pm-installer.policy b/store.spark-app.amber-pm-installer.policy new file mode 100644 index 00000000..bbdc50e4 --- /dev/null +++ b/store.spark-app.amber-pm-installer.policy @@ -0,0 +1,18 @@ + + + + AmberPM + x-package-repository + + 运行amber-pm-installer需要权限 + 要使用amber-pm-installer需要权限 + + yes + yes + yes + + /usr/bin/apm-installer + true + +