docs: 赞赏 #588
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 Linux | |
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: | | |
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=false | |
docker-compose up | |
- name: Compress Resources | |
run: | | |
ls -l | |
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-linux.tar.gz bin nwjs package.nw tools | |
- name: Compress nodegit | |
run: | | |
ls -l | |
mkdir -p tmp/build | |
cp -r package.nw/node_modules/nodegit . | |
tar -zcf nodegit.tar.gz nodegit | |
mv nodegit.tar.gz tmp/build | |
cd tmp/build | |
ls -l | |
- name: View Directory | |
run: | | |
ls -l | |
- name: Upload artifact | |
uses: actions/[email protected] | |
with: | |
# Artifact name | |
name: wechat-devtools-${{ matrix.ARCH }}.src | |
path: tmp/src | |
- name: Upload artifact | |
uses: actions/[email protected] | |
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: | | |
sudo apt install -y fuse | |
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=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/[email protected] | |
with: | |
# Artifact name | |
name: wechat-devtools-${{ matrix.ARCH }}.build | |
path: tmp/build | |
build-deb: | |
name: Build DEB Package | |
needs: | |
- build-src | |
runs-on: ubuntu-20.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 | |
# gpg --generate-key | |
# gpg --export-secret-keys YOUR_ID_HERE | base64 > private.key | |
- name: Configure GPG Key | |
run: | | |
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import | |
gpg --list-secret-keys [email protected] | |
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=false | |
tools/build-prepare.sh | |
env WINE=false tools/build-deepin.sh ${{ steps.tag.outputs.tag }} | |
- name: Upload artifact | |
uses: actions/[email protected] | |
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: | | |
sudo apt install -y fuse | |
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 | |
- 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 |