mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-22 00:00:04 +08:00
commit 1d759c8858788d11b4958a005c9f255612e25a66 Author: msojocs <jiyecafe@gmail.com> Date: Tue Mar 1 16:13:26 2022 +0800 feat: AUR Build
279 lines
8.5 KiB
YAML
279 lines
8.5 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: Build Packages
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
push:
|
|
tags:
|
|
- v*
|
|
branches: [ master, aur]
|
|
pull_request:
|
|
branches: [ master ]
|
|
# # Allows you to run this workflow manually from the Actions tab
|
|
# workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Build tar.gz AppImage
|
|
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
|
|
sudo apt-get install -y libx11-dev libxkbfile-dev p7zip-full python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make
|
|
npm install node-gyp nw-gyp npm -g
|
|
node-gyp install
|
|
|
|
- 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: |
|
|
# docker-compose up
|
|
export ACTION=true
|
|
# tar.gz AppImage
|
|
ls -l
|
|
tools/setup-wechat-devtools-bash
|
|
sudo chmod -R 755 package.nw
|
|
bash tools/build-release.sh ${{ steps.tag.outputs.tag }} ${{ matrix.ARCH }}
|
|
|
|
- name: Compress nodegit compiler
|
|
run: |
|
|
ls -l
|
|
sudo cp -r package.nw/node_modules/nodegit tmp/build/nodegit
|
|
sudo cp -r compiler tmp/build/compiler
|
|
cd tmp/build
|
|
ls -l
|
|
tar -zcf compiler.tar.gz compiler
|
|
tar -zcf nodegit.tar.gz nodegit
|
|
sudo rm -rf compiler nodegit
|
|
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 }}.build
|
|
path: tmp/build
|
|
|
|
build-deb:
|
|
name: Build Deb Package
|
|
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
|
|
sudo apt-get install -y libx11-dev libxkbfile-dev p7zip-full python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make
|
|
npm install node-gyp nw-gyp npm -g
|
|
node-gyp install
|
|
# https://docs.makedeb.org/home/installing/apt-repository/
|
|
wget -qO - 'https://proget.hunterwittenborn.com/debian-feeds/makedeb.pub' | \
|
|
gpg --dearmor | \
|
|
sudo tee /usr/share/keyrings/makedeb-archive-keyring.gpg &> /dev/null
|
|
echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | \
|
|
sudo tee /etc/apt/sources.list.d/makedeb.list
|
|
sudo apt update
|
|
sudo apt-get install -y makedeb gconf2
|
|
|
|
- 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 Deb Package
|
|
run: |
|
|
tools/build-aur.sh deb
|
|
# deb
|
|
cd tmp/AUR
|
|
makedeb
|
|
cd ../
|
|
# ./tmp
|
|
ls -l AUR
|
|
mkdir -p build
|
|
mv AUR/*.deb build
|
|
rm -rf AUR/pkg AUR/src
|
|
ls -l build
|
|
|
|
- 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
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'npm'
|
|
|
|
- name: Prepare
|
|
run: |
|
|
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
|
|
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
|
|
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
|
|
|
|
upload:
|
|
name: Create release and upload artifacts
|
|
needs:
|
|
- build
|
|
- build-deb
|
|
- 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 **/WeChat*.AppImage **/*.tar.gz **/*.deb **/*.pkg.*
|
|
|
|
- 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: |
|
|
**/WeChat*.AppImage
|
|
**/*.tar.gz
|
|
**/*.deb
|
|
**/*.pkg.* |