Skip to content

Conversation

@tareknaser
Copy link
Collaborator

This PR refactors the CI workflows. The biggest change is moving Java bindings to a separate job that only runs if the "Build and Test" jobs pass.
Related discussion: #94 (comment)

What’s New:

  • Java bindings now run as a separate job after all the build and test jobs are done.
  • Weekly Testing workflow is simplified with a matrix so we don’t repeat the same steps for each platform.
  • Benchmarks now run only if Java bindings pass and it’s a pull request.

Why This Approach?

  • Benchmarks
    • Tried keeping benchmarks in a separate workflow using workflow_run, but ran into issues with getting the branchName and commenting on PRs.
  • Java Bindings

Current CI Setup:

Screenshot 2024-12-20 at 1 39 27 AM

Examples from my fork:

  • Push to Main: Benchmarks are skipped
    Run Example
  • Pull Request: Everything runs as expected, including benchmarks
    Run Example

Copy link
Collaborator

@pushkarm029 pushkarm029 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean✨

@kirillt kirillt merged commit 14b2fff into patch-1 Jan 4, 2025
oluiscabral added a commit that referenced this pull request Jun 10, 2025
* Build and release `fs-storage` JNI libraries and publish Java library

* Create `cache.yml` workflow

* WIP - start transforming it into AAR

* WIP - set up library as AAR

* Finish AAR setup

* Set up NDK to GitHub Actions

* Fix `Set up NDK` step

* Set up Android SDK

* Set `ANDROID_NDK_HOME` env var

* Set specific ndk version

* Fix NDK version

* Bring back Android SDK setup

* Final touches on AAR build and release workflow

* Fix: speedup `build.yml` and add targets to `release.yml`

* Define `GITHUB_ACTOR` as well

* Wrap GitHubPackages URI in `uri(string)`

* Copy old `publications`

From: https://github.com/ARK-Builders/ark-core/blob/23567aeb6b1184cd004ab7419b8e1895be618024/java/lib/build.gradle.kts

* Update permissions and publications

* Use tag name as version and clean publication

* Remove local configuration

* add `rustfmt` formatting check

* Try using regex as released tag evaluator

* Try new release regex condition

* Fix: Properly remove first character of released tag

* Fix: Try using `GITHUB_REF_NAME` to remove first char of released tag

* Fix: export `RELEASE_VERSION` instead of setting it as `env` in yml

* Update Android NDK and `java/README.md` instructions

* CI Workflow Refactor (#96)

* refactor(CI): move Java bindings into a separate job
* chore(CI): remove old benchmark workflow and integrate into build process
* refactor(CI): consolidate OS jobs into a single build-and-test job
---
Signed-off-by: Tarek <[email protected]>

---------

Signed-off-by: Tarek <[email protected]>
Co-authored-by: Tarek Elsayed <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants