owenclave / .github/workflows/release_naive.yml

github - dev - back to tree - upstream
name: NaïveProxy Plugin Release Build on: workflow_dispatch: inputs: release: description: 'Release (y/n)' required: false tag: description: 'Release Tag' required: false jobs: native: runs-on: ubuntu-latest name: Native Build strategy: fail-fast: false matrix: arch: [ armeabi-v7a, arm64-v8a, x86, x86_64 ] steps: - name: Checkout uses: actions/checkout@v7 - name: Checkout Submodule run: | git submodule update --init plugin/naive/src/main/jni/naiveproxy - name: Fetch Status run: git submodule status 'plugin/naive/*' > naive_status - name: Native Cache id: cache uses: actions/cache@v6 with: path: | plugin/naive/src/main/jniLibs/${{ matrix.arch }} key: naive-${{ matrix.arch }}-${{ hashFiles('bin/plugin/naive/*', 'naive_status') }} - name: Native Build if: steps.cache.outputs.cache-hit != 'true' run: | ./run init action naive ./run plugin naive init ./run plugin naive ${{ matrix.arch }} build: name: Gradle Build runs-on: ubuntu-latest needs: - native steps: - name: Checkout uses: actions/checkout@v7 - name: Checkout Submodule run: | git submodule update --init plugin/naive/src/main/jni/naiveproxy - name: Fetch Status run: git submodule status 'plugin/naive/*' > naive_status - name: Native Cache (armeabi-v7a) uses: actions/cache@v6 with: path: | plugin/naive/src/main/jniLibs/armeabi-v7a key: naive-armeabi-v7a-${{ hashFiles('bin/plugin/naive/*', 'naive_status') }} - name: Native Cache (arm64-v8a) uses: actions/cache@v6 with: path: | plugin/naive/src/main/jniLibs/arm64-v8a key: naive-arm64-v8a-${{ hashFiles('bin/plugin/naive/*', 'naive_status') }} - name: Native Cache (x86) uses: actions/cache@v6 with: path: | plugin/naive/src/main/jniLibs/x86 key: naive-x86-${{ hashFiles('bin/plugin/naive/*', 'naive_status') }} - name: Native Cache (x86_64) uses: actions/cache@v6 with: path: | plugin/naive/src/main/jniLibs/x86_64 key: naive-x86_64-${{ hashFiles('bin/plugin/naive/*', 'naive_status') }} - name: Gradle cache uses: actions/cache@v6 with: path: ~/.gradle key: native-${{ hashFiles('**/*.gradle.kts') }} - name: Setup Java uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 21 cache: 'gradle' - name: Gradle Build run: | echo "sdk.dir=${ANDROID_HOME}" > local.properties export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}" ./gradlew :plugin:naive:assembleOssRelease APK="plugin/naive/build/outputs/apk/oss/release" echo "APK=$APK" >> $GITHUB_ENV - name: Upload Artifacts uses: actions/upload-artifact@v7 with: name: APKs path: ${{ env.APK }} publish: name: Publish Release if: github.event.inputs.release == 'y' && github.event.inputs.tag != '' runs-on: ubuntu-latest needs: build env: GH_TOKEN: ${{ github.token }} permissions: contents: write steps: - name: Checkout uses: actions/checkout@v7 - name: Download Artifacts uses: actions/download-artifact@v8 with: name: APKs path: artifacts - name: Publish Release run: | mkdir apks find artifacts -name "*.apk" -exec cp {} apks \; gh release create --latest=false ${{ github.event.inputs.tag }} --notes="" --title=${{ github.event.inputs.tag }} ./apks/*