appimage: init

This commit is contained in:
msojocs 2022-02-15 12:52:59 +08:00
parent 02584a1a2f
commit fff1ea20a6
6 changed files with 135 additions and 39 deletions

View File

@ -4,12 +4,8 @@
name: Node.js CI name: Node.js CI
on: on:
release:
types: [published]
push: push:
tags: branches: [ master, appimage ]
- v*
branches: [ master, actions ]
pull_request: pull_request:
branches: [ master ] branches: [ master ]
# # Allows you to run this workflow manually from the Actions tab # # Allows you to run this workflow manually from the Actions tab
@ -17,51 +13,111 @@ on:
jobs: jobs:
build: build:
name: Build name: Build
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
node-version: [16.x] node-version: [16.x]
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'npm' cache: 'npm'
- name: Prepare - name: Prepare
run: | run: |
pwd 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: Build AppImage
run: |
sudo chmod -R 777 tmp package.nw node
bash tools/appimage.sh
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage ./tmp/AppDir
env:
name: 'release-${{ github.ref_name }}'
ARCH: '${{ matrix.ARCH }}'
- name: Delete unused file
run: |
ls -l
sudo rm -rf cache tmp appimagetool-x86_64.AppImage
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
sudo mv ${{ env.name }}/WeChat*.AppImage .
ls -l
cd "${{ env.name }}"
env:
name: 'release-${{ github.ref_name }}'
- name: Compress
run: |
ls -l ls -l
chmod 777 docker/entrypoint tar -zvcf ${{ env.name }}.tar.gz ${{ env.name }}
chmod 777 tools/* tar -zvcf compiler.tar.gz compiler
export ACTION_MODE=true tar -zvcf nodegit.tar.gz nodegit
npm uninstall node-gyp -g sudo rm -rf ${{ env.name }} compiler nodegit
npm install node-gyp nw-gyp npm -g ls -l
env:
name: 'release-${{ github.ref_name }}'
- name: Build # - name: Release
run: docker-compose up # uses: fnkr/github-action-ghr@v1
# if: startsWith(github.ref, 'refs/tags/')
# env:
# GHR_COMPRESS: xz
# GHR_PATH: .
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Delete unused file - name: Release
run: | uses: softprops/action-gh-release@v1
sudo rm -rf cache tmp with:
mkdir ${{ env. name }} # note you'll typically need to create a personal access token
sudo find -maxdepth 1 -not -name ${{ env.name }} -not -name . -exec mv {} ${{ env.name }} \; # with permissions to create releases in the other repo
sudo cp -r "${{ env.name }}/package.nw/node_modules/nodegit" nodegit name: ${{ steps.tag.outputs.name }}
sudo cp -r "${{ env.name }}/compiler" compiler tag_name: ${{ steps.tag.outputs.tag }}
ls -ls files: |
env: ${{ env.name }}.tar.gz
name: 'release-${{ github.ref_name }}' compiler.tar.gz
nodegit.tar.gz
*.AppImage
env:
name: 'release-${{ github.ref_name }}'
- name: Release # - name: Create release and upload artifacts
uses: fnkr/github-action-ghr@v1 # env:
if: startsWith(github.ref, 'refs/tags/') # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env: # GITHUB_CONTINUOUS_RELEASE_TAG: ${{ steps.tag.outputs.tag }}
GHR_COMPRESS: xz # GITHUB_CONTINUOUS_RELEASE_NAME: ${{ steps.tag.outputs.name }}
GHR_PATH: . # run: |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage
# chmod +x pyuploadtool-x86_64.AppImage
# ./pyuploadtool-x86_64.AppImage **/*.AppImage*

0
docker/entrypoint Normal file → Executable file
View File

12
res/appimage.desktop Normal file
View File

@ -0,0 +1,12 @@
[Desktop Entry]
Name=WeChat Dev Tools
Name[zh_CN]=
Comment=The development tools for wechat projects
Comment[zh_CN]=IDE
Categories=Development;WebDevelopment;IDE;
Exec=bin/wechat-devtools
Icon=wechat-devtools
Type=Application
Terminal=false
StartupWMClass=wechat_devtools
Actions=

28
tools/appimage.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
export ARCH=x86_64
root_dir=$(cd `dirname $0`/.. && pwd -P)
tmp_dir="$root_dir/tmp"
app_dir="$root_dir/tmp/AppDir"
# Remove any previous build
rm -rf $app_dir
# Make usr and icons dirs
mkdir -p $app_dir/bin
mkdir -p $app_dir/usr/{src,bin}
mkdir -p $app_dir/usr/share/{metainfo,icons}
cp "$root_dir/bin/wechat-devtools" "$app_dir/bin/wechat-devtools"
cp "$root_dir/res/appimage.desktop" "$app_dir/wechat-devtools.desktop"
cp "$root_dir/res/icons/wechat-devtools.png" "$app_dir/wechat-devtools.png"
echo "#!/bin/bash" > "$app_dir/AppRun"
echo "exec bin/wechat-devtools" >> "$app_dir/AppRun"
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"
cd "$app_dir"

0
tools/fix-wcc-wcsc Normal file → Executable file
View File

0
tools/setup-wechat-devtools-bash Normal file → Executable file
View File