From 19976cd1192a594b540b188cc963919801667f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 19 Sep 2024 17:20:12 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E6=B7=BB=E5=8A=A0=20Github=20Actions?= =?UTF-8?q?=20`.github/workflows/build-and-upload.yml`=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E8=87=AA=E5=8A=A8=E6=89=93=E5=8C=85=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-and-upload.yml | 166 +++++++++++++++++++++++++ packages/gui/package.json | 1 + 2 files changed, 167 insertions(+) create mode 100644 .github/workflows/build-and-upload.yml diff --git a/.github/workflows/build-and-upload.yml b/.github/workflows/build-and-upload.yml new file mode 100644 index 00000000..636f2a8d --- /dev/null +++ b/.github/workflows/build-and-upload.yml @@ -0,0 +1,166 @@ +name: "Build And Upload" + +on: + release: + types: [ created ] + +jobs: + # job 1 + build-and-upload: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ + windows-latest, + ubuntu-latest, + macos-latest + ] + node: [ + 16 + ] + lerna: [ + 6 + ] + steps: + # step 1.1 + - uses: actions/checkout@v4.1.7 + + # step 1.2 + - name: "Setup Node.js environment" + uses: actions/setup-node@v4.0.3 + with: + node-version: ${{ matrix.node }} + registry-url: https://npm.pkg.github.com/ + + # step 1.3 + - name: "Get package info" + id: package-info + uses: luizfelipelaviola/get-package-info@v1 + with: + path: ./packages/mitmproxy + + # step 1.4 + - name: "Print" + run: | + echo "version = ${{ steps.package-info.outputs.version }}"; + echo "github.event.release.upload_url = ${{ github.event.release.upload_url }}"; + echo "ref = ${{ github.event.ref }}"; + echo "tags = ${{ github.tags }}"; + + # step 1.5 + - name: "npm install lerna/yarn" + run: | + echo "======================================================================"; + dir || ls; + + echo "======================================================================"; + echo "npm install lerna@${{ matrix.lerna }} -g"; + echo "----------"; + npm install lerna@${{ matrix.lerna }} -g; + + echo "======================================================================"; + echo "npm install yarn"; + echo "----------"; + npm install yarn; + + # step 1.6 + - name: "npm -v | lerna -v | yarn -v" + run: | + echo "======================================================================"; + echo "lerna -v"; + echo "----------"; + lerna -v; + + echo "======================================================================"; + echo "npm -v"; + echo "----------"; + npm -v; + + echo "======================================================================"; + echo "yarn -v"; + echo "----------"; + yarn -v; + + # step 1.7 + - name: "lerna bootstrap" + run: | + echo "======================================================================"; + dir || ls; + + echo "======================================================================"; + echo "lerna bootstrap --npm-client=yarn"; + echo "----------"; + lerna bootstrap --npm-client=yarn; + + # step 1.8 + - name: "npm run electron:build" + run: | + echo "======================================================================"; + dir || ls; + + echo "======================================================================"; + echo "cd packages/gui"; + echo "----------"; + cd packages/gui; + + echo "======================================================================"; + dir || ls; + + echo "======================================================================"; + echo "npm run electron:build"; + echo "----------"; + npm run electron:build; + + echo "======================================================================"; + cd dist_electron; + dir || ls; + + cd ../../../; + + # step 1.9 + # ----------------------------------------- + # step 1.9.1 + - name: "Upload Asset DevSidecar.exe" + uses: actions/upload-release-asset@v1 + if: ${{ github.event_name == 'release' && github.event.action == 'created' && matrix.os == 'windows-latest' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.exe + asset_name: "DevSidecar-${{ steps.package-info.outputs.version }}.exe" + asset_content_type: application/x-msdownload + # step 1.9.2 + - name: "Upload Asset DevSidecar.deb" + uses: actions/upload-release-asset@v1 + if: ${{ github.event_name == 'release' && github.event.action == 'created' && matrix.os == 'ubuntu-latest' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.deb + asset_name: "DevSidecar-${{ steps.package-info.outputs.version }}.deb" + asset_content_type: application/x-msdownload + # step 1.9.3 + - name: "Upload Asset DevSidecar.AppImage" + uses: actions/upload-release-asset@v1 + if: ${{ github.event_name == 'release' && github.event.action == 'created' && matrix.os == 'ubuntu-latest' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.AppImage + asset_name: "DevSidecar-${{ steps.package-info.outputs.version }}.AppImage" + asset_content_type: application/x-msdownload + # step 1.9.4 + - name: "Upload Asset DevSidecar.dmg " + uses: actions/upload-release-asset@v1 + if: ${{ github.event_name == 'release' && github.event.action == 'created' && (matrix.os == 'macos-11' || matrix.os == 'macos-12' || matrix.os == 'macos-13' || matrix.os == 'macos-latest') }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.dmg + asset_name: "DevSidecar-${{ steps.package-info.outputs.version }}.dmg" + asset_content_type: application/x-msdownload \ No newline at end of file diff --git a/packages/gui/package.json b/packages/gui/package.json index 990281bd..9ebb0293 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -55,6 +55,7 @@ "electron": "17.1.0", "electron-devtools-installer": "^3.1.0", "electron-icon-builder": "^2.0.1", + "electron-builder": "^23.0.3", "eslint": "^6.7.2", "eslint-plugin-import": "^2.20.2", "eslint-plugin-node": "^11.1.0",