| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- name: CI-Linux
- on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
- # Allows you to run this workflow manually from the Actions tab.
- workflow_dispatch:
- env:
- VNOTE_VER: 3.2.0
- jobs:
- build-linux:
- name: Build On Ubuntu
- runs-on: ubuntu-18.04
- timeout-minutes: 120
- steps:
- # Checks-out your repository under $GITHUB_WORKSPACE.
- - uses: actions/checkout@v2
- with:
- fetch-depth: 1
- - name: Init Submodules
- run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- - name: Install linuxdeploy
- uses: miurahr/install-linuxdeploy-action@v1
- with:
- plugins: qt appimage
- - name: Install dependencies
- run: |
- sudo DEBIAN_FRONTEND=noninteractive apt-get update
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx-qt5-dev tree
- - name: Install Qt
- uses: jurplel/install-qt-action@v2
- with:
- version: 5.12.10
- target: desktop
- modules: qtwebchannel qtwebengine qtsvg qtlocation qttools qttranslations
- tools: tools_openssl_x64,1.1.1-4,qt.tools.openssl.gcc_64
- - name: Create Build Dir
- run: mkdir build
- working-directory: ${{runner.workspace}}
- - name: Compile qt5ct
- run: |
- wget -c https://excellmedia.dl.sourceforge.net/project/qt5ct/qt5ct-1.1.tar.bz2
- tar xf qt5ct-1.*.tar.bz2
- cd qt5ct-1.*/
- QT_SELECT=5 qmake
- make -j$(nproc) && sudo make install
- working-directory: ${{runner.workspace}}/build
- - name: Configure Project
- run: |
- qmake -v
- cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ./
- sudo chmod +rwx ./libfcitxplatforminputcontextplugin.so
- cp ./libfcitxplatforminputcontextplugin.so $Qt5_Dir/plugins/platforminputcontexts
- qmake CONFIG+=release -spec linux-g++-64 ${GITHUB_WORKSPACE}/vnote.pro
- working-directory: ${{runner.workspace}}/build
- - name: Build Project
- run: make -j$(nproc)
- working-directory: ${{runner.workspace}}/build
- - name: Install Project
- run: |
- mkdir AppDir
- make install INSTALL_ROOT=${{runner.workspace}}/build/AppDir
- tree AppDir
- working-directory: ${{runner.workspace}}/build
- - name: Package Project
- run: |
- # Move the lib out to avoid duplication
- mv AppDir/usr/lib ./
- LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
- # Copy translations
- mkdir -p AppDir/usr/translations
- cp $Qt5_Dir/translations/qt_zh_CN.qm AppDir/usr/translations
- # Package qt5ct (EXTRA_QT_PLUGINS seems not work)
- # EXTRA_QT_PLUGINS="platformthemes/libqt5ct.so;styles/libqt5ct-style.so"
- mkdir -p AppDir/usr/plugins/platformthemes
- mkdir -p AppDir/usr/plugins/styles
- cp $Qt5_Dir/plugins/platformthemes/* AppDir/usr/plugins/platformthemes/
- cp $Qt5_Dir/plugins/styles/* AppDir/usr/plugins/styles/
- # Package libssl.so and libcrypto.so
- Qt5_Tools=$Qt5_Dir/../../Tools
- linuxdeploy-x86_64.AppImage --appdir ./AppDir --plugin qt --output appimage -l $Qt5_Tools/OpenSSL/binary/lib/libcrypto.so.1.1 -l $Qt5_Tools/OpenSSL/binary/lib/libssl.so.1.1
- tree AppDir
- working-directory: ${{runner.workspace}}/build
- - name: Fix Package
- run: |
- mkdir fixpackage
- mv VNote*.AppImage ./fixpackage
- pushd fixpackage
- # Extract the AppImage
- ./VNote*.AppImage --appimage-extract
- # Remove libnss3.so and libnssutil3.so
- rm ./squashfs-root/usr/lib/libnss*.so
- # Re-package
- rm VNote*.AppImage
- linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=./squashfs-root
- mv VNote*.AppImage ../
- popd
- mv VNote*.AppImage vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage
- cp vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage vnote-linux-x64.AppImage
- working-directory: ${{runner.workspace}}/build
- - name: Archive Artifacts
- uses: actions/upload-artifact@v2
- with:
- name: vnote-linux-x64_v${{env.VNOTE_VER}}
- path: ${{runner.workspace}}/build/vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage
- - name: Update Tag
- if: github.ref == 'refs/heads/master'
- run: |
- git tag --force continuous-build ${GITHUB_SHA}
- git push --force --tags
- - name: Update Continuous Build Release
- if: github.ref == 'refs/heads/master'
- uses: johnwbyrd/[email protected]
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- files: ${{runner.workspace}}/build/vnote-linux-x64.AppImage
- release: Continuous Build
- tag: continuous-build
|