Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding CI / CD for Processing android mode #707

Open
Chandra-Sekhar-Bala opened this issue Aug 6, 2022 · 14 comments
Open

Adding CI / CD for Processing android mode #707

Chandra-Sekhar-Bala opened this issue Aug 6, 2022 · 14 comments

Comments

@Chandra-Sekhar-Bala
Copy link

If pull request is created to the master branch, check whether this PR has any problem or not. it is good to make a CI process.

@rupeshkumar22
Copy link
Contributor

Is there any idea to elaborate or process to implement for Continous Integration?
thanks,
Rupesh

@Chandra-Sekhar-Bala
Copy link
Author

With CI-enabled merging PR will be very easy for reviewers. Githu CI can be utilized here, it's free, fast and easy to customize. Here's an example

@ranaaditya
Copy link
Member

If pull request is created to the master branch, check whether this PR has any problem or not. it is good to make a CI process.

Hi @Chandra-Sekhar-Bala , currently maintainers test all the changes on local machines before merging single line of code into tha main, because main brach is big and contains core-processing-android, vr-lib, ar-lib and scripts as well.

What you can do if you want to make the building process automated so whenever someone make a PR CI process build that PR branch's code and shpw if its mergeable or not - you can make a CI / CD pipeline and integrate with processing-android.

What I can inderstand from your question is you want to make CI process for android-mode so that maintainbers need not to build it locally everytime, right ?

Thanks,
rana

@ranaaditya
Copy link
Member

What's your say @codeanticode on this, I was planning to add CI building process, linting, code build checker, and welcome comments automation for android-mode as well like p5.js

Thanks !

@codeanticode
Copy link
Member

@ranaaditya yes I think that having those elements of CI would be great. I have not done it before, but it would be a great addition to make the contribution process better structured.

@Chandra-Sekhar-Bala
Copy link
Author

@ranaaditya You're correct, that's what I am trying to achieve here. Also, contributors will be able to see why their PR can/can't be merged, when && what goes wrong!

@ranaaditya
Copy link
Member

@ranaaditya You're correct, that's what I am trying to achieve here. Also, contributors will be able to see why their PR can/can't be merged, when && what goes wrong!

@Chandra-Sekhar-Bala you are good to go here !

let me know if you need any help in this issue,

Thanks,
rana !

@Chandra-Sekhar-Bala
Copy link
Author

What is the minSDK we should check ? @ranaaditya

@codeanticode
Copy link
Member

@Chandra-Sekhar-Bala We currently target android 30, but we support the following min SDK versions depending on the type of app:

  • regular apps = 17
  • live wallpapers = 17
  • VR apps = 19
  • AR apps = 24
  • wear apps = 25

Does this answer your quesiton?

@Chandra-Sekhar-Bala
Copy link
Author

I tried to look into the codebase, didn't understand a bit. Sorry, I don't have any experience in this type of codebase. I am familiar with a repo including app folder, but I am willing to learn. Please guide me through it, I really want to contribute. @ranaaditya @rupeshkumar22 @codeanticode

@rupeshkumar22
Copy link
Contributor

@Chandra-Sekhar-Bala
Happy to see you are willing to understand the codebase and that you want to contribute. You are looking for an app folder that usually comes inside an android project. But this project is not an android project. This is a mode or what we can say a component(Android Mode) for a PDE(Processing Core and Development Environment)- processing4 (previously processing). We use Gradle to build and distribute the Android Mode.

You can first try to get familiar with Android Mode on PDE to get to know what functionalities it provides to build an android app based on processing. You can get started with https://android.processing.org/install.html

Then you can try to build the source code of Android Mode along with Processing4 - https://github.com/processing/processing-android/wiki/Building-Processing-for-Android

You can do some changes in the code base, then build, and then test. There are a couple of issues available on this repo to start with. Let me know if you get stuck somewhere.

All the best!
Rupesh

@Chandra-Sekhar-Bala
Copy link
Author

Thanks @rupeshkumar22. Thanks for guiding, I will follow that.

@ranaaditya
Copy link
Member

ranaaditya commented Sep 16, 2022

I tried to look into the codebase, didn't understand a bit. Sorry, I don't have any experience in this type of codebase. I am familiar with a repo including app folder, but I am willing to learn. Please guide me through it, I really want to contribute. @ranaaditya @rupeshkumar22 @codeanticode

Hi @Chandra-Sekhar-Bala , processing-android is neither an android app nor a single android library, its collection of android-core, vr, ar and utility libraries.

To start automating the building and checking process you can follow something like:

  1. Understand how an android app / libray build using gradle (groovy dsl)
  2. Learn basics of build.gradle file in an android library
  3. Explore how processing-android is building using build.gradle (you have to go through all the build.gradle files inorder to see what exact processes are running one by one and whats exactly compiling chronologically to avoid dependency errors in the project)
  4. Learn how CI / CD works for android builds
  5. Try to automate the build process for android-core then other libs in the project

In this way you can start the automating process for this project.

NOTE: you need not to learn the processing APIs or how to make a sketch as this task is not related to developing processing-core or utility libs used in this project as I believe automation will not touch any existing core files and will also not going to touch the build.gradle files.

In case of any doubt just tagg me here or we can also schedule a meet based on our availablity.

Thanks,
Aditya Rana

@ranaaditya
Copy link
Member

Adding few resources if someone picks this issue in future.

Building a CI-CD Pipeline for an Android
Androi CI/CD using GitHub Actions - I think this will be better to use, everything in one place :)

Thanks,
rana !

@ranaaditya ranaaditya changed the title CI with Github action Adding CI / CD for Processing android mode Sep 25, 2023
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

No branches or pull requests

4 participants