Skip to content

Commit f7bf9b3

Browse files
committed
Add CI workflow building and publishing Android AAR and iOS Cocoapod
1 parent 45f98f9 commit f7bf9b3

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

.gitlab-ci.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
include:
2+
- project: "voize-gmbh/ci-template"
3+
ref: master
4+
file: "/templates/.gitlab-ci-template-ios-base.yml"
5+
- project: "voize-gmbh/ci-template"
6+
ref: master
7+
file: "/templates/util.yml"
8+
9+
.ios-base-job-with-cocoapods-jdk-ndk:
10+
extends: .ios-base-job
11+
retry: !reference [.retry-system-failures, retry]
12+
variables:
13+
GIT_SUBMODULE_STRATEGY: recursive
14+
before_script:
15+
- mdutil -i off # kill spotlight indexing
16+
- !reference [.setup-ssh]
17+
- brew install openjdk@17 python@3.12
18+
- python3.12 -m venv venv
19+
- . venv/bin/activate
20+
- python -m pip install pyyaml==6.0.2 typing-extensions==4.12.2
21+
- export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
22+
- brew install --cask android-commandlinetools
23+
- yes | sdkmanager --install "ndk;28.2.13676358" "cmake;3.31.6" "build-tools;34.0.0" "platforms;android-34" "platform-tools" || true
24+
- export ANDROID_HOME=$(brew --prefix)/share/android-commandlinetools
25+
- export ANDROID_NDK="$ANDROID_HOME/ndk/28.2.13676358"
26+
- export PATH="$ANDROID_HOME/cmake/3.31.6/bin:$PATH"
27+
28+
.android-base-job:
29+
tags:
30+
- k8s
31+
- arch-amd64
32+
- type-normal
33+
image: ubuntu:24.04
34+
retry: !reference [.retry-system-failures, retry]
35+
interruptible: true
36+
variables:
37+
KUBERNETES_CPU_REQUEST: 8000m
38+
KUBERNETES_MEMORY_REQUEST: 30Gi
39+
KUBERNETES_MEMORY_LIMIT: 30Gi
40+
KUBERNETES_EPHEMERAL_STORAGE_REQUEST: 30Gi
41+
KUBERNETES_EPHEMERAL_STORAGE_LIMIT: 30Gi
42+
GIT_SUBMODULE_STRATEGY: recursive
43+
before_script:
44+
- apt-get update
45+
- apt-get install -y --no-install-recommends curl unzip openjdk-17-jdk python3 python3-venv git
46+
- python3 -m venv venv
47+
- . venv/bin/activate
48+
- python -m pip install pyyaml==6.0.2 typing-extensions==4.12.2
49+
- curl -LO https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip
50+
- mkdir -p $HOME/Android/sdk/cmdline-tools/latest
51+
- mkdir -p /tmp/cmdline-tools
52+
- unzip commandlinetools-linux-13114758_latest.zip -d /tmp/cmdline-tools
53+
- mv /tmp/cmdline-tools/cmdline-tools/* $HOME/Android/sdk/cmdline-tools/latest
54+
- yes | $HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager --install "ndk;28.2.13676358" "cmake;3.31.6" "build-tools;34.0.0" "platforms;android-34" "platform-tools" || true
55+
- export PATH="$HOME/Android/sdk/cmake/3.31.6/bin:$PATH"
56+
- export ANDROID_HOME=$HOME/Android/sdk
57+
- export ANDROID_NDK=$HOME/Android/sdk/ndk/28.2.13676358
58+
59+
build-ios:
60+
extends: .ios-base-job-with-cocoapods-jdk-ndk
61+
except:
62+
- tags
63+
script:
64+
- ./scripts/build_ios.sh
65+
- ./scripts/build_ios_cocoapod.sh
66+
artifacts:
67+
paths:
68+
- out/ios/libtorch_lite_*.zip
69+
- out/ios/LibTorch-Lite.podspec
70+
71+
release-ios:
72+
extends: build-ios
73+
only:
74+
- tags
75+
script:
76+
- !reference [build-ios, script]
77+
- VERSION=$(cat version.txt)
78+
- ARCHIVE_NAME="LibTorch-Lite-${VERSION}"
79+
- mkdir -p out/ios/${ARCHIVE_NAME}
80+
- cp -R out/ios/* out/ios/${ARCHIVE_NAME}
81+
- tar -czvf "${ARCHIVE_NAME}.tar.gz" -C out/ios ${ARCHIVE_NAME}
82+
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file "${ARCHIVE_NAME}.tar.gz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/LibTorch-Lite/${VERSION}/${ARCHIVE_NAME}.tar.gz"'
83+
- pod repo add voize-cocoapod-specs git@gitlab.com:voize-gmbh/voize-ios/voize-cocoapod-specs.git
84+
- cd out/ios && pod repo push voize-cocoapod-specs LibTorch-Lite.podspec --allow-warnings
85+
86+
build-android:
87+
extends: .android-base-job
88+
except:
89+
- tags
90+
script:
91+
- ./scripts/build_pytorch_android.sh armeabi-v7a,arm64-v8a,x86_64
92+
artifacts:
93+
paths:
94+
- android/pytorch_android/build/outputs/aar/pytorch_android-release.aar
95+
96+
release-android:
97+
extends: build-android
98+
only:
99+
- tags
100+
script:
101+
- !reference [build-android, script]
102+
- cd android && ./gradlew -PABI_FILTERS=armeabi-v7a,arm64-v8a,x86_64 :pytorch_android:publish

0 commit comments

Comments
 (0)