diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 04528a3..f58877b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,6 +50,7 @@ jobs: - name: Build run: | export ACTION_MODE=true + export NO_WINE=false export DOCKER_UID=$UID export DOCKER_GID=$GID # tar.gz AppImage @@ -126,6 +127,51 @@ jobs: name: wechat-devtools-${{ matrix.ARCH }}.build path: tmp/build + build-deepin: + name: Build Deepin Package + runs-on: ubuntu-18.04 + + strategy: + matrix: + ARCH: ['x86_64'] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + + - 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 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-deepin.sh ${{ steps.tag.outputs.tag }} + + - name: Upload artifact + uses: actions/upload-artifact@v2.3.1 + with: + # Artifact name + name: wechat-devtools-${{ matrix.ARCH }}.build + path: tmp/build + build-arch: name: Build ArchLinux Package runs-on: ubuntu-latest @@ -202,6 +248,7 @@ jobs: needs: - build - build-deb + - build-deepin - build-arch runs-on: ubuntu-latest steps: diff --git a/bin/wechat-devtools b/bin/wechat-devtools index a7bed68..930b50a 100755 --- a/bin/wechat-devtools +++ b/bin/wechat-devtools @@ -2,10 +2,17 @@ root_dir=$(cd `dirname $0`/.. && pwd -P) +# 数据目录处理 +if [ -z $XDG_CONFIG_HOME ];then + DATA_DIR=$HOME +else + DATA_DIR=$XDG_CONFIG_HOME +fi + export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs" -export APPDATA="$( echo ~ )/.config/wechat_devtools" +export APPDATA="$DATA_DIR/.config/wechat_devtools" export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH" -export USERPROFILE=$( echo ~ ) +export USERPROFILE=$DATA_DIR clean_cache() { echo "清理缓存"; @@ -26,10 +33,10 @@ else fi; EXTENSION1="--load-extension=$root_dir/nwjs/package.nw/js/ideplugin" -EXTENSION2=--load-extension=~/.config/wechat_devtools/WeappPlugin +EXTENSION2=--load-extension=$APPDATA/WeappPlugin INSPECTOR1="--custom-devtools-frontend=file://$root_dir/package.nw/js/ideplugin/inspector" # 要加file://指明为本地文件路径 -INSPECTOR2="--custom-devtools-frontend=file://$( echo ~ )/.config/wechat_devtools/WeappPlugin/inspector/" -USERDATADIR="$( echo ~ )/.config/wechat_devtools" +INSPECTOR2="--custom-devtools-frontend=file://$APPDATA/WeappPlugin/inspector/" +USERDATADIR="$APPDATA" # "$@"参数 LANG=zh_CN.UTF-8 diff --git a/res/deepin/DEBIAN/control b/res/deepin/DEBIAN/control new file mode 100644 index 0000000..055c3f6 --- /dev/null +++ b/res/deepin/DEBIAN/control @@ -0,0 +1,5 @@ +Package: io.github.msojocs.wechat-devtools +Version: BUILD_VERSION +Maintainer: msojocs +Architecture: amd64 +Description: WeChat Devtools For Linux. diff --git a/res/deepin/opt/apps/io.github.msojocs.wechat-devtools/info b/res/deepin/opt/apps/io.github.msojocs.wechat-devtools/info new file mode 100644 index 0000000..5d08528 --- /dev/null +++ b/res/deepin/opt/apps/io.github.msojocs.wechat-devtools/info @@ -0,0 +1,21 @@ +{ + "appid": "io.github.msojocs.wechat-devtools", + "name": "WeChat Dev Tools", + "version": "BUILD_VERSION", + "arch": ["amd64"], + "permissions": { + "autostart": false, + "notification": false, + "trayicon": true, + "clipboard": true, + "account": false, + "bluetooth": false, + "camera": false, + "audio_record": false, + "installed_apps": false + }, + "support-plugins": [ + ], + "plugins": [ + ] +} \ No newline at end of file diff --git a/tools/build-deb.sh b/tools/build-deb.sh index 16b7a63..21e4ae8 100755 --- a/tools/build-deb.sh +++ b/tools/build-deb.sh @@ -9,6 +9,9 @@ echo $BUILD_VERSION if [ -z "$BUILD_VERSION" ];then export BUILD_VERSION=$1 fi +if [ -z "$BUILD_VERSION" ];then + export BUILD_VERSION='continuous' +fi echo $BUILD_VERSION ############ 构建deb包 ################ @@ -28,7 +31,9 @@ mkdir -p $app_dir/usr/share/{metainfo,icons,applications} notice "COPY Files" cp -r "$root_dir/res/deb/data"/* $app_dir cp "$root_dir/bin/wechat-devtools" "$app_dir/opt/wechat-devtools/bin" -cp "$root_dir/res/deb.desktop" "$app_dir/usr/share/applications/wechat-devtools.desktop" +cp "$root_dir/res/template.desktop" "$app_dir/usr/share/applications/wechat-devtools.desktop" +sed -i 's#Icon=dir/res/icons/wechat-devtools.svg#Icon=wechat-devtools#' "$app_dir/usr/share/applications/wechat-devtools.desktop" +sed -i "s#dir#/opt/wechat-devtools#" "$app_dir/usr/share/applications/wechat-devtools.desktop" if [[ ! $BUILD_VERSION -eq 'continuous' ]];then sed -i "s/BUILD_VERSION/${BUILD_VERSION//v/}/" "$app_dir/DEBIAN/control" else diff --git a/tools/build-deepin.sh b/tools/build-deepin.sh new file mode 100755 index 0000000..dd94e0f --- /dev/null +++ b/tools/build-deepin.sh @@ -0,0 +1,62 @@ +#!/bin/bash +set -e +notice() { + echo -e "\033[36m $1 \033[0m " +} + +root_dir=$(cd `dirname $0`/.. && pwd -P) +echo $BUILD_VERSION +if [ -z "$BUILD_VERSION" ];then + export BUILD_VERSION=$1 +fi +if [ -z "$BUILD_VERSION" ];then + export BUILD_VERSION='continuous' +fi +echo $BUILD_VERSION + +############ 构建deb包 ################ +root_dir=$(cd `dirname $0`/.. && pwd -P) +echo "root_dir: $root_dir" +tmp_dir="$root_dir/tmp" +build_dir="$root_dir/tmp/deepin" +package_name="io.github.msojocs.wechat-devtools" +base_dir="$build_dir/opt/apps/$package_name" +DEVTOOLS_VERSION=$( cat "$root_dir/package.nw/package.json" | grep -m 1 -Eo "\"[0-9]{1}\.[0-9]{2}\.[0-9]+" ) +DEVTOOLS_VERSION="${DEVTOOLS_VERSION//\"/}" + +# Remove any previous build +rm -rf $build_dir +# Make usr and icons dirs +notice "Make Dirs" +mkdir -p $base_dir/{entries,files} +mkdir -p $base_dir/entries/{applications,icons,mime,plugins,services} +mkdir -p $base_dir/files/{bin/bin,doc,lib} + +notice "COPY Files" +cp -r "$root_dir/res/deepin"/* $build_dir +\cp -rf "$root_dir/bin/wechat-devtools" "$base_dir/files/bin/bin/wechat-devtools" +if [[ ! $BUILD_VERSION -eq 'continuous' ]];then + sed -i "s/BUILD_VERSION/${DEVTOOLS_VERSION}-${BUILD_VERSION//v/}/" "$build_dir/DEBIAN/control" + sed -i "s/BUILD_VERSION/${DEVTOOLS_VERSION}-${BUILD_VERSION//v/}/" "$base_dir/info" +else + sed -i "s/BUILD_VERSION/${DEVTOOLS_VERSION}-0/" "$build_dir/DEBIAN/control" + sed -i "s/BUILD_VERSION/${DEVTOOLS_VERSION}-0/" "$base_dir/info" +fi +# desktop +\cp -rf "$root_dir/res/template.desktop" "$base_dir/entries/applications/wechat-devtools.desktop" +sed -i 's#Icon=dir/res/icons/wechat-devtools.svg#Icon=wechat-devtools#' "$base_dir/entries/applications/wechat-devtools.desktop" +sed -i "s#dir#/opt/apps/$package_name/files/bin#" "$base_dir/entries/applications/wechat-devtools.desktop" + +\cp -rf "$root_dir/res/icons/wechat-devtools.png" "$base_dir/entries/icons/wechat-devtools.png" + +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" + +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_${DEVTOOLS_VERSION}_${BUILD_VERSION}_deepin.deb"