diff --git a/.github/workflows/insider-linux.yml b/.github/workflows/insider-linux.yml index 38c3f3f9761..9f8f2b0965b 100644 --- a/.github/workflows/insider-linux.yml +++ b/.github/workflows/insider-linux.yml @@ -170,6 +170,10 @@ jobs: vscode_arch: riscv64 npm_arch: riscv64 image: vscodium/vscodium-linux-build-agent:focal-riscv64 + - slug: LOONG64 + vscode_arch: loong64 + npm_arch: loong64 + image: vscodium/vscodium-linux-build-agent:trixie-loong64 container: image: ${{ matrix.image }} env: diff --git a/.github/workflows/stable-linux.yml b/.github/workflows/stable-linux.yml index dd1e6f519aa..3f3785475ac 100644 --- a/.github/workflows/stable-linux.yml +++ b/.github/workflows/stable-linux.yml @@ -169,6 +169,10 @@ jobs: vscode_arch: riscv64 npm_arch: riscv64 image: vscodium/vscodium-linux-build-agent:focal-riscv64 + - slug: LOONG64 + vscode_arch: loong64 + npm_arch: loong64 + image: vscodium/vscodium-linux-build-agent:trixie-loong64 container: image: ${{ matrix.image }} env: diff --git a/README.md b/README.md index 1ab1e84d654..3509ecc8e67 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ The minimal version is limited by the core component Electron, you may want to c - [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`) - [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`) - [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`) +- [x] GNU/Linux loong64 (`tar.gz`) - [x] Windows 10 / Server 2012 R2 or newer x64 - [x] Windows 10 / Server 2012 R2 or newer arm64 diff --git a/check_tags.sh b/check_tags.sh index 13655eb3506..f0fb47b2407 100755 --- a/check_tags.sh +++ b/check_tags.sh @@ -431,7 +431,13 @@ elif [[ "${ASSETS}" != "null" ]]; then export SHOULD_BUILD_DEB="no" export SHOULD_BUILD_RPM="no" export SHOULD_BUILD_APPIMAGE="no" - export SHOULD_BUILD_TAR="no" + + if [[ -z $( contains "${APP_NAME}-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then + echo "Building on Linux Loong64 because we have no TAR" + export SHOULD_BUILD="yes" + else + export SHOULD_BUILD_TAR="no" + fi if [[ -z $( contains "${APP_NAME_LC}-reh-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then echo "Building on Linux Loong64 because we have no REH archive" @@ -599,7 +605,6 @@ else elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then SHOULD_BUILD_DEB="no" SHOULD_BUILD_RPM="no" - SHOULD_BUILD_TAR="no" fi if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then export SHOULD_BUILD_APPIMAGE="no" diff --git a/electron_linux_loong64.sh b/electron_linux_loong64.sh new file mode 100644 index 00000000000..69b1830b55c --- /dev/null +++ b/electron_linux_loong64.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +export ELECTRON_VERSION="32.2.5" +export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}" diff --git a/electron_linux_loong64.sha256sums b/electron_linux_loong64.sha256sums new file mode 100644 index 00000000000..7963132bc98 --- /dev/null +++ b/electron_linux_loong64.sha256sums @@ -0,0 +1 @@ +8d8b540e36a62b778b0fb5e3798a2d47c2c0475925b78ff4a101aa864dfb28a9 *electron-v32.2.5-linux-loong64.zip diff --git a/package_linux_bin.sh b/package_linux_bin.sh index d67c9847b0f..aed162e4537 100755 --- a/package_linux_bin.sh +++ b/package_linux_bin.sh @@ -13,6 +13,7 @@ chown -R root:root vscode cd vscode || { echo "'vscode' dir not found"; exit 1; } +export VSCODE_PLATFORM='linux' export VSCODE_SKIP_NODE_VERSION_CHECK=1 export VSCODE_SYSROOT_PREFIX='-glibc-2.17' @@ -29,6 +30,11 @@ elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then export ELECTRON_SKIP_BINARY_DOWNLOAD=1 export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 export VSCODE_SKIP_SETUPENV=1 +elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then + export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64' + export ELECTRON_SKIP_BINARY_DOWNLOAD=1 + export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 + export VSCODE_SKIP_SETUPENV=1 fi if [[ -f "../electron_linux_${VSCODE_ARCH}.sh" ]]; then @@ -114,6 +120,10 @@ node build/azure-pipelines/distro/mixin-npm yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci" +if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then + bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules" +fi + find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c cd .. diff --git a/package_linux_reh.sh b/package_linux_reh.sh index 61421648523..5e1e00afe2f 100755 --- a/package_linux_reh.sh +++ b/package_linux_reh.sh @@ -174,7 +174,7 @@ if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then - bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" + bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules" fi echo "Archiving REH" @@ -193,7 +193,7 @@ if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then - bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" + bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules" fi echo "Archiving REH-web" diff --git a/release_notes.txt b/release_notes.txt index 873757ccd0b..1ddf544511b 100644 --- a/release_notes.txt +++ b/release_notes.txt @@ -225,7 +225,11 @@ RELEASE_NOTES - + + + + + diff --git a/ripgrep_linux_loong64.sh b/ripgrep_linux_loong64.sh index da7126b52bc..a9bb44338aa 100755 --- a/ripgrep_linux_loong64.sh +++ b/ripgrep_linux_loong64.sh @@ -1,7 +1,14 @@ +#!/usr/bin/env bash + # When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt, # however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one. -RG_PATH="node_modules/@vscode/ripgrep/bin/rg" +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +RG_PATH="$1/@vscode/ripgrep/bin/rg" RG_VERSION="14.1.1" echo "Replacing ripgrep binary with loong64 one"
LinuxLinux.tar.gzVSCodium-linux-loong64-RELEASE_VERSION.tar.gz
Remote Host vscodium-reh-linux-loong64-RELEASE_VERSION.tar.gz