dcapwell commented on code in PR #2554: URL: https://github.com/apache/cassandra/pull/2554#discussion_r1286255944
########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base + memory:6 + cpu:4 + storage:100 + env:ANT_TEST_OPTS="-Dno-build-test=true -Dtmp.dir=${TMP_DIR}" + +#----------------------------------------------------------------------------- +# JVM based single node tests +#----------------------------------------------------------------------------- +job:unit + parent:base + testlist:find test/unit -name '*Test.java' | sed "s;^test/unit/;;g" | sort + cmd:ant test ${ANT_TEST_OPTS} + +job:cdc + parent:unit + description:Runs test suites with CDC enabled + +job:compression + parent:unit + description:Runs test suites with SSTable compression enabled + +job:test-oa + parent:unit + description:Tests oa sstable format + +job:test-system-keyspace-directory + parent:unit + description:Execute unit tests with a system keyspaces directory configured + +job:test-tries + parent:unit + description:Execute unit tests with trie memtables Review Comment: I strongly feel we should not define each like this and instead should push this into the oringal `unit` definition ``` job: unit parent:base test_cases: - cdc: [true, false] - compression: [true, false] - oa: [true, false] - system_keyspace_directory: [true, false] - tries: [true, false] ``` doing that is clear that these are just running `unit` with different configs. Now the one question becomes how we "mix"... should tries run with compression enabled and cdc enabled? Should we base this on the environment that can handle such cases? ########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base + memory:6 + cpu:4 + storage:100 + env:ANT_TEST_OPTS="-Dno-build-test=true -Dtmp.dir=${TMP_DIR}" Review Comment: nit: `-Dtmp.dir=${TMP_DIR}` is specific to Jenkins if I remember correctly, so don't think its needed here and might be best to live in the Jenkins runner? ########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base Review Comment: what "image" do we need? ########## .build/config/pipelines.cfg: ########## @@ -0,0 +1,78 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all pipelines in the system. Pipelines are composed of a collection of jobs; see jobs.cfg for per-job details +# + +# Format is expected to be as follows: +# pipeline:<name> +# job1 +# job2 +# job3 +# ... +# jobN +# pipeline_2:<name> +# etc +# +# End of a pipeline is determined by either start of subsequent or EOF + +# All jobs in the pre-commit pipeline must run within constraints and pass +# before a commit is merged upstream. Committers are expected to validate +# and sign off on this if using non-reference CI environments. +# +# Failure to do so will lead to commits being reverted. +pipeline:pre-commit Review Comment: do we really have this defined like this? I kinda force everyone to run 100% of the tests... so a subset pre-commit feels wrong to me... ########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base + memory:6 Review Comment: 6 what? ########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base + memory:6 + cpu:4 + storage:100 Review Comment: 100 what? ########## .build/config/jobs.cfg: ########## @@ -0,0 +1,183 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Contains definitions of all ci jobs in the system. Composed into pipelines; see pipelines.cfg +# + +# Job config format is key-value, colon delimited. +# Order does not matter, and subsequent jobs are delimited by either subsequent "job:N" tags or EOF +# All parameters should be processed in sequential order with child parameters executing after parent +# +# job:<name> +# description:<description> +# env:{key=val,key=val,key=val} +# string:Comma-delimited list of key value pairs to export in runtime env for test +# NOTE: env parameters should *all* be evaluated from the root of the hierarchy. Child env params that +# override the parent are acceptable but the totality of env should be a composite of each env: +# from root on down in sequential order. +# cmd:<to_run> +# string:Command used to run the tests resolved by testlist +# testlist:{command} +# string:Command run on system to generate comma-delimited list of all test units to run in target +# Note:This is expected to run in a terminal shell context +# The following parameters indicate the max allowable of a given resource +# memory:N +# integer:in GB +# cpu:N +# integer:logical cpu count +# storage:N +# integer:GB allowable used +# +# A job can inherit the configuration from another job via the following syntax: +# job:base_job +# ... params ... +# job:child +# parent:base_job +# override:new_val +# Any parameter defined in the child job is expected to override the parameters of the parent +# +# Other parameters of interest: +# Test timeouts per suite are in build.xml + +#----------------------------------------------------------------------------- +# Base reference profile; add new parameters here to ensure all jobs have a reasonable default +#----------------------------------------------------------------------------- +job:base + memory:6 + cpu:4 + storage:100 + env:ANT_TEST_OPTS="-Dno-build-test=true -Dtmp.dir=${TMP_DIR}" + +#----------------------------------------------------------------------------- +# JVM based single node tests +#----------------------------------------------------------------------------- +job:unit + parent:base + testlist:find test/unit -name '*Test.java' | sed "s;^test/unit/;;g" | sort + cmd:ant test ${ANT_TEST_OPTS} + +job:cdc + parent:unit + description:Runs test suites with CDC enabled + +job:compression + parent:unit + description:Runs test suites with SSTable compression enabled + +job:test-oa + parent:unit + description:Tests oa sstable format + +job:test-system-keyspace-directory + parent:unit + description:Execute unit tests with a system keyspaces directory configured + +job:test-tries + parent:unit + description:Execute unit tests with trie memtables + +#----------------------------------------------------------------------------- +# JVM based multi-node tests +#----------------------------------------------------------------------------- +job:jvm-dtest + parent:base + description:Execute in-jvm dtests excepting upgrade tests + testlist:find test/distributed -name '*Test.java' | sed "s;^test/distributed/;;g" | grep -v "upgrade" sort + cmd:ant test ${ANT_TEST_OPTS} + +job:jvm-dtest-upgrade + parent:jvm-dtest + description:Execute upgrade in-jvm dtests + testlist:find test/distributed -name '*Test.java' | sed "s;^test/distributed/;;g" | grep "upgrade" sort + +#----------------------------------------------------------------------------- +# Python based tests +#----------------------------------------------------------------------------- +job:dtest + parent:base + description:Python based multi-node distributed tests with default configuration + memory:16 + cpu:4 + storage:100 + env:PYTHONIOENCODING="utf-8",PYTHONUNBUFFERED=true,CASS_DRIVER_NO_EXTENSIONS=true,CASS_DRIVER_NO_CYTHON=true,CCM_MAX_HEAP_SIZE="1024M",CCM_HEAP_NEWSIZE="512M",CCM_CONFIG_DIR=${DIST_DIR}/.ccm,NUM_TOKENS="16",CASSANDRA_SKIP_SYNC=true,TMPDIR="$(mktemp -d /tmp/run-python-dtest.XXXXXX)" + env:DTEST_ARGS="--use-vnodes --num-tokens=${NUM_TOKENS} --skip-resource-intensive-tests" + +job:dtest-novnode + parent:dtest + description:Python based multi-node distributed tests without vnodes + +job:dtest-offheap + parent:dtest + description:Python based multi-node distributed tests with off-heap memtables + env:DTEST_ARGS="--skip-resource-intensive-tests --keep-failed-test-dir" + env:DTEST_ARGS="--use-vnodes --num-tokens=${NUM_TOKENS} --use-off-heap-memtables --skip-resource-intensive-tests" Review Comment: is this `append` semantic? in `yaml` this `overrides` line 126 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

