From e8de73f06d1bcde8d2b1f04f79aa4a3b6442a66e 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 | 13 ++++++++++--- packages/neuron-wallet/electron-builder.yml | 7 +++++-- scripts/download-ckb.sh | 19 ++++++++++++++++++- scripts/release-checksums.rb | 5 +++-- 5 files changed, 46 insertions(+), 11 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index c22478947d..80406c5df1 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -165,9 +165,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@v4 with: - name: Neuron-Linux - path: release/Neuron-*.AppImage + name: Neuron-Linux-x64 + path: release/Neuron-*-x86_64.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 d73e821810..43e77b557b 100644 --- a/.github/workflows/package_for_test.yml +++ b/.github/workflows/package_for_test.yml @@ -197,12 +197,19 @@ jobs: name: Neuron-Win path: release/Neuron-*-setup.exe - - name: Upload Neuron Linux + - name: Upload Neuron Linux(arm64) if: matrix.os == 'ubuntu-20.04' uses: actions/upload-artifact@v4 with: - name: Neuron-Linux - path: release/Neuron-*.AppImage + name: Neuron-Linux-arm64 + 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-x64 + path: release/Neuron-*-x86_64.AppImage comment_when_package_success: needs: [packaging] diff --git a/packages/neuron-wallet/electron-builder.yml b/packages/neuron-wallet/electron-builder.yml index 1e4aa42855..4628aebac5 100644 --- a/packages/neuron-wallet/electron-builder.yml +++ b/packages/neuron-wallet/electron-builder.yml @@ -85,7 +85,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" @@ -94,4 +94,7 @@ linux: - from: "light/ckb_light_mainnet.toml" to: "light/ckb_light_mainnet.toml" target: - - AppImage + - target: AppImage + arch: + - arm64 + - x64 diff --git a/scripts/download-ckb.sh b/scripts/download-ckb.sh index 5bb8ee7664..13dad7f356 100755 --- a/scripts/download-ckb.sh +++ b/scripts/download-ckb.sh @@ -48,13 +48,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 fbed48153b..bf132dc543 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}-x86_64.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)