diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aeafe11..b7f49a6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,8 +16,8 @@ on: # workflow_dispatch: jobs: - build: - name: Build tar.gz AppImage + build-src: + name: Build Base Packages runs-on: ubuntu-latest strategy: @@ -53,29 +53,94 @@ jobs: export NO_WINE=false export DOCKER_UID=$UID export DOCKER_GID=$GID - # tar.gz AppImage ls -l + export NO_WINE=false docker-compose up - mkdir -p tmp/build - tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }} + + - name: Compress Resources + run: | + ls -l + mkdir -p tmp/src + cp node/bin/node package.nw/node + cd package.nw && rm -rf node.exe node && ln -s node.exe node + cd .. + tar -zcf tmp/src/src-wine.tar.gz bin nwjs package.nw tools + export NO_WINE=true + "tools/fix-core.sh" + "tools/fix-other.sh" + tar -zcf tmp/src/src-no-wine.tar.gz bin nwjs package.nw tools - name: Compress nodegit compiler run: | ls -l - cp -r package.nw/node_modules/nodegit tmp/build/nodegit - cp -r compiler tmp/build/compiler - cd tmp/build - ls -l + mkdir -p tmp/build + cp -r package.nw/node_modules/nodegit . sudo rm -rf compiler/test tar -zcf compiler.tar.gz compiler tar -zcf nodegit.tar.gz nodegit - rm -rf compiler nodegit + mv nodegit.tar.gz tmp/build + mv compiler.tar.gz tmp/build + cd tmp/build ls -l - name: View Directory run: | ls -l + - name: Upload artifact + uses: actions/upload-artifact@v2.3.1 + with: + # Artifact name + name: wechat-devtools-${{ matrix.ARCH }}.src + path: tmp/src + + build-tar: + name: Build tar.gz AppImage + needs: + - build-src + runs-on: ubuntu-latest + + strategy: + matrix: + ARCH: ['x86_64'] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Download artifacts + uses: actions/download-artifact@v2 + + - name: Test + run: | + echo "$UID, $GID" + + - name: Generate TAG + id: Tag + run: | + tag='continuous' + name='Continuous Build' + if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then + tag='${{ github.ref_name }}' + name='${{ github.ref_name }}' + fi + echo "tag result: $tag - $name" + echo "::set-output name=tag::$tag" + echo "::set-output name=name::$name" + + - name: Build + run: | + export NO_WINE=false + export ACTION_MODE=true + # tar.gz AppImage + ls -l + mkdir -p tmp/build + tools/build-prepare.sh + tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }} + + - name: View Directory + run: | + ls -l + - name: Upload artifact uses: actions/upload-artifact@v2.3.1 with: @@ -85,6 +150,8 @@ jobs: build-deb: name: Build Deb Package + needs: + - build-src runs-on: ubuntu-18.04 strategy: @@ -94,8 +161,8 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + - name: Download artifacts + uses: actions/download-artifact@v2 - name: Generate TAG id: Tag @@ -113,12 +180,12 @@ jobs: - name: Build Deb Package run: | export BUILD_VERSION=${{ steps.tag.outputs.tag }} - export DOCKER_UID=$UID - export DOCKER_GID=$GID - export ACTION_MODE=true - docker-compose up ls -l mkdir -p tmp/build + tools/build-prepare.sh + tools/build-deb.sh ${{ steps.tag.outputs.tag }} + export NO_WINE=true + tools/build-prepare.sh tools/build-deb.sh ${{ steps.tag.outputs.tag }} - name: Upload artifact @@ -130,6 +197,8 @@ jobs: build-deepin: name: Build Deepin Package + needs: + - build-src runs-on: ubuntu-18.04 strategy: @@ -139,8 +208,8 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + - name: Download artifacts + uses: actions/download-artifact@v2 - name: Generate TAG id: Tag @@ -158,12 +227,12 @@ jobs: - name: Build Deepin Package run: | export BUILD_VERSION=${{ steps.tag.outputs.tag }} - export DOCKER_UID=$UID - export DOCKER_GID=$GID - export ACTION_MODE=true - docker-compose up ls -l mkdir -p tmp/build + tools/build-prepare.sh + tools/build-deepin.sh ${{ steps.tag.outputs.tag }} + export NO_WINE=true + tools/build-prepare.sh tools/build-deepin.sh ${{ steps.tag.outputs.tag }} - name: Upload artifact @@ -249,7 +318,7 @@ jobs: upload: name: Create release and upload artifacts needs: - - build + - build-tar - build-deb - build-deepin - build-arch diff --git a/readme.md b/readme.md index d15fbba..9a5e5c2 100644 --- a/readme.md +++ b/readme.md @@ -13,6 +13,7 @@ [![wechat-tools](https://img.shields.io/badge/wechat--devtools-1.05.2203070-yellow)](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) [![nwjs](https://img.shields.io/badge/nwjs-0.53.1-green)](https://nwjs.io/downloads/) [![node](https://img.shields.io/badge/node-16.1.0-orange)](https://nodejs.org/en/) +[![node](https://img.shields.io/badge/aur-1.05.2203070-blue)](https://aur.archlinux.org/packages/wechat-devtools) 这是微信开发者工具 Linux版 diff --git a/tools/build-appimage.sh b/tools/build-appimage.sh index 03e2a2b..638c69d 100755 --- a/tools/build-appimage.sh +++ b/tools/build-appimage.sh @@ -81,9 +81,11 @@ chmod +x "$app_dir/AppRun" cp -r "$root_dir/package.nw" "$app_dir/package.nw" cp -r "$root_dir/nwjs" "$app_dir/nwjs" -rm -rf "$app_dir/nwjs/node" "$app_dir/nwjs/node.exe" -cp -r "$root_dir/node/bin/node" "$app_dir/nwjs/node" -cd "$app_dir/nwjs/" && ln -s "node" "node.exe" +if [ -f $root_dir/node/bin/node ];then + rm -rf "$app_dir/nwjs/node" "$app_dir/nwjs/node.exe" + cp "$root_dir/node/bin/node" "$app_dir/nwjs/node" + cd "$app_dir/nwjs/" && ln -s "node" "node.exe" +fi cd "$app_dir" # appimagetool $app_dir diff --git a/tools/build-deb.sh b/tools/build-deb.sh index f5865c7..5a59571 100755 --- a/tools/build-deb.sh +++ b/tools/build-deb.sh @@ -60,11 +60,19 @@ cp "$root_dir/res/icons/wechat-devtools.svg" "$app_dir/usr/share/icons/wechat-de cp -r "$root_dir/package.nw" "$app_dir/opt/wechat-devtools/package.nw" cp -r "$root_dir/nwjs" "$app_dir/opt/wechat-devtools/nwjs" rm -rf "$app_dir/opt/wechat-devtools/nwjs"/{node,node.exe} -cp "$root_dir/node/bin/node" "$app_dir/opt/wechat-devtools/nwjs/node" -cd "$app_dir/opt/wechat-devtools/nwjs/" && ln -s "node" "node.exe" +if [ -f "$root_dir/node/bin/node" ];then + cd "$app_dir/opt/wechat-devtools/nwjs" && rm -rf node node.exe + cp "$root_dir/node/bin/node" "$app_dir/opt/wechat-devtools/nwjs/node" + cd "$app_dir/opt/wechat-devtools/nwjs/" && ln -s "node" "node.exe" +fi notice "BUILD DEB Package" cd "$root_dir/tmp/deb" ls -l "$root_dir/tmp/deb" mkdir -p "$root_dir/tmp/build" -dpkg-deb -b . "$root_dir/tmp/build/WeChat_Dev_Tools_${BUILD_VERSION}_amd64.deb" +if [[ $NO_WINE == 'true' ]];then + BUILD_MARK='no_wine' +else + BUILD_MARK='wine' +fi +dpkg-deb -b . "$root_dir/tmp/build/WeChat_Dev_Tools_${BUILD_VERSION}_amd64_${BUILD_MARK}.deb" diff --git a/tools/build-deepin.sh b/tools/build-deepin.sh index e7a63a5..53de76b 100755 --- a/tools/build-deepin.sh +++ b/tools/build-deepin.sh @@ -61,12 +61,20 @@ sed -i "s#dir#/opt/apps/$package_name/files/bin#" "$base_dir/entries/application cp -r "$root_dir/package.nw" "$base_dir/files/bin/package.nw" cp -r "$root_dir/nwjs" "$base_dir/files/bin/nwjs" -rm -rf "$base_dir/files/bin/nwjs"/{node,node.exe} -cp "$root_dir/node/bin/node" "$base_dir/files/bin/nwjs/node" -cd "$base_dir/files/bin/nwjs/" && ln -s "node" "node.exe" +if [ -f "$root_dir/node/bin/node" ];then + rm -rf "$base_dir/files/bin/nwjs"/{node,node.exe} + cp "$root_dir/node/bin/node" "$base_dir/files/bin/nwjs/node" + cd "$base_dir/files/bin/nwjs/" && ln -s "node" "node.exe" +fi notice "BUILD DEB Package" cd "$build_dir" ls -l "$build_dir" mkdir -p "$root_dir/tmp/build" -dpkg-deb -b . "$root_dir/tmp/build/WeChat_Dev_Tools_${BUILD_VERSION}_deepin_amd64.deb" + +if [[ $NO_WINE == 'true' ]];then + BUILD_MARK='no_wine' +else + BUILD_MARK='wine' +fi +dpkg-deb -b . "$root_dir/tmp/build/WeChat_Dev_Tools_${BUILD_VERSION}_amd64_${BUILD_MARK}_deepin.deb" diff --git a/tools/build-prepare.sh b/tools/build-prepare.sh new file mode 100755 index 0000000..3e9d837 --- /dev/null +++ b/tools/build-prepare.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# 脚本执行前提,已完成支持wine的基本构建 +set -e +success() { + echo -e "\033[42;37m 成功 \033[0m $1" +} +notice() { + echo -e "\033[36m $1 \033[0m " +} +fail() { + echo -e "\033[41;37m 失败 \033[0m $1" +} + +root_dir=$(cd `dirname $0`/.. && pwd -P) +tmp_dir="$root_dir/tmp" +store_dir="$tmp_dir/build" +mkdir -p $store_dir +rm -rf nwjs package.nw +if [[ $NO_WINE == 'true' ]];then + tar -zxf wechat-devtools-*.src/src-no-wine.tar.gz -C . +else + tar -zxf wechat-devtools-*.src/src-wine.tar.gz -C . +fi \ No newline at end of file diff --git a/tools/build-tar.sh b/tools/build-tar.sh index ebdc664..ad760a0 100755 --- a/tools/build-tar.sh +++ b/tools/build-tar.sh @@ -58,8 +58,11 @@ notice "COPY bin" notice "COPY nwjs" \cp -drf "$root_dir/nwjs" "$build_dir/nwjs" notice "COPY node" -rm -rf "$build_dir/nwjs/node" -\cp -rf "$root_dir/node/bin/node" "$build_dir/nwjs/node" +if [ -f "$root_dir/node/bin/node" ];then + cd $build_dir/nwjs && rm -rf node node.exe + \cp -rf "$root_dir/node/bin/node" "$build_dir/nwjs/node" + cd "$build_dir/nwjs" && ln -s node.exe node +fi notice "COPY package.nw" \cp -rf "$root_dir/package.nw" "$build_dir/package.nw"