1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-20 20:23:03 +02:00

[CI] configure android builds

This commit is contained in:
Andrey Filipenkov 2023-02-26 15:53:51 +03:00
parent 3c2fd7f1b8
commit 299bf93390
5 changed files with 67 additions and 11 deletions

View File

@ -83,6 +83,7 @@ jobs:
extension: dmg extension: dmg
preset: macos-conan-ninja-release preset: macos-conan-ninja-release
conan_profile: macos-intel conan_profile: macos-intel
conan_options: --options with_apple_system_libs=True
artifact_platform: intel artifact_platform: intel
- platform: mac-arm - platform: mac-arm
os: macos-12 os: macos-12
@ -91,6 +92,7 @@ jobs:
extension: dmg extension: dmg
preset: macos-arm-conan-ninja-release preset: macos-arm-conan-ninja-release
conan_profile: macos-arm conan_profile: macos-arm
conan_options: --options with_apple_system_libs=True
artifact_platform: arm artifact_platform: arm
- platform: ios - platform: ios
os: macos-12 os: macos-12
@ -99,6 +101,7 @@ jobs:
extension: ipa extension: ipa
preset: ios-release-conan preset: ios-release-conan
conan_profile: ios-arm64 conan_profile: ios-arm64
conan_options: --options with_apple_system_libs=True
- platform: msvc - platform: msvc
os: windows-latest os: windows-latest
test: 0 test: 0
@ -114,6 +117,20 @@ jobs:
cmake_args: -G Ninja cmake_args: -G Ninja
preset: windows-mingw-conan-linux preset: windows-mingw-conan-linux
conan_profile: mingw64-linux.jinja conan_profile: mingw64-linux.jinja
- platform: android-32
os: ubuntu-22.04
extension: apk
preset: android-conan-ninja-release
conan_profile: android-32
conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT
artifact_platform: armeabi-v7a
- platform: android-64
os: ubuntu-22.04
extension: apk
preset: android-conan-ninja-release
conan_profile: android-64
conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT
artifact_platform: aarch64-v8a
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
defaults: defaults:
run: run:
@ -144,7 +161,7 @@ jobs:
--build=never \ --build=never \
--profile:build=default \ --profile:build=default \
--profile:host=CI/conan/${{ matrix.conan_profile }} \ --profile:host=CI/conan/${{ matrix.conan_profile }} \
--options with_apple_system_libs=True ${{ matrix.conan_options }}
env: env:
GENERATE_ONLY_BUILT_CONFIG: 1 GENERATE_ONLY_BUILT_CONFIG: 1
@ -188,6 +205,13 @@ jobs:
&& '${{github.workspace}}/CI/${{matrix.platform}}/post_pack.sh' '${{github.workspace}}' "$(ls '${{ env.VCMI_PACKAGE_FILE_NAME }}'.*)" && '${{github.workspace}}/CI/${{matrix.platform}}/post_pack.sh' '${{github.workspace}}' "$(ls '${{ env.VCMI_PACKAGE_FILE_NAME }}'.*)"
rm -rf _CPack_Packages rm -rf _CPack_Packages
- name: Create android package
if: ${{ startsWith(matrix.platform, 'android') }}
run: |
cd android
./gradlew assembleDaily --info
echo ANDROID_APK_PATH="$(ls ${{ github.workspace }}/android/vcmi-app/build/outputs/apk/daily/*.${{ matrix.extension }})" >> $GITHUB_ENV
- name: Additional logs - name: Additional logs
if: ${{ failure() && steps.cpack.outcome == 'failure' && matrix.platform == 'msvc' }} if: ${{ failure() && steps.cpack.outcome == 'failure' && matrix.platform == 'msvc' }}
run: | run: |
@ -201,12 +225,19 @@ jobs:
name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }}
path: | path: |
${{github.workspace}}/out/build/${{matrix.preset}}/${{ env.VCMI_PACKAGE_FILE_NAME }}.${{ matrix.extension }} ${{github.workspace}}/out/build/${{matrix.preset}}/${{ env.VCMI_PACKAGE_FILE_NAME }}.${{ matrix.extension }}
- name: Android artifacts
if: ${{ startsWith(matrix.platform, 'android') }}
uses: actions/upload-artifact@v3
with:
name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }}
path: |
${{ env.ANDROID_APK_PATH }}
- name: Upload build - name: Upload build
if: ${{ matrix.pack == 1 && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' }} if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' }}
continue-on-error: true continue-on-error: true
run: | run: |
cd '${{github.workspace}}/out/build/${{matrix.preset}}' cd '${{github.workspace}}/android/vcmi-app/build/outputs/apk/daily' || cd '${{github.workspace}}/out/build/${{matrix.preset}}'
source '${{github.workspace}}/CI/upload_package.sh' source '${{github.workspace}}/CI/upload_package.sh'
env: env:
DEPLOY_RSA: ${{ secrets.DEPLOY_RSA }} DEPLOY_RSA: ${{ secrets.DEPLOY_RSA }}
@ -219,11 +250,3 @@ jobs:
env: env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: always() if: always()
- name: Trigger Android
uses: peter-evans/repository-dispatch@v1
if: ${{ (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master') && matrix.platform == 'msvc' }}
with:
token: ${{ secrets.VCMI_ANDROID_ACCESS_TOKEN }}
repository: vcmi/vcmi-android
event-type: vcmi

View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
DEPS_FILENAME=armeabi-v7a
. CI/android/before_install.sh

View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
DEPS_FILENAME=aarch64-v8a
. CI/android/before_install.sh

8
CI/android/before_install.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get install ninja-build
mkdir ~/.conan ; cd ~/.conan
curl -L "https://github.com/vcmi/vcmi-dependencies/releases/download/android-1.0/$DEPS_FILENAME.txz" \
| tar -xf - --xz

View File

@ -186,6 +186,18 @@
"cacheVariables": { "cacheVariables": {
"CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos" "CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos"
} }
},
{
"name": "android-conan-ninja-release",
"displayName": "Android release",
"description": "VCMI Android Ninja using Conan",
"inherits": [
"build-with-conan",
"default-release"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
} }
], ],
"buildPresets": [ "buildPresets": [
@ -255,6 +267,11 @@
"name": "ios-release-legacy", "name": "ios-release-legacy",
"configurePreset": "ios-release-legacy", "configurePreset": "ios-release-legacy",
"inherits": "ios-release-conan" "inherits": "ios-release-conan"
},
{
"name": "android-conan-ninja-release",
"configurePreset": "android-conan-ninja-release",
"inherits": "default-release"
} }
], ],
"testPresets": [ "testPresets": [