name: Build Pre-Release on: workflow_dispatch: push: branches: - main jobs: BuildPreRelease: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v6 - name: Checkout submodules run: git submodule update --init --recursive --force - name: Setup Java uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 - name: Setup Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-download-base-url: 'https://github.com/MetaCubeX/go/releases/download/build' go-version: '1.26' - name: Apply Patches run: | cd $(go env GOROOT) for p in $GITHUB_WORKSPACE/.github/patch/*.patch; do patch --verbose -p 1 < "$p"; done - uses: actions/cache@v5 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Update CA run: | sudo apt-get update && sudo apt-get install ca-certificates sudo update-ca-certificates cp -f /etc/ssl/certs/ca-certificates.crt core/src/foss/golang/clash/component/ca/ca-certificates.crt - name: Signing properties env: SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} run: | touch signing.properties echo keystore.password="$SIGNING_STORE_PASSWORD" > signing.properties echo key.alias="$SIGNING_KEY_ALIAS" >> signing.properties echo key.password="$SIGNING_KEY_PASSWORD" >> signing.properties echo "cat signing.properties" cat signing.properties - name: Pre-release Build if: success() run: ./gradlew --no-daemon app:assembleAlphaRelease # Delete old Prerelease-alpha - uses: dev-drprasad/delete-tag-and-release@v1.1 with: tag_name: Prerelease-alpha github_token: ${{ secrets.GITHUB_TOKEN }} delete_release: true - name: Tag Repo uses: richardsimko/update-tag@v1 with: tag_name: Prerelease-alpha env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload Alpha uses: softprops/action-gh-release@v2 if: ${{ success() }} with: tag_name: Prerelease-alpha files: app/build/outputs/apk/alpha/release/* prerelease: true generate_release_notes: true - name: Release Changelog Builder uses: mikepenz/release-changelog-builder-action@v4