Fix typo #56
Workflow file for this run
This file contains hidden or 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
| name: android | |
| on: [push] | |
| jobs: | |
| use_install_qt: | |
| name: use install qt android_${{matrix.os}}-qt${{matrix.qt_version}}-${{matrix.VCPKG_TARGET_TRIPLET}}-${{matrix.BUILD_TYPE}} | |
| strategy: | |
| matrix: | |
| BUILD_TYPE: [Release] | |
| ANDROID_ABI: [armeabi-v7a, x86] | |
| ANDROID_PLATFORM: [android-28] | |
| os: [Ubuntu-20.04] | |
| qt_version: [6.2.4] | |
| include: | |
| - VCPKG_TARGET_TRIPLET: arm-android | |
| qt_version: 6.2.4 | |
| qt_arch: android_armv7 | |
| ANDROID_ABI: armeabi-v7a | |
| qt_modules: 'qtscxml qtmultimedia qtwebview qtimageformats' | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| SOURCE_DIR: ${{github.workspace}}/.cache/source | |
| TOOLS_DIR: ${{github.workspace}}/.cache/tools | |
| BUILD_DIR: ${{github.workspace}}/build | |
| INSTALL_DIR: ${{github.workspace}}/.cache/install_anrdoi_qt${{matrix.qt_version}}_${{matrix.qt_arch}}_${{matrix.BUILD_TYPE}} | |
| RabbitIM_VERSION: v0.0.25 | |
| VCPKGGITCOMMITID: 4c5ae6b55f3e3e39d291679f89822f496cf190ee | |
| qt_modules: '${{matrix.qt_modules}}' | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| - uses: snickerbockers/submodules-init@v4 | |
| - name: make directory | |
| run: | | |
| cmake -E make_directory ${{env.SOURCE_DIR}} | |
| cmake -E make_directory ${{env.TOOLS_DIR}} | |
| cmake -E make_directory ${{env.INSTALL_DIR}} | |
| cmake -E make_directory ${{env.BUILD_DIR}} | |
| - name: Cache Qt | |
| id: cache-qt | |
| uses: actions/cache@v1 # not v2! | |
| with: | |
| path: ${{env.TOOLS_DIR}}/qt | |
| key: qt_${{matrix.qt_version}}_${{matrix.qt_arch}} | |
| - name: Install Qt | |
| # You may pin to the exact commit or the version. | |
| # uses: jurplel/install-qt-action@a962fb91949c8e846a3e4a944d50e7ef5cc3a28a | |
| uses: jurplel/install-qt-action@v3 | |
| with: | |
| # Directory to install Qt | |
| dir: '${{env.TOOLS_DIR}}/qt' # optional | |
| # Version of Qt to install | |
| version: '${{matrix.qt_version}}' # optional, default is 5.15.2 | |
| # Host platform | |
| #host: linux # optional | |
| # Target platform for build | |
| target: 'android' # optional, default is desktop | |
| # Architecture for Windows/Android | |
| arch: '${{matrix.qt_arch}}' # optional | |
| # Whether or not to install Qt dependencies on Linux | |
| #install-deps: true # optional, default is true | |
| # Additional Qt modules to install | |
| modules: '${{env.qt_modules}}' # optional | |
| # Force a Qt mirror in case the default is not working | |
| #mirror: # optional | |
| # Whether or not to actually download Qt | |
| cached: '${{ steps.cache-qt.outputs.cache-hit }}' # optional, default is false | |
| # Whether or not to automatically run setup-python to find a valid python version. | |
| #setup-python: false # optional, default is true | |
| # Qt tools to download--specify comma-separated argument lists which are themselves separated by spaces: <tool_name>,<tool_version>,<tool_arch> | |
| #tools: # optional | |
| # Whether or not to actually install Qt or just the tools from the tools argument | |
| #tools-only: false # optional, default is false | |
| # Version of aqtinstall to use in case of issues | |
| #aqtversion: # optional, default is ==0.10.0 | |
| # Version of py7zr to use in case of issues | |
| #py7zrversion: # optional, default is ==0.11.0 | |
| # Any extra arguments to append to the back | |
| #extra: # optional | |
| - name: run-vcpkg | |
| uses: lukka/run-vcpkg@v7.4 | |
| with: | |
| # Indicates whether to only setup vcpkg (i.e. installing it and setting the environment variables VCPKG_ROOT, RUNVCPK_VCPKG_ROOT), without installing any port. | |
| #setupOnly: # optional | |
| #vcpkgGitURL: https://github.com/KangLin/vcpkg.git | |
| vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}} | |
| vcpkgDirectory: ${{ runner.workspace }}/vcpkg/ | |
| # Since the cache must be invalidated when content of the vcpkg.json file changes, let's | |
| # compute its hash and append this to the computed cache's key. | |
| appendedCacheKey: android_${{matrix.os}}-qt${{matrix.qt_version}}-${{matrix.VCPKG_TARGET_TRIPLET}}-${{matrix.BUILD_TYPE}}-${{env.VCPKGGITCOMMITID}} | |
| additionalCachedPaths: $VCPKG_ROOT/installed | |
| vcpkgTriplet: '${{ matrix.VCPKG_TARGET_TRIPLET }}' | |
| vcpkgArguments: 'zlib openssl libpng libjpeg-turbo libdatachannel' | |
| - name: Cache installed | |
| uses: actions/cache@v2 | |
| id: cache-installed | |
| with: | |
| path: | | |
| ${{env.INSTALL_DIR}} | |
| key: cache-installed-android | |
| - name: build qxmpp | |
| working-directory: ${{env.SOURCE_DIR}} | |
| env: | |
| QT_ROOT: ${{env.Qt6_Dir}} | |
| run: | | |
| if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/qxmpp ]; then | |
| git clone -b v1.2.1 "https://github.com/qxmpp-project/qxmpp.git" | |
| cd qxmpp | |
| cmake -E make_directory build | |
| cd build | |
| cmake .. -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF \ | |
| -DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \ | |
| -DQt6_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6 \ | |
| -DQt6Core_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Core \ | |
| -DQt6Gui_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Gui \ | |
| -DQt6Test_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Test \ | |
| -DQt6Xml_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Xml \ | |
| -DQt6Network_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Network \ | |
| -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_DIR}} \ | |
| -DCMAKE_PREFIX_PATH=${{env.QT_ROOT}} \ | |
| -DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake \ | |
| -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ | |
| -DANDROID_ABI=${{matrix.ANDROID_ABI}} \ | |
| -DANDROID_PLATFORM=${{matrix.ANDROID_PLATFORM}} | |
| cmake --build . --config ${{matrix.BUILD_TYPE}} | |
| cmake --build . --config ${{matrix.BUILD_TYPE}} --target install/strip | |
| fi | |
| - name: git clone RabbitCommon | |
| working-directory: ${{env.SOURCE_DIR}} | |
| run: git clone https://github.com/KangLin/RabbitCommon.git | |
| - name: build RabbitIM | |
| env: | |
| RabbitCommon_DIR: ${{env.SOURCE_DIR}}/RabbitCommon | |
| QT_ROOT: ${{env.Qt6_Dir}} | |
| STOREPASS: ${{secrets.STOREPASS}} | |
| run: | | |
| cmake -E make_directory ${{github.workspace}}/build | |
| cd ${{github.workspace}}/build | |
| cmake ${{github.workspace}} \ | |
| -DCMARK_SHARED=OFF \ | |
| -DCMARK_TESTS=OFF \ | |
| -DCMARK_STATIC=ON \ | |
| -DBUILD_FREERDP=ON \ | |
| -DQXmpp_DIR=${{env.INSTALL_DIR}}/lib/cmake/qxmpp \ | |
| -DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \ | |
| -DQT_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6 \ | |
| -DQt6_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6 \ | |
| -DQt6Core_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Core \ | |
| -DQt6Gui_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Gui \ | |
| -DQt6Widgets_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Widgets \ | |
| -DQt6Xml_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Xml \ | |
| -DQt6Sql_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Sql \ | |
| -DQt6Positioning_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Positioning \ | |
| -DQt6Network_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Network \ | |
| -DQt6Multimedia_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Multimedia \ | |
| -DQt6LinguistTools_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6LinguistTools \ | |
| -DQt6Qml_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Qml \ | |
| -DQt6Quick_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Quick \ | |
| -DQt6QuickWidgets_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6QuickWidgets \ | |
| -DQt6AndroidExtras_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6AndroidExtras \ | |
| -DQt6Concurrent_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Concurrent \ | |
| -DQt6Test_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6Test \ | |
| -DQt6WebEngineWidgets_DIR=${{env.QT_ROOT}}/lib/cmake/Qt6WebEngineWidgets \ | |
| -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_DIR}} \ | |
| -DCMAKE_PREFIX_PATH="${{env.QT_ROOT}}:${{env.INSTALL_DIR}}" \ | |
| -DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake \ | |
| -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ | |
| -DANDROID_ABI=${{matrix.ANDROID_ABI}} \ | |
| -DANDROID_PLATFORM=${{matrix.ANDROID_PLATFORM}} | |
| cmake --build . --config ${{ matrix.BUILD_TYPE }} | |
| cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install-runtime | |
| cmake --build . --config ${{ matrix.BUILD_TYPE }} --target APK | |
| - name: Package | |
| if: ${{matrix.BUILD_TYPE == 'Release'}} | |
| working-directory: ${{env.INSTALL_DIR}} | |
| env: | |
| QT_ROOT: ${{env.Qt6_Dir}} | |
| RabbitCommon_DIR: ${{env.SOURCE_DIR}}/RabbitCommon | |
| run: | | |
| APK_FILE=`find . -name "install-release-signed.apk"` | |
| APK_NAME=RabbitIM_${{matrix.ANDROID_ABI}}_${RabbitIM_VERSION}.apk | |
| mv -f ${APK_FILE} ${APK_NAME} | |
| APK_FILE=${APK_NAME} | |
| cp ${{github.workspace}}/Update/update_android.xml . | |
| md5sum ${APK_FILE} > ${APK_FILE}.md5 | |
| MD5=`cat ${APK_FILE}.md5 | awk '{print $1}'` | |
| echo "MD5:${MD5}" | |
| sed -i "s/<VERSION>.*</<VERSION>${RabbitIM_VERSION}</g" update_android.xml | |
| sed -i "s/<INFO>.*</<INFO>Release rabbit remote control ${RabbitIM_VERSION}</g" update_android.xml | |
| sed -i "s/<TIME>.*</<TIME>`date`</g" update_android.xml | |
| sed -i "s/<ARCHITECTURE>.*</<ARCHITECTURE>${BUILD_ARCH}</g" update_android.xml | |
| sed -i "s/<MD5SUM>.*</<MD5SUM>${MD5}</g" update_android.xml | |
| sed -i "s/<FILENAME>.*</<FILENAME>${APK_NAME}</g" update_android.xml | |
| sed -i "s:<URL>.*<:<URL>https\://github.com/KangLin/RabbitIM/releases/download/${RabbitIM_VERSION}/${APK_NAME}<:g" update_android.xml | |
| sed -i "s/<MIN_UPDATE_VERSION>.*</<MIN_UPDATE_VERSION>${RabbitIM_VERSION}</g" update_android.xml | |
| - name: update | |
| if: ${{ matrix.BUILD_TYPE == 'Release' }} | |
| uses: actions/upload-artifact@v2 | |
| with: | |
| name: RabbitIM_Android_${{matrix.ANDROID_ABI}}_${{env.RabbitIM_VERSION}} | |
| path: | | |
| ${{env.INSTALL_DIR}}/RabbitIM_${{matrix.ANDROID_ABI}}_${{env.RabbitIM_VERSION}}.apk | |
| - name: Upload To Github Release | |
| if: ${{matrix.ANDROID_ABI=='armeabi-v7a' && matrix.BUILD_TYPE == 'Release' && startsWith(github.ref, 'refs/tags/') }} | |
| uses: softprops/action-gh-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| prerelease: true | |
| # body: | | |
| # [:cn: 修改日志](ChangeLog_zh_CN.md) [:cn: 说明](README_zh_CN.md) | |
| # [:us: Change log](ChangeLog.md) [:us: README](README.md) | |
| files: | | |
| ${{env.INSTALL_DIR}}/RabbitIM_${{matrix.ANDROID_ABI}}_${{env.RabbitIM_VERSION}}.apk | |
| ${{env.INSTALL_DIR}}/RabbitIM_${{matrix.ANDROID_ABI}}_${{env.RabbitIM_VERSION}}.apk.md5 | |
| ${{env.INSTALL_DIR}}/update_android.xml |