mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-22 00:00:04 +08:00
feat: build for wine
This commit is contained in:
parent
3f20e31df1
commit
e3a12f710f
383
.github/workflows/release-wine.yml
vendored
Normal file
383
.github/workflows/release-wine.yml
vendored
Normal file
@ -0,0 +1,383 @@
|
||||
# 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
|
||||
|
||||
name: Build Packages
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches: [ master, dev, 45-snap-version]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
# # Allows you to run this workflow manually from the Actions tab
|
||||
# workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-src:
|
||||
name: Build Base Packages
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
ARCH: ['x86_64']
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v2
|
||||
|
||||
- name: Prepare
|
||||
run: |
|
||||
cd compiler && npm install
|
||||
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 ACTION_MODE=true
|
||||
export DOCKER_UID=$UID
|
||||
export DOCKER_GID=$GID
|
||||
ls -l
|
||||
export WINE=true
|
||||
docker-compose up
|
||||
|
||||
- name: Compress Resources
|
||||
run: |
|
||||
ls -l
|
||||
export WINE=true
|
||||
mkdir -p tmp/src
|
||||
rm -rf nwjs/node nwjs/node.exe
|
||||
cp node/bin/node nwjs/node
|
||||
cd nwjs && ln -s node node.exe
|
||||
cd ..
|
||||
tar -zcf tmp/src/src-wine.tar.gz bin nwjs package.nw tools
|
||||
|
||||
- name: Compress nodegit compiler
|
||||
run: |
|
||||
ls -l
|
||||
export WINE=true
|
||||
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
|
||||
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
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v2.3.1
|
||||
with:
|
||||
# Artifact name
|
||||
name: wechat-devtools-${{ matrix.ARCH }}.build
|
||||
path: tmp/build
|
||||
|
||||
build-tar:
|
||||
name: Build tar.gz AppImage
|
||||
needs:
|
||||
- build-src
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
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: Prepare
|
||||
run: |
|
||||
cd compiler && npm install
|
||||
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 WINE=true
|
||||
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:
|
||||
# Artifact name
|
||||
name: wechat-devtools-${{ matrix.ARCH }}.build
|
||||
path: tmp/build
|
||||
|
||||
build-deb:
|
||||
name: Build DEB Package
|
||||
needs:
|
||||
- build-src
|
||||
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: Download artifacts
|
||||
uses: actions/download-artifact@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"
|
||||
# https://stackoverflow.com/questions/61096521/how-to-use-gpg-key-in-github-actions
|
||||
- name: Configure GPG Key
|
||||
run: |
|
||||
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
|
||||
env:
|
||||
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
|
||||
|
||||
- name: Prepare
|
||||
run: |
|
||||
sudo apt-get install -y build-essential fakeroot devscripts debhelper # debmake lintian pbuilder
|
||||
|
||||
- name: Build Deb Package
|
||||
run: |
|
||||
export BUILD_VERSION=${{ steps.tag.outputs.tag }}
|
||||
ls -l
|
||||
mkdir -p tmp/build
|
||||
export WINE=true
|
||||
tools/build-prepare.sh
|
||||
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
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
ARCH: ['x86_64']
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
|
||||
- name: Prepare
|
||||
run: |
|
||||
cd compiler && npm install
|
||||
npm install node-gyp nw-gyp npm -g
|
||||
node-gyp install
|
||||
cat /etc/passwd
|
||||
|
||||
- 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 ArchLinux Package
|
||||
uses: countstarlight/arch-makepkg-action@master
|
||||
env:
|
||||
BUILD_VERSION: ${{ steps.tag.outputs.tag }}
|
||||
with:
|
||||
repos: >
|
||||
archlinuxcn=https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
|
||||
before: "tools/build-aur.sh && sudo pacman -S --noconfirm archlinuxcn-keyring"
|
||||
packages: >
|
||||
gconf
|
||||
p7zip
|
||||
libxkbfile
|
||||
python2
|
||||
openssl
|
||||
gcc
|
||||
make
|
||||
libssh2
|
||||
krb5
|
||||
wget
|
||||
scripts: "cd tmp/AUR && makepkg && ls -l && cd ../../"
|
||||
|
||||
- name: Fix Permissions
|
||||
run: |
|
||||
sudo chmod -R 0777 tmp
|
||||
mkdir -p tmp/build
|
||||
mv tmp/AUR/*.pkg.* tmp/build
|
||||
cd tmp/build
|
||||
for file in `ls *.pkg.*`;do mv $file `echo $file|sed 's/:/-/g'`;done;
|
||||
ls -l
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v2.3.1
|
||||
with:
|
||||
# Artifact name
|
||||
name: wechat-devtools-${{ matrix.ARCH }}.build
|
||||
path: tmp/build
|
||||
|
||||
build-snap:
|
||||
name: Build Snap Package
|
||||
runs-on: ubuntu-18.04
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
ARCH: ['x86_64']
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Install Snapcraft
|
||||
uses: samuelmeuli/action-snapcraft@v1
|
||||
with:
|
||||
use_lxd: true
|
||||
|
||||
- name: Prepare
|
||||
run: |
|
||||
cd compiler && npm install
|
||||
git --version
|
||||
git --help
|
||||
|
||||
# You can now run Snapcraft shell commands
|
||||
- name: Build snap
|
||||
run: sg lxd -c 'snapcraft --use-lxd'
|
||||
|
||||
- name: move file
|
||||
run: |
|
||||
mkdir -p tmp/build
|
||||
mv *.snap tmp/build
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v2.3.1
|
||||
with:
|
||||
# Artifact name
|
||||
name: wechat-devtools-${{ matrix.ARCH }}.build
|
||||
path: tmp/build
|
||||
|
||||
upload:
|
||||
name: Create release and upload artifacts
|
||||
needs:
|
||||
- build-tar
|
||||
- build-deb
|
||||
- build-snap
|
||||
- build-arch
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v2
|
||||
- name: Inspect directory after downloading artifacts
|
||||
run: ls -alFR
|
||||
|
||||
- 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: Create release and upload artifacts
|
||||
if: startsWith(github.ref, 'refs/heads/')
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage
|
||||
chmod +x pyuploadtool-x86_64.AppImage
|
||||
./pyuploadtool-x86_64.AppImage **build/WeChat*.AppImage **build/*.tar.gz **build/*.deb **build/*.pkg.* **build/*.snap
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
# note you'll typically need to create a personal access token
|
||||
# with permissions to create releases in the other repo
|
||||
name: ${{ steps.tag.outputs.name }}
|
||||
tag_name: ${{ steps.tag.outputs.tag }}
|
||||
files: |
|
||||
**build/WeChat*.AppImage
|
||||
**build/*.tar.gz
|
||||
**build/*.deb
|
||||
**build/*.pkg.*
|
||||
**build/*.snap
|
@ -30,7 +30,7 @@ elif [[ $ARCH == '' ]];then
|
||||
fi
|
||||
|
||||
if [[ "$WINE" != 'true' ]];then
|
||||
TYPE='no_wine'
|
||||
TYPE='linux'
|
||||
else
|
||||
TYPE='wine'
|
||||
fi
|
||||
|
@ -32,7 +32,7 @@ fi
|
||||
############ 准备构建deb包所需的文件及结构 ################
|
||||
package_name="io.github.msojocs.wechat-devtools"
|
||||
if [[ "$WINE" != 'true' ]];then
|
||||
BUILD_MARK='no_wine'
|
||||
BUILD_MARK='linux'
|
||||
package_name="${package_name}-linux"
|
||||
else
|
||||
BUILD_MARK='wine'
|
||||
|
@ -38,7 +38,7 @@ elif [[ $ARCH == '' ]];then
|
||||
fi
|
||||
|
||||
if [[ "$WINE" != 'true' ]];then
|
||||
TYPE='no_wine'
|
||||
TYPE='linux'
|
||||
else
|
||||
TYPE='wine'
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user