Skip to content

fix(ping): allow mixed H3/H2 alpn profiles in TCPing check #474

fix(ping): allow mixed H3/H2 alpn profiles in TCPing check

fix(ping): allow mixed H3/H2 alpn profiles in TCPing check #474

Workflow file for this run

name: Build APK
on:
workflow_dispatch:
inputs:
release_tag:
description: 'Release Tag (Optional)'
required: false
type: string
build_type:
description: 'Build Type'
required: true
default: 'debug'
type: choice
options:
- debug
- release
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
env:
BUILD_TYPE: ${{ github.event.inputs.build_type == 'release' && 'release' || 'debug' }}
steps:
- name: Checkout code
uses: actions/checkout@v7
with:
submodules: 'recursive'
fetch-depth: '0'
- name: Setup Android SDK
uses: android-actions/setup-android@v4
with:
log-accepted-android-sdk-licenses: false
cmdline-tools-version: '14742923'
packages: 'platforms;android-37.0 build-tools;37.0.0 platform-tools'
- name: Install NDK
run: |
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
--channel=0 \
--install "ndk;29.0.14206865"
echo "NDK_HOME=$ANDROID_HOME/ndk/29.0.14206865" >> $GITHUB_ENV
- name: Restore cached libhevtun
id: cache-libhevtun-restore
uses: actions/cache/restore@v6
with:
path: ${{ github.workspace }}/libs
key: libhevtun-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('compile-hevtun.sh') }}
- name: Build libhevtun
if: steps.cache-libhevtun-restore.outputs.cache-hit != 'true'
run: |
bash compile-hevtun.sh
- name: Save libhevtun
if: steps.cache-libhevtun-restore.outputs.cache-hit != 'true'
uses: actions/cache/save@v6
with:
path: ${{ github.workspace }}/libs
key: libhevtun-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('compile-hevtun.sh') }}
- name: Copy libhevtun
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/release-downloader@v1.13
with:
repository: '2dust/AndroidLibXrayLite'
tag: ${{ env.CURRENT_TAG }}
fileName: 'libv2ray.aar'
out-file-path: V2rayNG/app/libs/
- name: Setup Java
uses: actions/setup-java@v5.7.0
with:
distribution: 'temurin'
java-version: '21'
- name: Decode Keystore
uses: timheuer/base64-to-file@v2.0.0
id: android_keystore
with:
fileName: "android_keystore.jks"
encodedString: ${{ secrets.APP_KEYSTORE_BASE64 }}
- name: Build APK (${{ env.BUILD_TYPE }})
run: |
cd ${{ github.workspace }}/V2rayNG
echo "sdk.dir=${ANDROID_HOME}" > local.properties
chmod 755 gradlew
if [ "${{ env.BUILD_TYPE }}" == "debug" ]; then
echo "Starting DEBUG build process..."
./gradlew assembleDebug --console=plain \
-PKS_PATH="${{ steps.android_keystore.outputs.filePath }}" \
-PKS_PASS="${{ secrets.APP_KEYSTORE_PASSWORD }}" \
-PKS_ALIAS="${{ secrets.APP_KEYSTORE_ALIAS }}" \
-PKEY_PASS="${{ secrets.APP_KEY_PASSWORD }}"
else
echo "Starting RELEASE build process..."
./gradlew assembleRelease --console=plain \
-PKS_PATH="${{ steps.android_keystore.outputs.filePath }}" \
-PKS_PASS="${{ secrets.APP_KEYSTORE_PASSWORD }}" \
-PKS_ALIAS="${{ secrets.APP_KEYSTORE_ALIAS }}" \
-PKEY_PASS="${{ secrets.APP_KEY_PASSWORD }}"
fi
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v7
if: ${{ success() }}
with:
name: arm64-v8a-${{ env.BUILD_TYPE }}
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/${{ env.BUILD_TYPE }}/*arm64-v8a*.apk
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v7
if: ${{ success() }}
with:
name: armeabi-v7a-${{ env.BUILD_TYPE }}
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/${{ env.BUILD_TYPE }}/*armeabi-v7a*.apk
- name: Upload x86 APK
uses: actions/upload-artifact@v7
if: ${{ success() }}
with:
name: x86-apk-${{ env.BUILD_TYPE }}
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/${{ env.BUILD_TYPE }}/*x86*.apk
- name: Upload to release
uses: svenstaro/upload-release-action@v2
if: github.event.inputs.release_tag != ''
with:
repo_token: ${{ secrets.MY_PERSONAL_TOKEN }}
file: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/${{ env.BUILD_TYPE }}/*.apk
tag: ${{ github.event.inputs.release_tag }}
file_glob: true
prerelease: true