fix: 修复终端无法启动的问题

This commit is contained in:
msojocs 2023-09-05 14:19:59 +08:00
parent 96360cb0d4
commit af247207d4
3 changed files with 236 additions and 224 deletions

View File

@ -1,253 +1,253 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions # # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Build Packages Wine # name: Build Packages Wine
on: # on:
release: # release:
types: [published] # types: [published]
push: # push:
tags: # tags:
- v* # - v*
branches: [ master, dev, 45-snap-version] # branches: [ master, dev, 45-snap-version]
pull_request: # pull_request:
branches: [ master ] # branches: [ master ]
# # Allows you to run this workflow manually from the Actions tab # # # Allows you to run this workflow manually from the Actions tab
# workflow_dispatch: # # workflow_dispatch:
jobs: # jobs:
build-src: # build-src:
name: Build Base Packages # name: Build Base Packages
runs-on: ubuntu-latest # runs-on: ubuntu-latest
strategy: # strategy:
matrix: # matrix:
node-version: [16.x] # node-version: [16.x]
ARCH: ['x86_64'] # ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ # # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: # steps:
- uses: actions/checkout@v2 # - uses: actions/checkout@v2
with: # with:
submodules: 'recursive' # submodules: 'recursive'
- name: Use Node.js ${{ matrix.node-version }} # - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2 # uses: actions/setup-node@v2
- name: Prepare # - name: Prepare
run: | # run: |
cd compiler && npm install # cd compiler && npm install
echo "$UID, $GID" # echo "$UID, $GID"
- name: Generate TAG # - name: Generate TAG
id: Tag # id: Tag
run: | # run: |
tag='continuous' # tag='continuous'
name='Continuous Build' # name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then # if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}' # tag='${{ github.ref_name }}'
name='${{ github.ref_name }}' # name='${{ github.ref_name }}'
fi # fi
echo "tag result: $tag - $name" # echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag" # echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name" # echo "::set-output name=name::$name"
- name: Build # - name: Build
run: | # run: |
export ACTION_MODE=true # export ACTION_MODE=true
export DOCKER_UID=$UID # export DOCKER_UID=$UID
export DOCKER_GID=$GID # export DOCKER_GID=$GID
ls -l # ls -l
export WINE=true # export WINE=true
docker-compose up # docker-compose up
- name: Compress Resources # - name: Compress Resources
run: | # run: |
ls -l # ls -l
export WINE=true # export WINE=true
mkdir -p tmp/src # mkdir -p tmp/src
mkdir -p tmp/build # mkdir -p tmp/build
rm -rf nwjs/node nwjs/node.exe # rm -rf nwjs/node nwjs/node.exe
cp node/bin/node nwjs/node # cp node/bin/node nwjs/node
cd nwjs && ln -s node node.exe # cd nwjs && ln -s node node.exe
cd .. # cd ..
tar -zcf tmp/src/src-wine.tar.gz bin nwjs package.nw tools # tar -zcf tmp/src/src-wine.tar.gz bin nwjs package.nw tools
- name: View Directory # - name: View Directory
run: | # run: |
ls -l # ls -l
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v2.3.1 # uses: actions/upload-artifact@v2.3.1
with: # with:
# Artifact name # # Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.src # name: wechat-devtools-${{ matrix.ARCH }}.src
path: tmp/src # path: tmp/src
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v2.3.1 # uses: actions/upload-artifact@v2.3.1
with: # with:
# Artifact name # # Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build # name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build # path: tmp/build
build-tar: # build-tar:
name: Build tar.gz AppImage # name: Build tar.gz AppImage
needs: # needs:
- build-src # - build-src
runs-on: ubuntu-latest # runs-on: ubuntu-latest
strategy: # strategy:
matrix: # matrix:
node-version: [16.x] # node-version: [16.x]
ARCH: ['x86_64'] # ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ # # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: # steps:
- uses: actions/checkout@v2 # - uses: actions/checkout@v2
- name: Download artifacts # - name: Download artifacts
uses: actions/download-artifact@v2 # uses: actions/download-artifact@v2
- name: Prepare # - name: Prepare
run: | # run: |
cd compiler && npm install # cd compiler && npm install
sudo apt install -y fuse # sudo apt install -y fuse
echo "$UID, $GID" # echo "$UID, $GID"
- name: Generate TAG # - name: Generate TAG
id: Tag # id: Tag
run: | # run: |
tag='continuous' # tag='continuous'
name='Continuous Build' # name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then # if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}' # tag='${{ github.ref_name }}'
name='${{ github.ref_name }}' # name='${{ github.ref_name }}'
fi # fi
echo "tag result: $tag - $name" # echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag" # echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name" # echo "::set-output name=name::$name"
- name: Build # - name: Build
run: | # run: |
export WINE=true # export WINE=true
export ACTION_MODE=true # export ACTION_MODE=true
# tar.gz AppImage # # tar.gz AppImage
ls -l # ls -l
mkdir -p tmp/build # mkdir -p tmp/build
tools/build-prepare.sh # tools/build-prepare.sh
tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }} # tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }}
- name: View Directory # - name: View Directory
run: | # run: |
ls -l # ls -l
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v2.3.1 # uses: actions/upload-artifact@v2.3.1
with: # with:
# Artifact name # # Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build # name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build # path: tmp/build
build-deb: # build-deb:
name: Build DEB Package # name: Build DEB Package
needs: # needs:
- build-src # - build-src
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
strategy: # strategy:
matrix: # matrix:
ARCH: ['x86_64'] # ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ # # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: # steps:
- uses: actions/checkout@v2 # - uses: actions/checkout@v2
- name: Download artifacts # - name: Download artifacts
uses: actions/download-artifact@v2 # uses: actions/download-artifact@v2
- name: Generate TAG # - name: Generate TAG
id: Tag # id: Tag
run: | # run: |
tag='continuous' # tag='continuous'
name='Continuous Build' # name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then # if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}' # tag='${{ github.ref_name }}'
name='${{ github.ref_name }}' # name='${{ github.ref_name }}'
fi # fi
echo "tag result: $tag - $name" # echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag" # echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name" # echo "::set-output name=name::$name"
# https://stackoverflow.com/questions/61096521/how-to-use-gpg-key-in-github-actions # # https://stackoverflow.com/questions/61096521/how-to-use-gpg-key-in-github-actions
- name: Configure GPG Key # - name: Configure GPG Key
run: | # run: |
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import # echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
env: # env:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} # GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
- name: Prepare # - name: Prepare
run: | # run: |
sudo apt-get install -y build-essential fakeroot devscripts debhelper # debmake lintian pbuilder # sudo apt-get install -y build-essential fakeroot devscripts debhelper # debmake lintian pbuilder
- name: Build Deb Package # - name: Build Deb Package
run: | # run: |
export BUILD_VERSION=${{ steps.tag.outputs.tag }} # export BUILD_VERSION=${{ steps.tag.outputs.tag }}
ls -l # ls -l
mkdir -p tmp/build # mkdir -p tmp/build
export WINE=true # export WINE=true
tools/build-prepare.sh # tools/build-prepare.sh
tools/build-deepin.sh ${{ steps.tag.outputs.tag }} # tools/build-deepin.sh ${{ steps.tag.outputs.tag }}
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v2.3.1 # uses: actions/upload-artifact@v2.3.1
with: # with:
# Artifact name # # Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build # name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build # path: tmp/build
upload: # upload:
name: Create release and upload artifacts # name: Create release and upload artifacts
needs: # needs:
- build-tar # - build-tar
- build-deb # - build-deb
# - build-snap # # - build-snap
# - build-arch # # - build-arch
runs-on: ubuntu-latest # runs-on: ubuntu-latest
steps: # steps:
- name: Download artifacts # - name: Download artifacts
uses: actions/download-artifact@v2 # uses: actions/download-artifact@v2
- name: Inspect directory after downloading artifacts # - name: Inspect directory after downloading artifacts
run: ls -alFR # run: ls -alFR
- name: Generate TAG # - name: Generate TAG
id: Tag # id: Tag
run: | # run: |
tag='continuous' # tag='continuous'
name='Continuous Build' # name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then # if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}' # tag='${{ github.ref_name }}'
name='${{ github.ref_name }}' # name='${{ github.ref_name }}'
fi # fi
echo "tag result: $tag - $name" # echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag" # echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name" # echo "::set-output name=name::$name"
- name: Create release and upload artifacts # - name: Create release and upload artifacts
if: startsWith(github.ref, 'refs/heads/') # if: startsWith(github.ref, 'refs/heads/')
env: # env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | # run: |
sudo apt install -y fuse # sudo apt install -y fuse
wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage # wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage
chmod +x pyuploadtool-x86_64.AppImage # chmod +x pyuploadtool-x86_64.AppImage
./pyuploadtool-x86_64.AppImage **build/WeChat*.AppImage **build/*.tar.gz **build/*.deb # ./pyuploadtool-x86_64.AppImage **build/WeChat*.AppImage **build/*.tar.gz **build/*.deb
- name: Release # - name: Release
uses: softprops/action-gh-release@v1 # uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
with: # with:
# note you'll typically need to create a personal access token # # note you'll typically need to create a personal access token
# with permissions to create releases in the other repo # # with permissions to create releases in the other repo
name: ${{ steps.tag.outputs.name }} # name: ${{ steps.tag.outputs.name }}
tag_name: ${{ steps.tag.outputs.tag }} # tag_name: ${{ steps.tag.outputs.tag }}
files: | # files: |
**build/WeChat*.AppImage # **build/WeChat*.AppImage
**build/*.tar.gz # **build/*.tar.gz
**build/*.deb # **build/*.deb

View File

@ -1,3 +1,9 @@
# 1.06.2306020-2 / 2023-09-
- update: node-pty to v1.0.0
- update: compiler(Linux) v0.0.4
- dprecated: wine version
# 1.06.2306020-1 / 2023-06-04 # 1.06.2306020-1 / 2023-06-04
- update: devtools to v1.06.2306020 - update: devtools to v1.06.2306020

View File

@ -45,7 +45,9 @@ python3 --version
# these modules are only available in windows # these modules are only available in windows
cd "${package_dir}/node_modules" && \ cd "${package_dir}/node_modules" && \
rm -fr "vscode-windows-ca-certs" "vscode-windows-registry" "vscode-windows-registry-node" "windows-process-tree" rm -fr "vscode-windows-ca-certs" \
"vscode-windows-registry" "vscode-windows-registry-node" "windows-process-tree" \
"node-pty" "node-pty-node"
rm -fr "${package_dir}/node_modules/vscode-ripgrep/bin/"* # redownload bin on linux rm -fr "${package_dir}/node_modules/vscode-ripgrep/bin/"* # redownload bin on linux
# https://github.com/microsoft/ripgrep-prebuilt # https://github.com/microsoft/ripgrep-prebuilt
@ -86,7 +88,7 @@ export JOBS=$max_thread
(cd "${package_dir}/node_modules_tmp" && npm install \ (cd "${package_dir}/node_modules_tmp" && npm install \
extract-file-icon \ extract-file-icon \
native-keymap \ native-keymap \
node-pty \ node-pty@1.0.0 \
native-watchdog \ native-watchdog \
oniguruma \ oniguruma \
spdlog@0.11.1 \ spdlog@0.11.1 \
@ -101,6 +103,10 @@ notice "rebuild node-pty"
cd "$package_dir/node_modules_tmp/node_modules" && \ cd "$package_dir/node_modules_tmp/node_modules" && \
cp -fr "node-pty" "node-pty-node" && \ cp -fr "node-pty" "node-pty-node" && \
cd "node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs cd "node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs
mkdir -p "$package_dir/node_modules/node-pty/build/Release" && \
cp -rf "$package_dir/node_modules_tmp/node_modules/node-pty/lib" "$package_dir/node_modules/node-pty/lib" && \
cp -rf "$package_dir/node_modules_tmp/node_modules/node-pty/package.json" "$package_dir/node_modules/node-pty/package.json" && \
cp -rf "$package_dir/node_modules/node-pty" "$package_dir/node_modules/node-pty-node"
notice "rebuild native-watchdog" notice "rebuild native-watchdog"
cd "$package_dir/node_modules_tmp/node_modules/native-watchdog" && \ cd "$package_dir/node_modules_tmp/node_modules/native-watchdog" && \