From 8a866f45e65f03846eb47973db8692e219300b1b Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Tue, 17 Oct 2023 15:03:15 +0800 Subject: [PATCH] feat: Package for linux arm64 --- .github/workflows/package.yml | 13 ++++++++++--- .github/workflows/package_for_test.yml | 11 +++++++++-- packages/neuron-wallet/electron-builder.yml | 5 ++++- scripts/download-ckb.sh | 19 ++++++++++++++++++- scripts/release-checksums.rb | 5 +++-- 5 files changed, 44 insertions(+), 9 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 04fdd175e4..c9e20300b5 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -134,9 +134,16 @@ jobs: name: Neuron-Win path: release/Neuron-*-setup.exe - - name: Upload Neuron Linux + - name: Upload Neuron Linux(x64) if: matrix.os == 'ubuntu-20.04' uses: actions/upload-artifact@v3 with: - name: Neuron-Linux - path: release/Neuron-*.AppImage + name: Neuron-Linux-x64 + path: release/Neuron-*-x64.AppImage + + - name: Upload Neuron Linux(arm64) + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3 + with: + name: Neuron-Linux-arm64 + path: release/Neuron-*-arm64.AppImage diff --git a/.github/workflows/package_for_test.yml b/.github/workflows/package_for_test.yml index 1a014d36c8..174574496f 100644 --- a/.github/workflows/package_for_test.yml +++ b/.github/workflows/package_for_test.yml @@ -165,12 +165,19 @@ jobs: name: Neuron-Win path: release/Neuron-*-setup.exe - - name: Upload Neuron Linux + - name: Upload Neuron Linux(x64) if: matrix.os == 'ubuntu-20.04' uses: actions/upload-artifact@v3 with: name: Neuron-Linux - path: release/Neuron-*.AppImage + path: release/Neuron-*-arm64.AppImage + + - name: Upload Neuron Linux(x64) + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3 + with: + name: Neuron-Linux + path: release/Neuron-*-arm64.AppImage comment_when_package_success: needs: [packaging] diff --git a/packages/neuron-wallet/electron-builder.yml b/packages/neuron-wallet/electron-builder.yml index 6318166a0c..5650279cfe 100644 --- a/packages/neuron-wallet/electron-builder.yml +++ b/packages/neuron-wallet/electron-builder.yml @@ -77,7 +77,7 @@ linux: category: Finance icon: assets/icons/ extraFiles: - - from: "bin/linux/ckb" + - from: "bin/linux/ckb-${arch}" to: "bin/ckb" - from: "bin/linux/ckb-light-client" to: "bin/ckb-light-client" @@ -85,3 +85,6 @@ linux: to: "light/ckb_light.toml" target: - AppImage + arch: + - arm64 + - x64 diff --git a/scripts/download-ckb.sh b/scripts/download-ckb.sh index 335b0f36d2..f414eed6b8 100755 --- a/scripts/download-ckb.sh +++ b/scripts/download-ckb.sh @@ -47,13 +47,30 @@ function download_macos_light() { } function download_linux() { + download_linux_x86_64 + download_linux_aarch64 +} + +function download_linux_x86_64() { # Linux CKB_FILENAME="ckb_${CKB_VERSION}_x86_64-unknown-linux-gnu-portable" cd $ROOT_DIR/packages/neuron-wallet/bin/linux curl -O -L "${GITHUB_RELEASE_URL}/${CKB_VERSION}/${CKB_FILENAME}.tar.gz" tar xvzf ${CKB_FILENAME}.tar.gz - cp ${CKB_FILENAME}/ckb ./ + cp ${CKB_FILENAME}/ckb ./ckb-x64 + rm -rf $CKB_FILENAME + rm ${CKB_FILENAME}.tar.gz +} + +function download_linux_aarch64() { + # for linux arm64 + CKB_FILENAME="ckb_${CKB_VERSION}_aarch64-unknown-linux-gnu" + cd $ROOT_DIR/packages/neuron-wallet/bin/linux + + curl -O -L "${GITHUB_RELEASE_URL}/${CKB_VERSION}/${CKB_FILENAME}.tar.gz" + tar xvzf ${CKB_FILENAME}.tar.gz + cp ${CKB_FILENAME}/ckb ./ckb-arm64 rm -rf $CKB_FILENAME rm ${CKB_FILENAME}.tar.gz } diff --git a/scripts/release-checksums.rb b/scripts/release-checksums.rb index e6381ee7e0..052706b399 100644 --- a/scripts/release-checksums.rb +++ b/scripts/release-checksums.rb @@ -13,14 +13,15 @@ macos_x64_dmg = "https://github.com/nervosnetwork/neuron/releases/download/#{tag}/Neuron-#{tag}-x64.dmg" macos_arm64_dmg = "https://github.com/nervosnetwork/neuron/releases/download/#{tag}/Neuron-#{tag}-arm64.dmg" -linux_appimage = "https://github.com/nervosnetwork/neuron/releases/download/#{tag}/Neuron-#{tag}-x86_64.AppImage" +linux_x64_appimage = "https://github.com/nervosnetwork/neuron/releases/download/#{tag}/Neuron-#{tag}-x64.AppImage" +linux_arm64_appimage = "https://github.com/nervosnetwork/neuron/releases/download/#{tag}/Neuron-#{tag}-arm64.AppImage" def get_sha256_checksum(url) content = URI.open(url).read Digest::SHA256.hexdigest(content) end -windows_exe_sha256, macos_x64_zip_sha256, macos_arm64_zip_sha256, macos_x64_dmg_sha256, macos_arm64_dmg_sha256, linux_appimage_sha256 = [windows_exe, macos_x64_zip, macos_arm64_zip, macos_x64_dmg, macos_arm64_dmg, linux_appimage].map do |url| +windows_exe_sha256, macos_x64_zip_sha256, macos_arm64_zip_sha256, macos_x64_dmg_sha256, macos_arm64_dmg_sha256, linux_appimage_sha256 = [windows_exe, macos_x64_zip, macos_arm64_zip, macos_x64_dmg, macos_arm64_dmg, linux_x64_appimage, linux_arm64_appimage].map do |url| Thread.new { get_sha256_checksum(url) } end.map(&:value)