You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
building install packages - on demand for releases. What about on merges to master?
automated unit test execution - on every push
stubs or a plan for automated integration test execution ( I am deferring this because the setup and management of integration tests is a separate block of work )
These automations must use GitHub secrets appropriately to protect our signing key, install4j licenses, etc.
When should these automations run? On demand? On merge to master?
Can these automations be set to run common tests on each commit, then run a release process on demand?
They should not run on every build. We cannot burn the build minutes and we should not sign builds which are not approved and merged to master.
Should these automations run via ant/gradle so that any user can sign builds using their own signing key and install4j license? the alternative is that OIE does builds in our pipelines only. The process would be public either way but the secrets would not be
Docker images: the Dockerfile pulls the builder ubuntu:noble-20251013 and the docker/dockerfile:1.19.0 frontend by tag, and a tag can be repointed by whoever publishes it. Adding docker:pinDigests to renovate.json pins them by digest and keeps them current, same idea as Update GitHub workflow actions #504.
The JDK: the builder runs curl -s "https://get.sdkman.io?ci=true" | bash, so whatever that URL serves runs in the build, and the JDK that compiles the release (17.0.17.fx-zulu from .sdkmanrc) comes through SDKMAN. Downloading that JDK directly and checking it against a SHA-256 kept in the repo would pin it. A stock Temurin image won't do: the client compiles against the JavaFX in this JDK.
The signing key: any step in a job can read that job's secrets, so the key shouldn't be in the job that runs Gradle and its dependencies. Signing wants its own job that takes the built files and runs nothing else.
Activity
pacmano1 commentedon Oct 23, 2026
For when releases move into CI: the build that makes them should only run things we've pinned, since whatever it pulls in ends up in what gets signed.
Dockerfilepulls the builderubuntu:noble-20251013and thedocker/dockerfile:1.19.0frontend by tag, and a tag can be repointed by whoever publishes it. Addingdocker:pinDigeststorenovate.jsonpins them by digest and keeps them current, same idea as Update GitHub workflow actions #504.curl -s "https://get.sdkman.io?ci=true" | bash, so whatever that URL serves runs in the build, and the JDK that compiles the release (17.0.17.fx-zulufrom.sdkmanrc) comes through SDKMAN. Downloading that JDK directly and checking it against a SHA-256 kept in the repo would pin it. A stock Temurin image won't do: the client compiles against the JavaFX in this JDK.