name: "[main] Release" on: push: branches: - main paths-ignore: - "**/*.md" jobs: Version: runs-on: ubuntu-latest outputs: version: ${{ steps.set.outputs.version }} steps: - uses: actions/checkout@v4 - id: set run: | BASE=$(cat .version | tr -d '[:space:]') echo "version=$BASE.${{ github.run_number }}" >> $GITHUB_OUTPUT Build: needs: Version uses: ./.github/workflows/build.yml with: version: ${{ needs.Version.outputs.version }} secrets: inherit Release: name: Publish Release needs: [Version, Build] runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout uses: actions/checkout@v4 with: lfs: true - name: Download artifacts uses: actions/download-artifact@v4 with: name: rl-mobile-artifacts path: ./dist/ - name: Prepare release assets run: | mv ./dist/app-release.apk ./dist/rl-manager.apk cp patches/data.json ./dist/data.json # Point each release's data.json at its own assets so historical releases stay self-contained. sed -i "s|releases/download/latest/|releases/download/v${{ needs.Version.outputs.version }}/|g" ./dist/data.json cd patches && zip -r ../dist/patches.zip . -x "data.json" && cd .. tidal_src=$(find tidal-apk -maxdepth 1 \( -name "*.apk" -o -name "*.apkm" \) | head -1) if [ -z "$tidal_src" ]; then echo "::error::No TIDAL .apk or .apkm found in tidal-apk/" exit 1 fi if [[ "$tidal_src" == *.apkm ]]; then echo "Merging splits from $tidal_src via APKEditor" curl --fail --location --retry 3 --retry-delay 2 -sSo /tmp/APKEditor.jar \ https://github.com/REAndroid/APKEditor/releases/download/V1.4.9/APKEditor-1.4.9.jar java -jar /tmp/APKEditor.jar m -i "$tidal_src" -o ./dist/tidal-stock.apk echo "Merged tidal-stock.apk:" ls -la ./dist/tidal-stock.apk else cp "$tidal_src" ./dist/tidal-stock.apk fi - name: Publish release uses: softprops/action-gh-release@v2 with: tag_name: v${{ needs.Version.outputs.version }} name: v${{ needs.Version.outputs.version }} prerelease: false make_latest: "true" files: ./dist/**