refactor: 构建流程

This commit is contained in:
msojocs 2022-03-11 19:16:55 +08:00
parent b9e7fc7381
commit 3e489139c0
7 changed files with 150 additions and 35 deletions

View File

@ -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

View File

@ -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版

View File

@ -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

View File

@ -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"

View File

@ -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"

24
tools/build-prepare.sh Executable file
View File

@ -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

View File

@ -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"