-
Notifications
You must be signed in to change notification settings - Fork 84
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Next Alone <[email protected]>
- Loading branch information
Showing
1 changed file
with
331 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,331 @@ | ||
name: Pull request | ||
|
||
on: | ||
pull_request: | ||
types: [opened, reopened] | ||
|
||
jobs: | ||
check: | ||
name: Check Access | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: "Check access" | ||
uses: "lannonbr/[email protected]" | ||
with: | ||
permission: "write" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
ffmpeg: | ||
name: Native Build (FFmpeg) | ||
runs-on: ubuntu-latest | ||
needs: check | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | ||
git submodule status TMessagesProj/jni/libvpx > libvpx_status | ||
- name: FFmpeg Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/jni/ffmpeg/build | ||
TMessagesProj/jni/libvpx/build | ||
key: ${{ hashFiles('ffmpeg_status', 'libvpx_status', 'TMessagesProj/jni/*ffmpeg*.sh', 'TMessagesProj/jni/*libvpx*.sh', 'TMessagesProj/jni/patches/ffmpeg/*') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
sudo apt-get install yasm -y | ||
./run init libs libvpx | ||
./run init libs ffmpeg | ||
boringssl: | ||
name: Native Build (BoringSSL) | ||
runs-on: ubuntu-latest | ||
needs: check | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status TMessagesProj/jni/boringssl > boringssl_status | ||
- name: BoringSSL Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/jni/boringssl/build | ||
key: ${{ hashFiles('boringssl_status') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
./run init action boringssl | ||
./run init libs boringssl | ||
native: | ||
name: Native Build (Telegram) | ||
runs-on: ubuntu-latest | ||
needs: | ||
- ffmpeg | ||
- boringssl | ||
strategy: | ||
matrix: | ||
flavor: | ||
- armeabi-v7a | ||
- arm64-v8a | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | ||
git submodule status TMessagesProj/jni/libvpx > libvpx_status | ||
git submodule status TMessagesProj/jni/boringssl > boringssl_status | ||
- name: Native Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/src/main/libs | ||
key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-${{ matrix.flavor }} | ||
- name: Checkout Library | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
git submodule update --init 'TMessagesProj/jni/*' | ||
- name: FFmpeg Cache | ||
uses: actions/cache@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
with: | ||
path: | | ||
TMessagesProj/jni/ffmpeg/build | ||
TMessagesProj/jni/libvpx/build | ||
key: ${{ hashFiles('ffmpeg_status', 'libvpx_status', 'TMessagesProj/jni/*ffmpeg*.sh', 'TMessagesProj/jni/*libvpx*.sh', 'TMessagesProj/jni/patches/ffmpeg/*') }} | ||
- name: BoringSSL Cache | ||
uses: actions/cache@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
with: | ||
path: | | ||
TMessagesProj/jni/boringssl/build | ||
key: ${{ hashFiles('boringssl_status') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Fix BoringSSL | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
cd TMessagesProj/jni | ||
./patch_boringssl.sh | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
export NATIVE_TARGET="${{ matrix.flavor }}" | ||
./run libs native | ||
v2ray: | ||
name: Native Build (V2ray) | ||
runs-on: ubuntu-latest | ||
needs: check | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status v2ray > v2ray_status | ||
- name: V2ray Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/libv2ray.aar | ||
key: ${{ hashFiles('bin/libs/v2ray/*', 'v2ray_status') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Install Golang | ||
uses: actions/setup-go@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
with: | ||
go-version: 1.16 | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: ./run libs v2ray | ||
shadowsocks: | ||
name: Native Build (Shadowsocks) | ||
runs-on: ubuntu-latest | ||
needs: check | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status ss-rust/src/main/rust/shadowsocks-rust > shadowsocks_status | ||
- name: Shadowsocks Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/ss-rust-release.aar | ||
key: ${{ hashFiles('shadowsocks_status') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Install Rust | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: ./run init action shadowsocks | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: ./run libs shadowsocks | ||
shadowsocksr: | ||
name: Native Build (ShadowsocksR) | ||
runs-on: ubuntu-latest | ||
needs: check | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status 'ssr-libev/*' > shadowsocksr_status | ||
- name: ShadowsocksR Cache | ||
id: cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/ssr-libev-release.aar | ||
key: ${{ hashFiles('shadowsocksr_status') }} | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
- name: Install NDK | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Native Build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: ./run libs ssr | ||
build: | ||
name: Gradle Build | ||
runs-on: ubuntu-latest | ||
needs: | ||
- native | ||
- v2ray | ||
# - shadowsocks | ||
# - shadowsocksr | ||
strategy: | ||
matrix: | ||
flavor: | ||
# - FullRelease | ||
- MiniRelease | ||
- MiniReleaseNoGcm | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Setup Android SDK Tools | ||
uses: android-actions/setup-android@v2 | ||
- name: Install NDK | ||
run: | | ||
echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | ||
echo "sdk.dir=${ANDROID_HOME}" > local.properties | ||
echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | ||
- name: Fetch Status | ||
run: | | ||
sed -i 's/\/\///g' settings.gradle | ||
git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | ||
git submodule status TMessagesProj/jni/boringssl > boringssl_status | ||
git submodule status ss-rust/src/main/rust/shadowsocks-rust > shadowsocks_status | ||
git submodule status 'ssr-libev/*' > shadowsocksr_status | ||
git submodule status v2ray > v2ray_status | ||
- name: Native Cache (armeabi-v7a) | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/src/main/libs | ||
key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-armeabi-v7a | ||
- name: Native Cache (arm64-v8a) | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/src/main/libs | ||
key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-arm64-v8a | ||
- name: V2ray Cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/libv2ray.aar | ||
key: ${{ hashFiles('bin/libs/v2ray/*', 'v2ray_status') }} | ||
- name: Shadowsocks Cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/ss-rust-release.aar | ||
key: ${{ hashFiles('shadowsocks_status') }} | ||
- name: ShadowsocksR Cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
TMessagesProj/libs/ssr-libev-release.aar | ||
key: ${{ hashFiles('shadowsocksr_status') }} | ||
- name: Configure Gradle | ||
run: | | ||
sed -i -e "s/16384/6144/g" gradle.properties | ||
echo "sdk.dir=${ANDROID_HOME}" >> local.properties | ||
- name: Gradle cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.gradle | ||
key: gradle-${{ hashFiles('**/*.gradle') }} | ||
- name: Debug Build | ||
run: | | ||
export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}" | ||
export DEBUG_BUILD=true | ||
./gradlew TMessagesProj:assemble${{ matrix.flavor }} | ||
APK=$(find TMessagesProj/build/outputs/apk -name '*arm64-v8a*.apk') | ||
APK=$(dirname $APK) | ||
echo "APK=$APK" >> $GITHUB_ENV | ||
- uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ matrix.flavor }} | ||
path: ${{ env.APK }} |