Skip to content

Commit

Permalink
feat: support arm (#401)
Browse files Browse the repository at this point in the history
  • Loading branch information
starknt authored Nov 26, 2024
1 parent aa4017d commit 5b43171
Show file tree
Hide file tree
Showing 18 changed files with 15,877 additions and 251 deletions.
124 changes: 98 additions & 26 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ jobs:
# job 1
build-and-upload:
runs-on: ${{ matrix.os }}-latest
env:
ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron
ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder
strategy:
fail-fast: false
matrix:
Expand All @@ -24,14 +27,15 @@ jobs:
- name: Checkout
uses: actions/checkout@v4.1.7

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: 'Setup Node.js "${{ matrix.node }}.x" environment'
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
registry-url: https://npm.pkg.github.com/

- name: Setup pnpm
uses: pnpm/action-setup@v4
cache: pnpm

- name: Setup Python environment (Mac) Because of electron-builder install-app-deps requires Python setup tools
if: matrix.os == 'macos'
Expand Down Expand Up @@ -69,15 +73,31 @@ jobs:
echo "--------------------";
python --version;
- name: pnpm install
- name: Setup electron cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron
key: ${{ runner.os }}-electron-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-cache-
- name: Setup electron-builder cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron-builder
key: ${{ runner.os }}-electron-builder-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-builder-cache-
- name: "'pnpm install --force' Because we need to install optional dependencies"
run: |
echo "======================================================================";
dir || ls -lah;
echo "======================================================================";
echo "pnpm install";
echo "pnpm install --force";
echo "--------------------";
pnpm install;
pnpm install --force;
- name: 'npm run electron:build'
run: |
Expand All @@ -104,33 +124,63 @@ jobs:
cd ../../../;
dir || ls -lah;
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.exe - Windows'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.exe'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe'
if-no-files-found: error

- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.deb - Ubuntu'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.deb'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.AppImage - Ubuntu'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.AppImage'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.dmg - Mac'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage'
if-no-files-found: error

- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg - Mac'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'macos' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.dmg
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.dmg'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg'
if-no-files-found: error

# job 2
Expand All @@ -152,25 +202,47 @@ jobs:
run: mkdir release

# Download artifacts
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}.exe - Windows'
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe - Windows'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}.exe
name: DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe
path: release
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}.deb - Ubuntu'
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe - Windows'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}.deb
name: DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe
path: release
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}.AppImage - Ubuntu'
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe - Windows'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe
path: release

- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb - Ubuntu'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}.AppImage
name: DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb
path: release
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}.dmg - Mac'
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb - Ubuntu'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb
path: release
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage - Ubuntu'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage
path: release
- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage - Ubuntu'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage
path: release

- name: 'Download DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg - Mac'
uses: actions/download-artifact@v4.1.8
with:
name: DevSidecar-${{ steps.package-info.outputs.version }}.dmg
name: DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg
path: release

- name: 'Print files from "release" dir'
Expand Down
28 changes: 24 additions & 4 deletions .github/workflows/npm-run-electron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ on:
jobs:
npm-run-electron:
runs-on: ${{ matrix.os }}-latest
env:
ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron
ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder
strategy:
fail-fast: false
matrix:
Expand All @@ -23,14 +26,15 @@ jobs:
- name: Checkout
uses: actions/checkout@v4.1.7

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: 'Setup Node.js "${{ matrix.node }}.x" environment'
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
registry-url: https://npm.pkg.github.com/

- name: Setup pnpm
uses: pnpm/action-setup@v4
cache: pnpm

- name: Setup Python environment (Mac) Because of electron-builder install-app-deps requires Python setup tools
if: matrix.os == 'macos'
Expand Down Expand Up @@ -68,6 +72,22 @@ jobs:
echo "--------------------";
python --version;
- name: Setup electron cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron
key: ${{ runner.os }}-electron-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-cache-
- name: Setup electron-builder cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron-builder
key: ${{ runner.os }}-electron-builder-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-builder-cache-
- name: pnpm install
run: |
echo "======================================================================";
Expand All @@ -78,7 +98,7 @@ jobs:
echo "--------------------";
pnpm install;
- name: 'npm run electron'
- name: npm run electron
run: |
echo "======================================================================";
echo "cd packages/gui";
Expand Down
86 changes: 68 additions & 18 deletions .github/workflows/test-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ on:
jobs:
test-and-upload:
runs-on: ${{ matrix.os }}-latest
env:
ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron
ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder
strategy:
fail-fast: false
matrix:
Expand All @@ -27,14 +30,15 @@ jobs:
- name: Checkout
uses: actions/checkout@v4.1.7

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: 'Setup Node.js "${{ matrix.node }}.x" environment'
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
registry-url: https://npm.pkg.github.com/

- name: Setup pnpm
uses: pnpm/action-setup@v4
cache: pnpm

- name: Setup Python environment (Mac) Because of electron-builder install-app-deps requires Python setup tools
if: matrix.os == 'macos'
Expand Down Expand Up @@ -72,15 +76,31 @@ jobs:
echo "--------------------";
python --version;
- name: pnpm install
- name: Setup electron cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron
key: ${{ runner.os }}-electron-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-cache-
- name: Setup electron-builder cahce
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.cache/electron-builder
key: ${{ runner.os }}-electron-builder-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-builder-cache-
- name: "'pnpm install --force' Because we need to install optional dependencies"
run: |
echo "======================================================================";
dir || ls -lah;
echo "======================================================================";
echo "pnpm install";
echo "pnpm install --force";
echo "--------------------";
pnpm install;
pnpm install --force;
- name: 'npm run electron:build'
run: |
Expand All @@ -107,31 +127,61 @@ jobs:
cd ../../../;
dir || ls -lah;
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.exe - Windows'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-ia32.exe'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.exe'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-x64.exe'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.deb - Ubuntu'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe - Windows'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'windows' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.exe'
if-no-files-found: error

- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-amd64.deb'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.deb'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.deb'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.AppImage - Ubuntu'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.AppImage'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-x86_64.AppImage'
if-no-files-found: error
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}.dmg - Mac'
- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage - Ubuntu'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'ubuntu' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-arm64.AppImage'
if-no-files-found: error

- name: 'Upload DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg - Mac'
uses: actions/upload-artifact@v4.4.0
if: ${{ matrix.os == 'macos' }}
with:
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}.dmg
name: 'DevSidecar-${{ steps.package-info.outputs.version }}.dmg'
path: packages/gui/dist_electron/DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg
name: 'DevSidecar-${{ steps.package-info.outputs.version }}-universal.dmg'
if-no-files-found: error
Loading

0 comments on commit 5b43171

Please sign in to comment.