Update Luri Bakhtiari translation (#4610) #754
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: Build APK | |
on: | |
workflow_dispatch: | |
inputs: | |
release_tag: | |
required: false | |
type: string | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
with: | |
submodules: 'recursive' | |
fetch-depth: '0' | |
- name: Setup Android SDK | |
uses: android-actions/[email protected] | |
with: | |
log-accepted-android-sdk-licenses: false | |
cmdline-tools-version: '12266719' | |
packages: 'platforms;android-35 build-tools;35.0.0 platform-tools' | |
- name: Install NDK | |
run: | | |
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \ | |
--channel=3 \ | |
--install "ndk;29.0.13113456" | |
echo "NDK_HOME=$ANDROID_HOME/ndk/29.0.13113456" >> $GITHUB_ENV | |
sed -i '10i\ | |
\ | |
ndkVersion = "29.0.13113456"' ${{ github.workspace }}/V2rayNG/app/build.gradle.kts | |
- name: Restore cached libtun2socks | |
id: cache-libtun2socks-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: ${{ github.workspace }}/libs | |
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }} | |
- name: Build libtun2socks | |
if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true' | |
run: | | |
bash compile-tun2socks.sh | |
- name: Save libtun2socks | |
if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{ github.workspace }}/libs | |
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }} | |
- name: Copy libtun2socks | |
run: | | |
cp -r ${{ github.workspace }}/libs ${{ github.workspace }}/V2rayNG/app | |
- name: Fetch AndroidLibXrayLite tag | |
run: | | |
pushd AndroidLibXrayLite | |
CURRENT_TAG=$(git describe --tags --abbrev=0) | |
echo "Current tag in this repo: $CURRENT_TAG" | |
echo "CURRENT_TAG=$CURRENT_TAG" >> $GITHUB_ENV | |
popd | |
- name: Download libv2ray | |
uses: robinraju/[email protected] | |
with: | |
repository: '2dust/AndroidLibXrayLite' | |
tag: ${{ env.CURRENT_TAG }} | |
fileName: 'libv2ray.aar' | |
out-file-path: V2rayNG/app/libs/ | |
- name: Restore cached libhysteria2 | |
id: cache-libhysteria2-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: ${{ github.workspace }}/hysteria/libs | |
key: libhysteria2-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hysteria/HEAD') }}-${{ hashFiles('libhysteria2.sh') }} | |
- name: Setup Golang | |
if: steps.cache-libhysteria2-restore.outputs.cache-hit != 'true' | |
uses: actions/[email protected] | |
with: | |
go-version-file: 'AndroidLibXrayLite/go.mod' | |
cache: false | |
- name: Build libhysteria2 | |
if: steps.cache-libhysteria2-restore.outputs.cache-hit != 'true' | |
run: | | |
bash libhysteria2.sh | |
- name: Save libhysteria2 | |
if: steps.cache-libhysteria2-restore.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{ github.workspace }}/hysteria/libs | |
key: libhysteria2-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hysteria/HEAD') }}-${{ hashFiles('libhysteria2.sh') }} | |
- name: Copy libhysteria2 | |
run: | | |
cp -r ${{ github.workspace }}/hysteria/libs ${{ github.workspace }}/V2rayNG/app | |
- name: Setup Java | |
uses: actions/[email protected] | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Decode Keystore | |
uses: timheuer/[email protected] | |
id: android_keystore | |
with: | |
fileName: "android_keystore.jks" | |
encodedString: ${{ secrets.APP_KEYSTORE_BASE64 }} | |
- name: Build APK | |
run: | | |
cd ${{ github.workspace }}/V2rayNG | |
echo "sdk.dir=${ANDROID_HOME}" > local.properties | |
chmod 755 gradlew | |
./gradlew licenseFdroidReleaseReport | |
./gradlew assembleRelease -Pandroid.injected.signing.store.file=${{ steps.android_keystore.outputs.filePath }} -Pandroid.injected.signing.store.password=${{ secrets.APP_KEYSTORE_PASSWORD }} -Pandroid.injected.signing.key.alias=${{ secrets.APP_KEYSTORE_ALIAS }} -Pandroid.injected.signing.key.password=${{ secrets.APP_KEY_PASSWORD }} | |
- name: Upload arm64-v8a APK | |
uses: actions/[email protected] | |
if: ${{ success() }} | |
with: | |
name: arm64-v8a | |
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/*/release/*arm64-v8a*.apk | |
- name: Upload armeabi-v7a APK | |
uses: actions/[email protected] | |
if: ${{ success() }} | |
with: | |
name: armeabi-v7a | |
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/*/release/*armeabi-v7a*.apk | |
- name: Upload x86 APK | |
uses: actions/[email protected] | |
if: ${{ success() }} | |
with: | |
name: x86-apk | |
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/*/release/*x86*.apk | |
- name: Upload to release | |
uses: svenstaro/upload-release-action@v2 | |
if: github.event.inputs.release_tag != '' | |
with: | |
file: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/*playstore*/release/*.apk | |
tag: ${{ github.event.inputs.release_tag }} | |
file_glob: true | |
prerelease: true |