2022-02-18 14:15:58 +08:00

129 lines
4.4 KiB
YAML

# 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: Node.js CI
on:
release:
types: [published]
push:
tags:
- v*
branches: [ master, reduce-wine]
pull_request:
branches: [ master ]
# # Allows you to run this workflow manually from the Actions tab
# workflow_dispatch:
jobs:
build:
name: Build
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: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Prepare
run: |
pwd
ls -l
export ACTION_MODE=true
npm uninstall node-gyp -g
npm install node-gyp nw-gyp npm -g
- 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: docker-compose up
- name: Refactor Directory Structure
run: |
sudo chmod -R 777 package.nw node
ls -l
sudo rm -rf cache tmp
mkdir ${{ env. name }}
sudo find -maxdepth 1 -not -name ${{ env.name }} -not -name . -exec mv {} ${{ env.name }} \;
sudo cp -r "${{ env.name }}/package.nw/node_modules/nodegit" nodegit
sudo cp -r "${{ env.name }}/compiler" compiler
ls -l
cd "${{ env.name }}"
env:
name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}'
- name: Compress
run: |
ls -l
tar -zvcf compiler.tar.gz compiler
tar -zvcf nodegit.tar.gz nodegit
sudo rm -rf compiler nodegit
ls -l
env:
name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}'
- name: Build AppImage && Pack
run: |
bash ./${{ env.name }}/tools/appimage.sh
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
# build AppImage
./appimagetool-x86_64.AppImage ./${{ env.name }}/tmp/AppDir ${{ env.name }}_${{ env.ARCH }}_wine.AppImage
# pack
tar -zvcf ${{ env.name }}_${{ env.ARCH }}_wine.tar.gz ${{ env.name }}
# reduce wine
export REDUCE_WINE=true
bash ${{ env.name }}/tools/fix-core
bash ${{ env.name }}/tools/fix-other
bash ./${{ env.name }}/tools/appimage.sh
# build AppImage
./appimagetool-x86_64.AppImage ./${{ env.name }}/tmp/AppDir ${{ env.name }}_${{ env.ARCH }}_reduce_wine.AppImage
# pack
tar -zvcf ${{ env.name }}_${{ env.ARCH }}_reduce_wine.tar.gz ${{ env.name }}
sudo rm -rf appimagetool-x86_64.AppImage ${{ env.name }}
env:
name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}'
ARCH: '${{ matrix.ARCH }}'
- 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 WeChat*.AppImage *.tar.gz
- 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: |
*.tar.gz
*.AppImage