Skip to content

Commit 7166c1b

Browse files
committed
Android cmake specific
1 parent c6be49a commit 7166c1b

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
name: Release Build CI - Android Only
2+
on:
3+
workflow_dispatch:
4+
5+
jobs:
6+
Android:
7+
runs-on: ubuntu-latest
8+
env:
9+
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r27b
10+
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r27b/toolchains/llvm/prebuilt/linux-x86_64/bin
11+
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r27b-linux.zip"
12+
CC: clang
13+
14+
steps:
15+
- name: Get branch name
16+
id: branch-name
17+
uses: tj-actions/branch-names@v6
18+
19+
- name: Set clang as the default compiler
20+
run: |
21+
sudo update-alternatives --install /usr/bin/cc cc $(which clang) 100
22+
sudo update-alternatives --install /usr/bin/c++ c++ $(which clang++) 100
23+
sudo update-alternatives --set cc $(which clang)
24+
sudo update-alternatives --set c++ $(which clang++)
25+
26+
- name: Install GitHub CLI
27+
run: |
28+
sudo apt install -y gh
29+
30+
- name: Authenticate GitHub CLI
31+
run: |
32+
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token
33+
34+
- name: Define Release Tag
35+
id: release-tag
36+
run: echo "RELEASE_TAG=Android-develop-Release" >> $GITHUB_ENV
37+
38+
- name: Download Prebuilt Boost from Thirdparty
39+
shell: bash
40+
run: |
41+
gh release download \
42+
--repo GeniusVentures/thirdparty \
43+
Android-develop-Release \
44+
--pattern Boost-lib.tar.gz
45+
46+
- name: Ensure Directory Exists
47+
run: |
48+
mkdir -p ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a
49+
50+
- name: Extract Prebuilt Boost
51+
run: |
52+
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a
53+
54+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
55+
- uses: actions/checkout@v3
56+
with:
57+
path: 'zkLLVM'
58+
submodules: "recursive"
59+
60+
- name: Download Android NDK
61+
run: |
62+
mkdir "${{github.workspace}}/android-ndk"
63+
cd "${{github.workspace}}/android-ndk"
64+
curl -o ndk.zip ${{ env.NDK_URL }}
65+
unzip ndk.zip
66+
rm ndk.zip
67+
68+
- name: Create Build Directory
69+
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a
70+
71+
- name: Configure CMake
72+
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a
73+
run: |
74+
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}}
75+
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}}
76+
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}}
77+
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH
78+
echo $PATH
79+
echo $CC
80+
ls -la $ANDROID_TOOLCHAIN
81+
echo "Check clang path:"
82+
which clang
83+
env
84+
cmake -S ../../ -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/
85+
86+
- name: Compile
87+
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a
88+
run: make -j8
89+
90+
- name: Install
91+
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a
92+
run: cmake --install .
93+
94+
- name: Compressing Build Artifacts
95+
working-directory: ${{github.workspace}}/zkLLVM
96+
if: ${{ github.event_name == 'workflow_dispatch' }}
97+
run: |
98+
shopt -s extglob
99+
rm -rf !(build) .[!.]* ..?*
100+
cd build
101+
rm -rf !(Android) .[!.]* ..?*
102+
cd Android
103+
rm -rf !(Release) .[!.]* ..?*
104+
cd Release
105+
rm -rf !(arm64-v8a) .[!.]* ..?*
106+
cd arm64-v8a
107+
rm -rf !(zkLLVM) .[!.]* ..?*
108+
cd ${{github.workspace}}
109+
tar --exclude='zkLLVM/build/Android/Release/zkLLVM/src' \
110+
--exclude='zkLLVM/build/Android/Release/zkLLVM/tmp' \
111+
-czvf zkLLVM.tar.gz zkLLVM/
112+
113+
- name: Set Release Variables
114+
id: vars
115+
if: ${{ github.event_name == 'workflow_dispatch' }}
116+
run: |
117+
OS_NAME=Android-arm64-v8a
118+
BRANCH_NAME=${GITHUB_REF#refs/heads/}
119+
BUILD_TYPE=Release
120+
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz"
121+
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV
122+
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV
123+
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV
124+
125+
- name: Rename Artifact
126+
if: ${{ github.event_name == 'workflow_dispatch' }}
127+
run: mv zkLLVM.tar.gz ${{ env.FILE_NAME }}
128+
129+
- name: Create GitHub Release
130+
if: ${{ github.event_name == 'workflow_dispatch' }}
131+
id: create_release
132+
uses: actions/create-release@v1
133+
env:
134+
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }}
135+
with:
136+
tag_name: ${{ env.RELEASE_TAG }}
137+
release_name: ${{ env.RELEASE_NAME }}
138+
draft: false
139+
prerelease: false
140+
141+
- name: Upload Release Asset
142+
if: ${{ github.event_name == 'workflow_dispatch' }}
143+
uses: actions/upload-release-asset@v1
144+
env:
145+
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }}
146+
with:
147+
upload_url: ${{ steps.create_release.outputs.upload_url }}
148+
asset_path: ${{ env.FILE_NAME }}
149+
asset_name: ${{ env.FILE_NAME }}
150+
asset_content_type: application/gzip

0 commit comments

Comments
 (0)