diff --git a/.github/workflows/merge_master.yml b/.github/workflows/merge_master.yml index 1cd2776..17dfdd6 100644 --- a/.github/workflows/merge_master.yml +++ b/.github/workflows/merge_master.yml @@ -11,7 +11,6 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 env: - BUNDLE_GEMFILE: ${{ github.workspace }}/.github/Gemfile FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true steps: - uses: actions/checkout@v4 @@ -35,17 +34,27 @@ jobs: key: ${{ runner.os }}-gradle-wrapper-dists-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle-wrapper-dists- + - name: Configure Android SDK path + run: | + echo "ANDROID_SDK_ROOT=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" + echo "ANDROID_HOME=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" - name: Cache Android SDK packages + id: android-sdk-cache uses: actions/cache@v4 with: - path: | - /usr/local/lib/android/sdk/build-tools/36.0.0 - /usr/local/lib/android/sdk/platforms/android-36 - /usr/local/lib/android/sdk/platform-tools - /usr/local/lib/android/sdk/licenses - key: ${{ runner.os }}-android-sdk-36-36.0.0-v1 + path: ${{ runner.temp }}/android-sdk + key: ${{ runner.os }}-android-sdk-36-36.0.0-v2 restore-keys: | ${{ runner.os }}-android-sdk- + - name: Install Android SDK packages + if: steps.android-sdk-cache.outputs.cache-hit != 'true' + run: | + mkdir -p "${ANDROID_SDK_ROOT}" + yes | /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses >/dev/null + /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" \ + "platform-tools" \ + "platforms;android-36" \ + "build-tools;36.0.0" - uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 18a0401..d405e4e 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -34,17 +34,27 @@ jobs: key: ${{ runner.os }}-gradle-wrapper-dists-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle-wrapper-dists- + - name: Configure Android SDK path + run: | + echo "ANDROID_SDK_ROOT=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" + echo "ANDROID_HOME=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" - name: Cache Android SDK packages + id: android-sdk-cache uses: actions/cache@v4 with: - path: | - /usr/local/lib/android/sdk/build-tools/36.0.0 - /usr/local/lib/android/sdk/platforms/android-36 - /usr/local/lib/android/sdk/platform-tools - /usr/local/lib/android/sdk/licenses - key: ${{ runner.os }}-android-sdk-36-36.0.0-v1 + path: ${{ runner.temp }}/android-sdk + key: ${{ runner.os }}-android-sdk-36-36.0.0-v2 restore-keys: | ${{ runner.os }}-android-sdk- + - name: Install Android SDK packages + if: steps.android-sdk-cache.outputs.cache-hit != 'true' + run: | + mkdir -p "${ANDROID_SDK_ROOT}" + yes | /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses >/dev/null + /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" \ + "platform-tools" \ + "platforms;android-36" \ + "build-tools;36.0.0" - uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 28345db..bc9cb5e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -34,17 +34,27 @@ jobs: key: ${{ runner.os }}-gradle-wrapper-dists-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle-wrapper-dists- + - name: Configure Android SDK path + run: | + echo "ANDROID_SDK_ROOT=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" + echo "ANDROID_HOME=${RUNNER_TEMP}/android-sdk" >> "${GITHUB_ENV}" - name: Cache Android SDK packages + id: android-sdk-cache uses: actions/cache@v4 with: - path: | - /usr/local/lib/android/sdk/build-tools/36.0.0 - /usr/local/lib/android/sdk/platforms/android-36 - /usr/local/lib/android/sdk/platform-tools - /usr/local/lib/android/sdk/licenses - key: ${{ runner.os }}-android-sdk-36-36.0.0-v1 + path: ${{ runner.temp }}/android-sdk + key: ${{ runner.os }}-android-sdk-36-36.0.0-v2 restore-keys: | ${{ runner.os }}-android-sdk- + - name: Install Android SDK packages + if: steps.android-sdk-cache.outputs.cache-hit != 'true' + run: | + mkdir -p "${ANDROID_SDK_ROOT}" + yes | /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses >/dev/null + /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" \ + "platform-tools" \ + "platforms;android-36" \ + "build-tools;36.0.0" - name: Gradle - build, test, coverage run: | echo "::add-matcher::.github/gradle-java-matcher.json" diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index f5fd192..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,19 +0,0 @@ -# RxReactor — Claude Notes - -## Working style - -Always confirm with the user before making any changes. - -## Danger / danger-kotlin notes - -The project uses `danger/kotlin@1.3.4` (Docker-based) via `.github/Dangerfile.df.kts`. - -Plugins in use: -- `io.github.ackeecz:danger-kotlin-lint` — detekt inline comments (requires `basePath` set in root `build.gradle` detekt block) -- `com.gianluz:danger-kotlin-android-lint-plugin` — Android lint inline comments -- `io.github.ackeecz:danger-kotlin-testing` — JUnit test result reporting - -Kotlin compiler warnings are parsed from `build.log` (captured via `tee` in CI) using the -K2 compiler format: `w: :: `. - -The `danger/kotlin` action uses the built-in `GITHUB_TOKEN`; no separate PAT is required. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/README.md b/README.md index fba50ec..2f28ae2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,15 @@ # RxReactor -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.gyurigrell.rxreactor/rxreactor1/badge.svg)](https://search.maven.org/search?q=g:%22com.gyurigrell.rxreactor%22) [![Master Build](https://github.com/ggrell/RxReactor/actions/workflows/merge_master.yml/badge.svg)](https://github.com/ggrell/RxReactor/actions/workflows/merge_master.yml) +[![Maven Central](https://maven-badges.sml.io/maven-central/com.gyurigrell.rxreactor/rxreactor1/badge.svg)](https://central.sonatype.com/search?q=com.gyurigrell.rxreactor) + +[![Master Build](https://github.com/ggrell/RxReactor/actions/workflows/merge_master.yml/badge.svg)](https://github.com/ggrell/RxReactor/actions/workflows/merge_master.yml) + [![Coverage](https://codecov.io/gh/ggrell/RxReactor/branch/main/graph/badge.svg?token=8JHGJPU2M8)](https://codecov.io/gh/ggrell/RxReactor) - [![RxJava 1 javadocs](https://img.shields.io/badge/Javadocs-RxJava%201-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor1/main-SNAPSHOT/javadoc/) [![RxJava 2 javadocs](https://img.shields.io/badge/Javadocs-RxJava%202-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor2/main-SNAPSHOT/javadoc/) [![RxJava 3 javadocs](https://img.shields.io/badge/Javadocs-RxJava%203-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor3/main-SNAPSHOT/javadoc/) + +[![RxJava 1 javadocs](https://img.shields.io/badge/Javadocs-RxJava%201-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor1/main-SNAPSHOT/javadoc/) + +[![RxJava 2 javadocs](https://img.shields.io/badge/Javadocs-RxJava%202-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor2/main-SNAPSHOT/javadoc/) + +[![RxJava 3 javadocs](https://img.shields.io/badge/Javadocs-RxJava%203-green)](https://jitpack.io/com/github/ggrell/RxReactor/rxreactor3/main-SNAPSHOT/javadoc/) RxReactor is a Kotlin framework for a reactive and unidirectional RxJava-based application architecture. This repository introduces the basic concept of RxReactor and describes how to build an application