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

Improve overview page to ease new starters to the build scripts #957

Open
sxa opened this issue Mar 11, 2019 · 2 comments
Open

Improve overview page to ease new starters to the build scripts #957

sxa opened this issue Mar 11, 2019 · 2 comments
Assignees
Labels
documentation Issues that request updates to our documentation enhancement Issues that enhance the code or documentation of the repo in any way
Milestone

Comments

@sxa
Copy link
Member

sxa commented Mar 11, 2019

We currently have https://github.com/AdoptOpenJDK/openjdk-build and https://github.com/AdoptOpenJDK/openjdk-build/blob/master/docs/build.md but in terms of seeing where everything is and how it fits together it's not entirely clear what the overall pipeline is, or at which level you would make any given change.

I've got this diagram mostly for my own benefit that lists the Jenkins jobs (J), groovy scripts from github (G), shell scripts (S) and environment scripts (E). I think it would be useful to incorporate this into the documentation (potentially annotated with a bit more info) so people can find their way around the myriad of script levels that we now have.

J - build-scripts/job/utils/job/build-pipeline-generator
G   - Create openjdk*-pipeline jobs from pipelines/jobs/popeline_job_template.groovy
J   - openjdk11-pipeline
G     - pipelines/build/openjdk*_pipeline.groovy
G       - pipelines/build/common/build_base_file.groovy
G         - create_job_from_template.groovy (Generates e.g. jdk11u-linux-x64-hotspot)
G       - configureBuild()
G         - .doBuild() (common/build_base_file.groovy)
J           - context.build job: downstreamJobName (e.g. jdk11u/job/jdk11u-linux-x64-hotspot)
J             (Provides JAVA_TO_BUILD, ARCHITECTURE, VARIANT, TARGET_OS + tests)
G             - openjdk_build_pipeline.groovy
G               - context.sh make-adopt-build-farm.sh
S                 - set-platform-specific-configurations.sh
E                    - sbin/common/constants.sh (DUPLICATED LATER FROM configureBuild.sh)
E                    - platform-specific-configurations/${OPERATING_SYSTEM}.sh
S                 - makejdk-any-platform.sh
E                   - ${SCRIPT_DIR}/sbin/common/config_init.sh (Parse options)
E                   - ${SCRIPT_DIR}/docker-build.sh (Runs build.sh within container)
E                   - ${SCRIPT_DIR}/native-build.sh (Runs build.sh natively)
E                   - ${SCRIPT_DIR}/configureBuild.sh
E                     - ${SCRIPT_DIR}/sbin/common/constants.sh
E                     - ${SCRIPT_DIR}/sbin/common/common.sh
E                     - ${SCRIPT_DIR}/signalhandler.sh (rm container on SIGINT/SIGTERM)
S                   - {buildOpenJDKViaDocker|buildOpenJDKInNativeEnvironment}
@sxa sxa added the enhancement Issues that enhance the code or documentation of the repo in any way label Mar 11, 2019
@sxa sxa added this to the Backlog milestone Mar 11, 2019
@karianna karianna added the documentation Issues that request updates to our documentation label Mar 12, 2019
@sxa
Copy link
Member Author

sxa commented Mar 25, 2019

A reasonable use case would appear to be "I want to set up a machine with ansible and build with your scripts".

Currently the main documentation we provide is for makejdk-any-platform.sh which does not invoke the environment scripts that we have assembled. A suitable set of instructions would be along the lines of telling people to set these variables and run the script.:

export TARGET_OS=linux
export ARCHITECTURE=s390x
export JAVA_TO_BUILD=jdk8u
export VARIANT=openj9
export JDK7_BOOT_DIR=/usr/lib/jvm/java-1.7.0
build-farm/make-adopt-build-farm.sh

I wonder if we can streamlines the detection of some of these ... makejdk-any-platform.sh does the detection whereas make-adopt-build-farm.sh sets the environment variables to match the playbook - we don't have one script that does both

@sxa sxa modified the milestones: Backlog, January 2020 Dec 31, 2019
@karianna karianna modified the milestones: January 2020, February 2020 Feb 3, 2020
@sxa sxa modified the milestones: February 2020, March 2020 Mar 3, 2020
@karianna karianna modified the milestones: March 2020, April 2020 Apr 2, 2020
@karianna karianna modified the milestones: April 2020, May 2020 May 4, 2020
johnoliver added a commit to johnoliver/openjdk-build that referenced this issue May 6, 2020
johnoliver added a commit to johnoliver/openjdk-build that referenced this issue May 6, 2020
johnoliver added a commit to johnoliver/openjdk-build that referenced this issue May 6, 2020
johnoliver added a commit to johnoliver/openjdk-build that referenced this issue May 6, 2020
sxa pushed a commit to sxa/temurin-build that referenced this issue May 19, 2020
@karianna karianna modified the milestones: May 2020, June 2020 Jun 1, 2020
@karianna karianna modified the milestones: June 2020, July 2020 Jul 1, 2020
@karianna karianna modified the milestones: July 2020, August 2020 Aug 3, 2020
@sxa
Copy link
Member Author

sxa commented Oct 30, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Issues that request updates to our documentation enhancement Issues that enhance the code or documentation of the repo in any way
Projects
None yet
Development

No branches or pull requests

3 participants