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

Extend OMR PR Testing Cmdline #6477

Open
babsingh opened this issue Apr 14, 2022 · 2 comments
Open

Extend OMR PR Testing Cmdline #6477

babsingh opened this issue Apr 14, 2022 · 2 comments

Comments

@babsingh
Copy link
Contributor

babsingh commented Apr 14, 2022

Recently, there have been PRs where the code is disabled by default via preprocessor flags:

The PR builds do not have an option to enable preprocessor flags, which prevents such changes to be tested. Example: jenkins build cflags="-DDUMP_DBG" cxxflags="-DDUMP_DBG" all.

Based upon the discussion in this week's OMR architecture meeting (#6416), there are TWO OPTIONS:

  1. Aliases. e.g. jenkins build all mode=debug.
  2. Pass pre-processor flags via cmd line option. e.g. jenkins build all cflags+="-DDUMP_DBG" cxxflags-="-DDUMP_DBG".

[Option 1] Aliases pros:

  • Easy to use for configurations where many preprocessor flags need to be manipulated.

[Option 1] Aliases cons:

  • More effort in implementing and maintaining aliases.
  • New flags will have to be introduced through an alias before they can be invoked in a PR build.

[Option 2] Cmdline option pros:

  • Can immediately accommodate new flags.
  • Easier and quicker to implement.
  • Less maintenance since there will be no alias configs to maintain.

[Option 2] Cmdline option cons:

  • Difficult to use for complicated configurations.

Security (e.g. execution of malicious code via injection) is not a major concern because PR builds can only be launched by a select trusted individuals.

@babsingh
Copy link
Contributor Author

fyi @0xdaryl @dsouzai @mstoodle @AdamBrousseau

Issue opened for further discussion.

@babsingh babsingh changed the title Extend OMR PR Testing Extend OMR PR Testing Cmdline Apr 14, 2022
@dsouzai
Copy link
Member

dsouzai commented Apr 18, 2022

(Continuing discussion from the meeting) I suppose it probably does make sense to just have the build flags explicitly passed in for now, and then after some period of time (say a year or something like that) we can create aliases based on the most commonly used flags for convenience (if applicable). At the moment we'd just be guessing as to what the aliases should be. I do think the aliases are a good idea from a human factors pov, but it should also be data driven.

For the sake of having a standard bar of acceptance though, I do think what @mstoodle said should be enforced, namely, even if builds launched with custom flag(s) pass, the PR should only be merged if builds without the custom flag(s) also pass.

babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 15, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 15, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64<OPTIONS_B>
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 15, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 16, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 22, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 22, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 22, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) configure:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(configure:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 23, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jun 24, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Jul 14, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes inside a container.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
    c) linux_ppc-64_le_gcc PR builds will be run on cgroup.v2 nodes.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Aug 17, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes inside a container.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
    c) linux_ppc-64_le_gcc PR builds will be run on cgroup.v2 nodes.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Sep 21, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes inside a container.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
    c) linux_ppc-64_le_gcc PR builds will be run on cgroup.v2 nodes.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
babsingh added a commit to babsingh/omr that referenced this issue Sep 21, 2022
1.  Ubuntu 16 (Ub16) is out of service. Thus, Ub16 x86_64 Dockerfile has
    been removed.
2.  We can write a script to generate Dockerfiles to support different
    operating systems (OSs) and architectures. For the time being, only a
    Dockerfile for Ubuntu 20 x86_64 has been added. This Dockerfile
    can be used to derive a script to generate Dockerfiles for other
    OSs and architectures since it has all the fundamental components.
3.  OMR_RUNNING_IN_DOCKER=1 environment variable is set when the PR builds
    are run inside Docker. This will be used in tests to verify the
    behaviour port library sysinfo functions.
4.  PortStrTest.str_test4 is temporarily disabled since it fails in a
    container. Issue tracker: eclipse#6566.
5.  Changes to the default behaviour:
    a) linux_x86 PR builds will be run on cgroup.v1 nodes inside a container.
    b) linux_x86-64 PR builds will be run on cgroup.v2 nodes inside a container.
    c) linux_ppc-64_le_gcc PR builds will be run on cgroup.v2 nodes.
6.  PR build changes:
    a) Existing PR build syntax should have no impact.
    b) All new features are additive.
    c) New features allow PR builds to be configurable.
7.  New command example: jenkins build xlinux(OPTION1,OPTION2,...)
8.  The following options are added:
    a) cgroupv1 -> add label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(cgroupv1)
    b) !cgroupv1 -> remove label to run the build on a cgroup.v1 node.
       E.g. jenkins build xlinux(!cgroupv1)
    c) cgroupv2 -> add label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(cgroupv2)
    d) !cgroupv2 -> remove label to run the build on a cgroup.v2 node.
       E.g. jenkins build xlinux(!cgroupv2)
    e) docker -> run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv2,docker)
    f) !docker -> do not run the build inside a Docker container.
       E.g. jenkins build xlinux(cgroupv1,!docker)
    g) cmake:'ARGS' -> ARGS will be appended during the configure phase.
       E.g. jenkins build xlinux(cmake:'-DCMAKE_C_FLAGS=-DDUMP_DBG')
    h) compile:'ARGS' -> ARGS will be appended during the compile phase.
       E.g. jenkins build xlinux(compile:'-d')
    i) test:'ARGS' -> ARGS will be appended while running the tests.
       E.g. jenkins build xlinux(test:'-R porttest')
    j) env:'VAR1=VAL1,VAR2=VAL2' -> environment variables will be added.
       E.g. jenkins build xlinux(env:'GTEST_FILTER=PortDumpTest.*')
9.  Example: jenkins build xlinux(<OPTIONS_A>),all
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use their default settings/options.
10. Example: jenkins build xlinux(<OPTIONS_A>),all(<OPTIONS_B>)
    In this example, the xlinux PR build will use OPTIONS_A whereas
    all other PR builds will use OPTIONS_B.
11. Example: jenkins build xlinux(<OPTIONS_A>),all,linux_x86-64(<OPTIONS_B>)
    In this example, xlinux is an alias for linux_x86-64. Two different
    sets of options are provided for the same PR build specfication. The set
    of options of provided at the end will be enforced. In this example,
    OPTIONS_B will be used whereas OPTIONS_A will be ignored. The same
    analogy is also used if N-sets of options are specified for the a PR
    build specification.
12. Related:
    - eclipse#1281
    - eclipse#6468
    - eclipse#6477
    - eclipse#6501

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants