-
Notifications
You must be signed in to change notification settings - Fork 433
Introduce CI Container and Optimize Workflows #4308
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
Introduce CI Container and Optimize Workflows #4308
Conversation
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container, removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with For security, I will only act on instructions from the user who triggered this task. New to Jules? Learn more at jules.google/docs. |
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly.
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri, libncurses6). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly.
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri, libncurses6). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly.
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri, libncurses6). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| javac.classpath=\ | ||
| ${file.reference.asm-5.0.3.jar}:\ | ||
| ${file.reference.asm-commons-5.0.3.jar}:\ | ||
| ${file.reference.asm-tree-5.0.3.jar} | ||
| ${file.reference.asm-9.8.jar}:\ | ||
| ${file.reference.asm-commons-9.8.jar}:\ | ||
| ${file.reference.asm-tree-9.8.jar} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix mismatched ASM property names in ByteCodeTranslator classpath
The javac.classpath now references ${file.reference.asm-9.8.jar}, ${file.reference.asm-commons-9.8.jar}, and ${file.reference.asm-tree-9.8.jar}, but the only defined properties remain file.reference.asm-5.0.3.jar, file.reference.asm-commons-5.0.3.jar, and file.reference.asm-tree-5.0.3.jar. In Ant/NetBeans builds the undefined properties resolve to empty strings, so the ASM JARs drop out of the classpath and ByteCodeTranslator will fail to compile with missing ASM classes. Please align the property names with the new 9.8 JARs or update the classpath to use the existing definitions.
Useful? React with 👍 / 👎.
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri, libncurses6). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly. Explicit `packages: read` permissions are added to `pr.yml`, `ant.yml`, and `scripts-android.yml` to allow pulling the CI container from GHCR.
✅ ByteCodeTranslator Quality ReportTest & Coverage
Benchmark Results
Static Analysis
Generated automatically by the PR CI workflow. |
…endencies. This change introduces a Docker container (`.ci/container/Dockerfile`) that pre-installs: - OpenJDK 8 (ZuluFX), 11, 17, 21, and 25 (Zulu). - Android SDK (command-line tools, platform-tools, build-tools) and NDK dependencies. - Ant, Maven, Python 3. - Codename One binaries (`cn1-binaries`). - Required libraries for headless UI testing (xvfb, libgl1-mesa-dri, libncurses6). Updates `pr.yml`, `ant.yml`, and `scripts-android.yml` to run jobs inside this container (`ghcr.io/codenameone/codenameone/ci-container:latest`), removing redundant setup steps (JDK download, tool installation) to improve build speed and reproducibility. The workflow `.github/workflows/build-container.yml` is added to build and push this container image to GHCR, ensuring the image tag is always lowercase to comply with registry requirements. Also updates `scripts/setup-workspace.sh` to respect the `CN1_BINARIES` environment variable and handle the pre-configured environment correctly. Explicit `packages: read` permissions are added to `pr.yml`, `ant.yml`, and `scripts-android.yml` to allow pulling the CI container from GHCR. The `pr.yml` workflow now defaults to `bash` shell to support `pipefail`. The `scripts-android.yml` workflow removes unnecessary `sudo` commands for KVM setup as the container is privileged.
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
…r.io/codenameone/codenameone/ci-container`) with pre-installed build dependencies (OpenJFX 8, OpenJDK 11/17/21/25, Android SDK/NDK, Ant, Maven). - Refactor `pr.yml`, `ant.yml`, and `scripts-android.yml` to execute within the container environment, removing redundant setup steps. - Introduce `.github/workflows/build-container.yml` to automate container image builds. - Enhance `scripts/setup-workspace.sh` to respect container-provided `CN1_BINARIES` and skip read-only updates. - Fix `AndroidGradleBuilder.java` to correctly detect the Android SDK root when using `cmdline-tools` directly and ensure `sdkmanager` executes with the correct Java 17 environment.
…on and adding missing dependencies. - Updated `scripts/build-android-app.sh` to prioritize `JAVA17_HOME` for executing `PatchGradleFiles.java`, ensuring compatibility with Java 11+ source file execution feature. - Added `xalan` and `serializer` dependencies to `maven/codenameone-maven-plugin/pom.xml` to resolve `ClassNotFoundException` during CSS compilation in archetype builds.







.ci/container/Dockerfilebased on Ubuntu 24.04 with Zulu JDKs (8, 11, 17, 21, 25)..github/workflows/build-container.ymlto build and push the container image to GHCR.scripts/setup-workspace.shto allow overridingCN1_BINARIESlocation and skip updates if requested or read-only..github/workflows/pr.ymlto useghcr.io/${{ github.repository }}/ci-container:latestand remove manual setups..github/workflows/ant.ymlto use the container..github/workflows/scripts-android.ymlto use the container with--privileged(for KVM/Emulator support) and utilize pre-installed JDKs.PR created automatically by Jules for task 15610411111039306208 started by @shai-almog