Skip to content

feat: Implement WireGuard endpoint migration and validation #117

feat: Implement WireGuard endpoint migration and validation

feat: Implement WireGuard endpoint migration and validation #117

Workflow file for this run

name: CI
on:
push:
tags-ignore:
- 'v*'
branches:
- '*'
pull_request:
jobs:
libcore:
name: Native Build (LibCore)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Install Golang
uses: actions/setup-go@v6
with:
go-version: ^1.24
- name: Verify official sing-box source
run: bash buildScript/lib/core/get_source.sh
- name: Golang Status
run: find buildScript libcore/*.sh nb4a.properties | xargs cat | sha1sum > golang_status
- name: Libcore Status
run: git ls-files libcore | xargs cat | sha1sum > libcore_status
- name: LibCore Cache
id: cache
uses: actions/cache@v5
with:
path: |
app/libs/libcore.aar
key: ${{ hashFiles('.github/workflows/*', 'golang_status', 'libcore_status') }}-ci
- name: Native Build
if: steps.cache.outputs.cache-hit != 'true'
run: ./run lib core
- name: WireGuard endpoint schema and box tests
working-directory: libcore
run: go test -v -run 'Test(WireGuardEndpointConfigsCreateAndClose|MissingWireGuardRouteTagDoesNotFallbackToDirect|LegacyWireGuardOutboundIsRejected)$' .
- name: Verify LibCore AAR
run: |
test -s app/libs/libcore.aar
unzip -p app/libs/libcore.aar classes.jar > /tmp/libcore-classes.jar
unzip -l /tmp/libcore-classes.jar | grep -q 'libcore/Libcore.class'
unzip -l /tmp/libcore-classes.jar | grep -q 'go/Seq.class'
- name: Upload LibCore AAR
uses: actions/upload-artifact@v5
with:
name: libcore-aar
path: app/libs/libcore.aar
if-no-files-found: error
retention-days: 1
build:
name: Build OSS APK
runs-on: ubuntu-latest
needs:
- libcore
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Download LibCore AAR
uses: actions/download-artifact@v5
with:
name: libcore-aar
path: app/libs
- name: Verify LibCore AAR
run: |
test -s app/libs/libcore.aar
unzip -p app/libs/libcore.aar classes.jar > /tmp/libcore-classes.jar
unzip -l /tmp/libcore-classes.jar | grep -q 'libcore/Libcore.class'
unzip -l /tmp/libcore-classes.jar | grep -q 'go/Seq.class'
- name: Gradle cache
uses: actions/cache@v5
with:
path: ~/.gradle
key: gradle-oss-${{ hashFiles('**/*.gradle.kts') }}-ci
- name: Setup uv
uses: astral-sh/setup-uv@v7
- name: Static WireGuard and repository governance checks
run: |
uv run tools/diagnostics/roo_check_wireguard_endpoint.py
uv run tools/diagnostics/roo_check_repo_governance.py
- name: Gradle Build
env:
BUILD_PLUGIN: none
run: |
echo "sdk.dir=${ANDROID_HOME}" > local.properties
echo "ndk.dir=${ANDROID_HOME}/ndk/25.0.8775105" >> local.properties
export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}"
./run init action gradle
./gradlew app:testOssDebugUnitTest
./gradlew app:assembleOssDebug
APK=$(find app/build/outputs/apk -name '*arm64-v8a*.apk')
APK=$(dirname $APK)
echo "APK=$APK" >> $GITHUB_ENV
# - name: Upload Artifacts
# uses: actions/upload-artifact@v5
# with:
# name: APKs
# path: ${{ env.APK }}