[fix] Fixed Github Actions

Former-commit-id: 2fcd32e31e
This commit is contained in:
Leroy.H.Y 2019-10-26 20:16:00 +08:00
parent 7f38fb0b21
commit bc57e4be0e
6 changed files with 115 additions and 92 deletions

View File

@ -1,4 +1,4 @@
name: Build Cross-platform Qv2ray name: Qv2ray Push Build
on: push on: push
@ -7,26 +7,31 @@ jobs:
name: Push build for win64 name: Push build for win64
runs-on: windows-2019 runs-on: windows-2019
steps: steps:
- name: Checkout Sources - name: Checking out Qv2ray sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
with: with:
arch: win64_mingw73 arch: win64_mingw73
# -------------------------------------------------------- # --------------------------------------------------------
- name: Extract gRPC and protobuf - name: Extracting gRPC and protobuf libs and headers
run: tools\grpc_gen.bat run: tools\grpc_gen.bat
# -------------------------------------------------------- # --------------------------------------------------------
- name: Build Qv2ray - name: Building Qv2ray
shell: cmd
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
mingw32-make -j4 mingw32-make -j2
- name: Make release package - name: Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: Make release zipball
shell: cmd
run: | run: |
cd build cd build
cd release cd release
@ -34,7 +39,7 @@ jobs:
windeployqt ./Qv2ray.exe --compiler-runtime windeployqt ./Qv2ray.exe --compiler-runtime
cd .. cd ..
..\tools\7z.exe a Qv2ray.zip .\release ..\tools\7z.exe a Qv2ray.zip .\release
- name: Upload Artifact - name: Uploading artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.Win64.zip name: Qv2ray.Win64.zip
@ -46,31 +51,31 @@ jobs:
name: Push build for macOS name: Push build for macOS
runs-on: macOS-10.14 runs-on: macOS-10.14
steps: steps:
- name: Checkout Sources - name: Checking out sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
# -------------------------------------------------------- # --------------------------------------------------------
- name: Extract gRPC and protobuf - name: Extracting gRPC and protobuf libs and headers
run: tools/deps_macOS.sh run: tools/deps_macOS.sh
# -------------------------------------------------------- # --------------------------------------------------------
- name: Build Qv2ray - name: Building Qv2ray
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
make -j4 make -j2
- name: Make Package - name: Making release tarball
run: | run: |
cd build cd build
cd Qv2ray.app cd Qv2ray.app
macdeployqt ./ macdeployqt ./
cd .. cd ..
tar czf Qv2ray.app.tar.gz Qv2ray.app tar czf Qv2ray.app.tar.gz Qv2ray.app
- name: Upload Artifact - name: Uploading Artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.macOS.app.zip name: Qv2ray.macOS.app.zip
@ -81,46 +86,49 @@ jobs:
name: Push build for Linux name: Push build for Linux
runs-on: ubuntu-16.04 runs-on: ubuntu-16.04
steps: steps:
- name: Checkout Sources - name: Checking out sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Packages - name: Install Packages
run: sudo apt install -y libgl-dev and openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc run: |
sudo add-apt-repository ppa:webispy/grpc
sudo add-apt-repository ppa:carsten-uppenbrink-net/openssl
sudo apt update
sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc
# -------------------------------------------------------- # --------------------------------------------------------
- name: Extract gRPC and protobuf - name: Extracting gRPC and protobuf libs and headers
run: tools/grpc_gen.sh run: tools/grpc_gen.sh
# -------------------------------------------------------- # --------------------------------------------------------
- name: Update Locate DB - name: Building Qv2ray
run: sudo updatedb
- name: Build Qv2ray
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
make -j4 make -j2
- name: Generate FS Structure for AppImage - name: Generating filesystem structure for AppImage
run: | run: |
cd build cd build
make install INSTALL_ROOT=AppDir make install INSTALL_ROOT=AppDir
cd AppDir cd AppDir
mkdir -p ./usr/lib/ mkdir -p ./usr/lib/
cp /lib/x86_64-linux-gnu/libssl.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/ mkdir -p ./usr/bin/
cp /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 ./usr/lib/ mv ./usr/local/bin/Qv2ray ./usr/bin/Qv2ray
- name: Build AppImage using linuxdeployqt cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: Building AppImage using linuxdeployqt
run: | run: |
cd build/AppDir cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage 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
chmod +x ../linuxdeployqt-6-x86_64.AppImage ./linuxdeployqt-6-x86_64.AppImage --appimage-extract
../linuxdeployqt-6-x86_64.AppImage --appimage-extract cd AppDir
./squashfs-root/AppRun usr/share/applications/Qv2ray.desktop -appimage -no-strip -always-overwrite ../squashfs-root/AppRun usr/share/applications/Qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: Upload Artifact - name: Uploading artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.linux.AppImage name: Qv2ray.linux.AppImage

View File

@ -1,4 +1,4 @@
name: Build Artifact for Release name: Build Pre-Release Qv2ray
on: on:
release: release:
@ -9,34 +9,39 @@ jobs:
name: Release for Windows x64 name: Release for Windows x64
runs-on: windows-2019 runs-on: windows-2019
steps: steps:
- name: Checkout Sources - name: Checking out Qv2ray sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
with: with:
arch: win64_mingw73 arch: win64_mingw73
# -------------------------------------------------------- # --------------------------------------------------------
- name: Build Qv2ray - name: Extracting gRPC and protobuf libs and headers
run: tools\grpc_gen.bat
# --------------------------------------------------------
- name: Building Qv2ray
shell: cmd
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
mingw32-make -j4 mingw32-make -j2
- name: Make release package - name: Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: Make release zipball
shell: cmd
run: | run: |
cd build cd build
mkdir package cd release
cd package del *.cpp *.h *.o *.qrc *.qm
copy ..\release\Qv2ray.exe .\
copy ..\..\libs\libcrypto-1_1.dll .\
copy ..\..\libs\libssl-1_1.dll .\
windeployqt ./Qv2ray.exe --compiler-runtime windeployqt ./Qv2ray.exe --compiler-runtime
cd .. cd ..
..\tools\7z.exe a Qv2ray.zip .\package ..\tools\7z.exe a Qv2ray.zip .\release
- name: Upload Artifact - name: Uploading artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.Win64.zip name: Qv2ray.Win64.zip
@ -56,28 +61,31 @@ jobs:
name: Release for macOS name: Release for macOS
runs-on: macOS-10.14 runs-on: macOS-10.14
steps: steps:
- name: Checkout Sources - name: Checking out sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
# -------------------------------------------------------- # --------------------------------------------------------
- name: Build Qv2ray - name: Extracting gRPC and protobuf libs and headers
run: tools/deps_macOS.sh
# --------------------------------------------------------
- name: Building Qv2ray
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
make -j4 make -j2
- name: Make Package - name: Making release tarball
run: | run: |
cd build cd build
cd Qv2ray.app cd Qv2ray.app
macdeployqt ./ macdeployqt ./
cd .. cd ..
tar czf Qv2ray.app.tar.gz Qv2ray.app tar czf Qv2ray.app.tar.gz Qv2ray.app
- name: Upload Artifact - name: Uploading Artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.macOS.app.zip name: Qv2ray.macOS.app.zip
@ -96,40 +104,49 @@ jobs:
name: Release for linux name: Release for linux
runs-on: ubuntu-16.04 runs-on: ubuntu-16.04
steps: steps:
- name: Checkout Sources - name: Checking out sources
uses: actions/checkout@master uses: actions/checkout@master
- name: Restore Git Submodules - name: Restoring submodules
run: git submodule update --init run: git submodule update --init
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install Qt - name: Installing Qt
uses: jurplel/install-qt-action@v1 uses: jurplel/install-qt-action@v1
# -------------------------------------------------------- # --------------------------------------------------------
- name: Install libgl-dev and openssl libx11-dev libxkbcommon-x11-dev - name: Install Packages
run: sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev run: |
- name: Build Qv2ray sudo add-apt-repository ppa:webispy/grpc
sudo add-apt-repository ppa:carsten-uppenbrink-net/openssl
sudo apt update
sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools/grpc_gen.sh
# --------------------------------------------------------
- name: Building Qv2ray
run: | run: |
mkdir build mkdir build
cd build cd build
qmake .. qmake ..
make -j4 make -j2
- name: Generate FS Structure for AppImage - name: Generating filesystem structure for AppImage
run: | run: |
cd build cd build
make install INSTALL_ROOT=AppDir make install INSTALL_ROOT=AppDir
cd AppDir cd AppDir
mkdir -p ./opt/Qv2ray/lib/ mkdir -p ./usr/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/ mkdir -p ./usr/bin/
cp /lib/x86_64-linux-gnu/libssl.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1.1 ./opt/Qv2ray/lib/ mv ./usr/local/bin/Qv2ray ./usr/bin/Qv2ray
- name: Build AppImage using linuxdeployqt cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: Building AppImage using linuxdeployqt
run: | run: |
cd build/AppDir cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage 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
chmod +x ../linuxdeployqt-6-x86_64.AppImage ./linuxdeployqt-6-x86_64.AppImage --appimage-extract
../linuxdeployqt-6-x86_64.AppImage --appimage-extract cd AppDir
./squashfs-root/AppRun opt/Qv2ray/share/applications/Qv2ray.desktop -appimage -no-strip -always-overwrite ../squashfs-root/AppRun usr/share/applications/Qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: Upload Artifact - name: Uploading artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
with: with:
name: Qv2ray.linux.AppImage name: Qv2ray.linux.AppImage

5
.github/workflows/copy_DLLs.bat vendored Normal file
View File

@ -0,0 +1,5 @@
@echo off
echo Copying Windows Necessary DLLs
forfiles /s /p %GITHUB_WORKSPACE%\libs\ /m "*.dll" /c "cmd.exe /c copy @file %GITHUB_WORKSPACE%\build\release\"
forfiles /s /p %GITHUB_WORKSPACE%\libs\ /m "*.dll" /c "cmd.exe /c copy @file %GITHUB_WORKSPACE%\build\debug\"
exit 0

View File

@ -1 +1 @@
57 61

View File

@ -45,7 +45,6 @@ SOURCES += \
libs/gen/v2ray_api_commands.grpc.pb.cc libs/gen/v2ray_api_commands.grpc.pb.cc
INCLUDEPATH += \ INCLUDEPATH += \
/usr/local/include/ \
3rdparty/ \ 3rdparty/ \
src/ \ src/ \
src/ui/ \ src/ui/ \
@ -118,7 +117,7 @@ ICON = ./icons/Qv2ray.icns
message("-----------------------------------------------") message("-----------------------------------------------")
message(" ") message(" ")
warning("IF YOU THINK IT'S A MISTAKE, PLEASE OPEN AN ISSUE") warning("IF YOU THINK IT'S A MISTAKE, PLEASE OPEN AN ISSUE")
error("! NOW THE BUILD WILL ABORT !") error("! ABORTING THE BUILD !")
message(" ") message(" ")
} }
@ -136,6 +135,7 @@ for(var, $$list($$files("translations/*.ts", true))) {
message("Qv2ray will build with" $${replace(EXTRA_TRANSLATIONS, "translations/", "")}) message("Qv2ray will build with" $${replace(EXTRA_TRANSLATIONS, "translations/", "")})
TRANSLATIONS += translations/en-US.ts TRANSLATIONS += translations/en-US.ts
message(" ")
QMAKE_CXXFLAGS += "-Wno-missing-field-initializers" "-Wno-unused-parameter" "-Wno-unused-variable" QMAKE_CXXFLAGS += "-Wno-missing-field-initializers" "-Wno-unused-parameter" "-Wno-unused-variable"
win32 { win32 {
message("Configuring for win32 environment") message("Configuring for win32 environment")
@ -155,27 +155,20 @@ win32 {
INCLUDEPATH += $$PWD/libs/gRPC-win32/include INCLUDEPATH += $$PWD/libs/gRPC-win32/include
DEPENDPATH += $$PWD/libs/gRPC-win32/include DEPENDPATH += $$PWD/libs/gRPC-win32/include
# Some files issue.
CONFIG(release, debug|release) {
message(" --> Appending scripts for copying gRPC and protobuf dll to RELEASE directory.")
QMAKE_PRE_LINK += forfiles /s /p $${replace(PWD, /, \\)}\libs\ /m "*.dll" /c \"cmd.exe /c copy @file $${replace(OUT_PWD, /, \\)}\\release\\\"
}
CONFIG(debug, debug|release) {
message(" --> Appending scripts for copying gRPC and protobuf dll to DEBUG directory.")
QMAKE_PRE_LINK += forfiles /s /p $${replace(PWD, /, \\)}\libs\ /m "*.dll" /c \"cmd.exe /c copy @file $${replace(OUT_PWD, /, \\)}\\debug\\\"
}
PRE_TARGETDEPS += $$PWD/libs/gRPC-win32/lib/libgrpc++.dll.a $$PWD/libs/gRPC-win32/lib/libprotobuf.dll.a PRE_TARGETDEPS += $$PWD/libs/gRPC-win32/lib/libgrpc++.dll.a $$PWD/libs/gRPC-win32/lib/libprotobuf.dll.a
} }
unix { unix {
# For Linux and macOS # For Linux and macOS
message("Configuring for unix (macOS and linux) environment") message("Configuring for unix-like (macOS and linux) environment")
# For gRPC and protobuf in linux and macOS # For gRPC and protobuf in linux and macOS
message(" --> Linking against gRPC and protobuf library.") message(" --> Linking against gRPC and protobuf library.")
LIBS += -L/usr/local/lib -lgrpc++ -lprotobuf LIBS += -L/usr/local/lib -lgrpc++ -lprotobuf
# macOS homebrew include path
message(" --> Adding local include folder to search path")
INCLUDEPATH += /usr/local/include/
message(" --> Adding Plasma Toolbox CPP files.") message(" --> Adding Plasma Toolbox CPP files.")
SOURCES += src/ui/NetSpeedBar/QvNetSpeedBar_linux.cpp SOURCES += src/ui/NetSpeedBar/QvNetSpeedBar_linux.cpp
@ -187,7 +180,7 @@ unix {
icon.files += ./icons/Qv2ray.png icon.files += ./icons/Qv2ray.png
icon.path = /usr/share/icons/hicolor/256x256/apps/ icon.path = /usr/share/icons/hicolor/256x256/apps/
target.path = /usr/local/bin target.path = /usr/local/bin/
INSTALLS += target desktop icon INSTALLS += target desktop icon
} }

View File

@ -3,6 +3,6 @@ Type=Application
Keywords=Internet;VPN;Proxy;v2ray;Qt; Keywords=Internet;VPN;Proxy;v2ray;Qt;
Categories=Network;Qt; Categories=Network;Qt;
Icon=Qv2ray Icon=Qv2ray
Exec=/usr/local/bin/Qv2ray Exec=Qv2ray
Name=Qv2ray Name=Qv2ray
Comment=Cross platform v2ray Qt GUI Client. Comment=Cross platform v2ray Qt GUI Client.