diff --git a/.github/workflows/weekly-deploy-customversion.yml b/.github/workflows/weekly-deploy-customversion.yml new file mode 100644 index 000000000..e4bcf9631 --- /dev/null +++ b/.github/workflows/weekly-deploy-customversion.yml @@ -0,0 +1,92 @@ +name: Weekly Android app deploy + +on: + schedule: + # Gotta wait until contributors.json is updated + - cron: '0 0 * * 2' # Every Tuesday at 0AM + + # Allow manual trigger + workflow_dispatch: + +concurrency: + group: 'Weekly-deploy' + cancel-in-progress: false # Don't cancel any in-progress runs in this group + +jobs: + setup: + runs-on: ubuntu-latest + # Set date as a variable + outputs: + BUILD_DATE: ${{ steps.date.outputs.date }} + APK_FILENAME: app-foss-release-${{ steps.date.outputs.date }}.apk + + steps: + - name: Get date + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d')" + + build-apk: + needs: setup + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4.2.1 + + - name: Setup Java 21 + uses: actions/setup-java@v4.4.0 + with: + java-version: "21" + distribution: "corretto" + cache: gradle + + - name: Build with Gradle + run: ./gradlew assembleDebug + + - name: Rename to match build number + run: | + mkdir -p app + + cp composeApp/build/outputs/apk/foss/debug/app-foss-debug.apk app/${{ needs.setup.outputs.APK_FILENAME }} + + - name: Upload built artifact for next job + uses: actions/upload-artifact@v4.4.1 + with: + name: ${{ needs.setup.outputs.APK_FILENAME }} + path: app/${{ needs.setup.outputs.APK_FILENAME }} + + + upload-to-release: + needs: [setup, build-apk] + runs-on: ubuntu-latest + + steps: + - name: Retrieve APK + uses: actions/download-artifact@v4.1.8 + with: + name: ${{ needs.setup.outputs.APK_FILENAME }} + + - name: Upload built APK to release + uses: softprops/action-gh-release@v2 + with: + files: ${{ needs.setup.outputs.APK_FILENAME }} + prerelease: true + name: RiMusic Weekly Build | Custom Version | ${{ needs.setup.outputs.BUILD_DATE }} + tag_name: "custom-version" + body: | +
RiMusic Custom Version
+Remember, the custom version is not an official release.
+