Add Windows ARM 64 native build with native ffmpeg

pull/2788/head
talynone 4 months ago
parent 260228d72b
commit 78e4122e30

@ -176,3 +176,53 @@ jobs:
yarn upload-artifacts dist/LosslessCut-linux-armv7l.tar.bz2
yarn upload-artifacts dist/LosslessCut-linux-x64.tar.bz2
yarn upload-artifacts --name screenshot-linux.jpeg screenshot.jpeg
release-win-arm64:
runs-on: windows-latest
timeout-minutes: 60
env:
is_tag: ${{ startsWith(github.ref, 'refs/tags/v') }}
steps:
# Windows fix. See https://github.com/actions/checkout/issues/226
- run: git config --global core.autocrlf false
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 22
cache: 'yarn'
# Because of timeout issue https://github.com/yarnpkg/yarn/issues/4890
- run: yarn install --immutable --network-timeout 1000000
- name: Download ffmpeg (Windows ARM64)
run: yarn download-ffmpeg-win32-arm64
- name: Build/release Electron app (Windows ARM64)
uses: samuelmeuli/action-electron-builder@v1
with:
github_token: ${{ secrets.github_token }}
release: ${{ env.is_tag == 'true' }}
max_attempts: 1
args: --arm64 --win
# e2e test skipped: x64 runner cannot execute ARM64 binaries
# https://stackoverflow.com/questions/74774114/using-docker-buildx-github-action-cache-without-official-actions/77225313#77225313
- name: Expose actions cache variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
core.exportVariable('ACTIONS_RESULTS_URL', process.env['ACTIONS_RESULTS_URL'])
- name: Upload artifacts (Windows ARM64)
if: env.is_tag == 'false'
env:
ACTIONS_RUNTIME_TOKEN: ${{ env.ACTIONS_RUNTIME_TOKEN }}
ACTIONS_RESULTS_URL: ${{ env.ACTIONS_RESULTS_URL }}
run: |
yarn upload-artifacts dist/LosslessCut-win-arm64.7z

@ -23,6 +23,7 @@ yarn download-ffmpeg-darwin-x64
yarn download-ffmpeg-darwin-arm64
yarn download-ffmpeg-linux-x64
yarn download-ffmpeg-win32-x64
yarn download-ffmpeg-win32-arm64
```
For Windows, you may have to install [7z](https://www.7-zip.org/download.html), and then put the 7z folder in your `PATH`.

@ -15,6 +15,7 @@
"download-ffmpeg-darwin-arm64": "mkdirp ffmpeg/darwin-arm64 && cd ffmpeg/darwin-arm64 && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffmpeg-macos-ARM64 -O ffmpeg && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffprobe-macos-ARM64 -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
"download-ffmpeg-linux-x64": "mkdirp ffmpeg/linux-x64 && cd ffmpeg/linux-x64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/8.0-1/ffmpeg-n8.0-latest-linux64-gpl-shared-8.0.tar.xz -O ffmpeg-ffprobe.xz && tar -xv -f ffmpeg-ffprobe.xz && mv ffmpeg-n8.0-latest-linux64-gpl-shared-8.0 extracted && mkdirp lib && mv extracted/bin/ffmpeg extracted/bin/ffprobe extracted/lib/lib*.so* lib",
"download-ffmpeg-win32-x64": "mkdirp ffmpeg/win32-x64 && cd ffmpeg/win32-x64 && npx download-cli https://github.com/mifi/ffmpeg-builds/releases/download/8.0-1/ffmpeg-n8.0-latest-win64-gpl-shared-8.0.zip --out . --filename ffmpeg-ffprobe.zip && 7z x ffmpeg-ffprobe.zip && mkdirp lib && cd ffmpeg-n8.0-latest-win64-gpl-shared-8.0/bin && npx shx mv ffmpeg.exe ffprobe.exe *.dll ../../lib",
"download-ffmpeg-win32-arm64": "mkdirp ffmpeg/win32-arm64 && cd ffmpeg/win32-arm64 && npx download-cli https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n8.0-latest-winarm64-gpl-shared-8.0.zip --out . --filename ffmpeg-ffprobe.zip && 7z x ffmpeg-ffprobe.zip && mkdirp lib && cd ffmpeg-n8.0-latest-winarm64-gpl-shared-8.0/bin && npx shx mv ffmpeg.exe ffprobe.exe *.dll ../../lib",
"build": "yarn generate-icon && electron-vite build",
"tsc": "tsc --build",
"test": "vitest",
@ -473,4 +474,4 @@
}
},
"packageManager": "yarn@4.11.0"
}
}
Loading…
Cancel
Save