[add] Added automatic release builder.

This commit is contained in:
Leroy.H.Y 2019-10-07 22:49:28 +08:00
parent 568e8a744b
commit 2bc667ac3b
No known key found for this signature in database
GPG Key ID: 6AC1673B587DC37D
4 changed files with 169 additions and 96 deletions

169
.github/workflows/build-release.yml vendored Normal file
View File

@ -0,0 +1,169 @@
name: Build Artifact for Release
on:
release:
types: [prereleased]
jobs:
Windows:
name: Release for Windows x64
runs-on: windows-2019
steps:
- name: Checkout Sources
uses: actions/checkout@master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing aqtinstall and Qt
run: |
pip3 install aqtinstall
python -m aqt install 5.12.5 windows desktop win64_mingw73
# --------------------------------------------------------
- name: Build Qv2ray
run: |
mkdir build
cd build
set PATH=..\Qt5.12.5\5.12.5\mingw73_64\bin;..\Qt5.12.5\Tools\mingw73_64\bin;%PATH%
qmake ..
mingw32-make -j4
- name: Make release package
run: |
cd build
mkdir package
cd package
copy ..\release\Qv2ray.exe .\
copy ..\..\libs\libcrypto-1_1.dll .\
copy ..\..\libs\libssl-1_1.dll .\
set PATH=..\..\Qt5.12.5\5.12.5\mingw73_64\bin;..\..\Qt5.12.5\Tools\mingw73_64\bin;%PATH%
windeployqt ./Qv2ray.exe
cd ..
..\tools\7z.exe a Qv2ray.zip .\package\*
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.windows.zip
path: build/Qv2ray.zip
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.zip
asset_name: Qv2ray-${{ github.ref }}-win64.zip
tag: ${{ github.ref }}
overwrite: true
# =========================================================================================
macOS:
name: Release for macOS
runs-on: macOS-10.14
steps:
- name: Checkout Sources
uses: actions/checkout@master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: "Preparing NPM"
run: |
cd .github/install-qt/
npm ci
npm run build
- name: Install Qt
uses: ./.github/install-qt/
# --------------------------------------------------------
- name: Build Qv2ray
run: |
mkdir build
cd build
qmake ..
make -j4
- name: Make Package
run: |
cd build
cd Qv2ray.app
macdeployqt ./
cd ..
tar czf Qv2ray.app.tar.gz Qv2ray.app
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.macOS.app.zip
path: build/Qv2ray.app.tar.gz
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.app.tar.gz
asset_name: Qv2ray-${{ github.ref }}-macOS.tar.gz
tag: ${{ github.ref }}
overwrite: true
# ===================================================================================
Linux:
name: Release for linux
runs-on: ubuntu-16.04
steps:
- name: Checkout Sources
uses: actions/checkout@master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: "Preparing NPM"
run: |
cd .github/install-qt/
npm ci
npm run build
- name: Install Qt
uses: ./.github/install-qt/
# --------------------------------------------------------
- name: Install libgl-dev and openssl libx11-dev libxkbcommon-x11-dev
run: sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev
- name: Build Qv2ray
run: |
mkdir build
cd build
qmake ..
make -j4
- name: Generate FS Structure for AppImage
run: |
cd build
make install INSTALL_ROOT=AppDir
cd AppDir
mkdir -p ./opt/Qv2ray/lib/
cp /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 ./opt/Qv2ray/lib/
- name: Build AppImage using linuxdeployqt
run: |
cd build/AppDir
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage
mv ./linuxdeployqt-6-x86_64.AppImage ../
chmod +x ../linuxdeployqt-6-x86_64.AppImage
../linuxdeployqt-6-x86_64.AppImage --appimage-extract
./squashfs-root/AppRun opt/Qv2ray/share/applications/Qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.linux.AppImage
path: build/AppDir/Qv2ray.AppImage
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/AppDir/Qv2ray.AppImage
asset_name: Qv2ray-${{ github.ref }}-linux.AppImage
tag: ${{ github.ref }}
overwrite: true

View File

@ -1,96 +0,0 @@
name: Prepare For GitHub Release
on:
[push]
jobs:
build_release_win64:
name: Release for Windows x64
runs-on: windows-2019
steps:
- name: Checkout Sources
uses: actions/checkout@master
with:
ref: master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing aqtinstall
run: pip3 install aqtinstall
- name: Install Qt
run: python -m aqt install 5.12.5 windows desktop win64_mingw73
# --------------------------------------------------------
- name: Build Qv2ray
run: |
mkdir build
cd build
set PATH=..\Qt5.12.5\5.12.5\mingw73_64\bin;..\Qt5.12.5\Tools\mingw73_64\bin;%PATH%
qmake ..
mingw32-make -j4
build_release_linux:
name: Release for linux
runs-on: ubuntu-16.04
steps:
- name: Checkout Sources
uses: actions/checkout@master
with:
ref: master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: "Preparing NPM"
run: |
cd .github/install-qt/
npm ci
npm run build
- name: Install Qt
uses: ./.github/install-qt/
# --------------------------------------------------------
- name: Install libgl-dev
run: sudo apt install -y libgl-dev
- name: Build Qv2ray
run: |
mkdir build
cd build
qmake ..
make -j4
build_release_macOS:
name: Release for macOS
runs-on: macOS-10.14
steps:
- name: Checkout Sources
uses: actions/checkout@master
with:
ref: master
- name: Restore Git Submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: "Preparing NPM"
run: |
cd .github/install-qt/
npm ci
npm run build
- name: Install Qt
uses: ./.github/install-qt/
# --------------------------------------------------------
- name: Build Qv2ray
run: |
mkdir build
cd build
qmake ..
make -j4

BIN
tools/7z.dll Normal file

Binary file not shown.

BIN
tools/7z.exe Normal file

Binary file not shown.