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

Move ihmc-ci to ihmc-build #85

Closed
wants to merge 90 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
2eaf68b
Switch to Kotlin Gradle scripts, plugin to Kotlin, and plugin to buil…
calvertdw Oct 12, 2018
fb8111a
Delete old code, start setting up Categories.
calvertdw Oct 17, 2018
601a3bb
Setup default categories.
calvertdw Oct 17, 2018
bccdf49
Load CLI properties.
calvertdw Oct 17, 2018
4ebf2a1
First draft at major functionality.
calvertdw Oct 17, 2018
0dfbca6
First draft for applying category settings.
calvertdw Oct 18, 2018
d4e8389
Categories seem to be working well.
calvertdw Oct 18, 2018
c56d832
Add rest of test configuration odds and ends.
calvertdw Oct 18, 2018
4703483
:bookmark: 1.0.2, update readme, add allocation built in support
calvertdw Oct 18, 2018
5b70f94
:bookmark: 1.0.3, fix and document fast functionality
calvertdw Oct 18, 2018
ff6cbe8
:bookmark: 1.0.5, enable JUnit 5 parallel execution, remove forkEvery…
calvertdw Oct 18, 2018
085a4eb
:bookmark: 1.0.6, Update README, fix a whitespace in default SCS prop…
calvertdw Oct 18, 2018
95eca1e
:bookmark: 1.0.7, fix bug where runningOnCIServer was always true
calvertdw Oct 18, 2018
8a351e3
:bookmark: 1.0.8, add -ea argument
calvertdw Oct 18, 2018
8cfd88d
:bookmark: 1.0.9, Create empty test result if no tests found
calvertdw Oct 19, 2018
c5112f2
:bookmark: 1.1.0, only ever create one noTestsFound xml, support non-…
calvertdw Oct 19, 2018
ce7b5c5
:bookmark: 1.1.2, fix no test found phony xml to work in all cases
calvertdw Oct 19, 2018
d065e5c
:bookmark: 1.1.3, prevent phony test from getting cleaned.
calvertdw Oct 19, 2018
69de1d6
:bookmark: 1.1.4, add Groovy build.gradle support
calvertdw Oct 19, 2018
dd53e32
:bookmark: 1.1.6, fix phony test xml to only run if test task selecte…
calvertdw Oct 19, 2018
4b80e21
:bookmark: 1.2.0, add vintageMode
calvertdw Oct 23, 2018
716b587
Fix all inclusion and add getter for categories.
calvertdw Oct 23, 2018
7f6bfa0
:bookmark: 1.2.4, disable JUnit 5 parallel :( until Gradle 5.1
calvertdw Oct 24, 2018
7de0848
Change tags to hashSets.
calvertdw Oct 31, 2018
f850945
Remove rest of the sensitive strings.
calvertdw Nov 1, 2018
c4bffbc
Make categories dynamic and follow new design.
calvertdw Nov 20, 2018
5dc6d65
Remove confusing allocation arg function.
calvertdw Nov 20, 2018
6cb3f43
Extract a few methods and print out tests to be run.
calvertdw Nov 20, 2018
d339019
Get backend connection hooked up.
calvertdw Nov 20, 2018
00be8c4
CI plugin JSON communication established.
calvertdw Nov 20, 2018
faf713b
Get failure and success states working. 2.0 candidate.
calvertdw Nov 20, 2018
23a2de4
:bookmark: 2.3 release. Add missing JUnit 5 configuration properties.
calvertdw Nov 21, 2018
bef20fc
Edit default settings for allocation category.
calvertdw Nov 29, 2018
9ae3933
:bookmark: 2.8 release. Add enableAssertions toggle. The JVM one (-ea).
calvertdw Nov 30, 2018
b31c999
Add test logging events.
calvertdw Dec 4, 2018
823b71d
:bookmark: 3.2 add support for legacy suites
calvertdw Dec 7, 2018
e169e9e
:bookmark: 3.3 fix test logging events.
calvertdw Dec 11, 2018
3accfbd
:bookmark: 3.4 remove all JUnit 5 parallel configuration
calvertdw Dec 12, 2018
4760bb5
Refactor categories fields and upgrade build scripts to get tests run…
calvertdw Dec 13, 2018
c039866
Change default to not run in parallel.
calvertdw Dec 13, 2018
6291691
Remove properties that should be configured in categories. Move defau…
calvertdw Dec 13, 2018
1650c5b
:bookmark: 4.2 jvmArguments are now a set instead of a list.
calvertdw Dec 13, 2018
6545a09
:bookmark: 4.3 add empty generateTestSuites task
calvertdw Dec 17, 2018
f504ddc
Make bambooSync connection failure fail the Gradle build.
calvertdw Dec 20, 2018
be43eb8
Add plan key to sync task and remove references to Bamboo.
calvertdw Dec 20, 2018
36fced5
:bookmark: 4.4 Increase timeout to 30s.
calvertdw Dec 20, 2018
7be2055
Add category settings for artifact test runner in YML model.
calvertdw Jan 4, 2019
e1e7c5e
:bookmark: 4.7 release. Add category property overrides and fix ciSer…
calvertdw Jan 9, 2019
bd1511e
:bookmark: 4.8 add allocationRecording override property
calvertdw Feb 8, 2019
6672d3b
:arrow_up: upgrade most dependencies
calvertdw Feb 14, 2019
1693c5f
:bookmark: 4.9 :arrow_up: fuel 2.0.1, kotlin 1.3.20, junit platform 1…
calvertdw Feb 14, 2019
211b361
:bookmark: 4.23 ciServerSync waits for response
calvertdw Feb 25, 2019
b053f71
:bookmark: 4.25, upgrade JUnit to 5.4.2 and add platform launcher dep…
calvertdw Jun 4, 2019
5756ef3
Update to work with Java 12.
calvertdw Jul 22, 2019
63dc4e6
:arrow_up: Junit 5.5.1 and pitest to fix NoClassFound issue
calvertdw Sep 4, 2019
cc4d188
Remove uneccessary !!
calvertdw Sep 21, 2019
17b8299
:bookmark: 5.0 , add platform commons
calvertdw Sep 25, 2019
da63aa5
Make TagParser an object
calvertdw Sep 25, 2019
5702c01
Move TagParser
calvertdw Sep 25, 2019
87cc07a
:bookmark: 5.3 Add extension for accessing JUnit 5 versions
calvertdw Sep 25, 2019
d403160
Trying to fix JUnit 5 discovery.
calvertdw Oct 21, 2019
ea37d00
:bookmark: 5.8 Fix bug preventing explicit fast tags to be run in fas…
calvertdw Nov 5, 2019
3480545
Some stuff to get Gradle 6 working.
calvertdw Feb 24, 2020
85893c4
Fix not set print outs.
calvertdw Sep 25, 2020
74dc811
:bookmark: 6.2 Use afterEvaluate and api configuration for Gradle 6 s…
calvertdw Sep 25, 2020
7521c2c
Fix allocation instrumentation.
calvertdw Oct 7, 2020
1ce1e67
Fix adding JVM args for Gradle 6.
calvertdw Oct 7, 2020
c4bdf4f
:bookmark: 6.5 add output for debugging adding test dependencies
calvertdw Oct 13, 2020
66f630e
Extract CI server sync logic into new file. Make testProjects lazy ev…
calvertdw Oct 17, 2020
b92ade7
Get dependency addition from plugin working in Gradle 6. Work in prog…
calvertdw Oct 20, 2020
9be2a15
Use LogTools class. Get working for Gradle 5 & 6.
calvertdw Oct 20, 2020
94c7a01
Move log entry to quiet.
calvertdw Oct 20, 2020
2ab57c9
Upgrade JUnit to 5.7.0, json upgrade, and fix Gradle errors on Gradle 5.
calvertdw Nov 24, 2020
f90ff1b
Remove unused import.
calvertdw Nov 24, 2020
779b9a9
:arrow_up: fuel 2.3.0
calvertdw Nov 25, 2020
bf4361e
:bookmark: 7.4 Gradle 5 & 6 compatibility support
calvertdw Nov 27, 2020
9c75abf
:arrow_up: 7.5 Upgrade dependencies; JUnit 5.8.2; log4j vulnerabiliti…
calvertdw Dec 21, 2021
b84d028
:bookmark: 7.6 Fix sync read time out
calvertdw Dec 21, 2021
ed35d68
Add JUnit 5 default timeout.
calvertdw Feb 28, 2023
cc4f9ed
:arrow_up: 7.8
calvertdw Feb 28, 2023
da9e660
:bookmark: 7.9 Fix testTaskTimeout
calvertdw Feb 28, 2023
2447878
Use junit5 none() to run untagged tests, don't print tests to run unt…
ds58 Jun 15, 2023
4cc236e
Add comment to github issue
ds58 Jun 15, 2023
ba5c576
Clear include tags if fast category
ds58 Jun 15, 2023
b5dcc22
Set junit properties at task execution phase
ds58 Jun 16, 2023
c9b2b2e
Merge pull request #6 in LIBS/ihmc-ci from bugfix/test-configuration-…
ds58 Jun 16, 2023
a291f6d
Don't use forkEvery assignment, keep using setForkEvery
ds58 Jun 16, 2023
b115167
Remove vintage mode
ds58 Sep 18, 2024
c3aa362
Remove sync task, http client, json dependency
ds58 Sep 18, 2024
3b7aaf8
Merge branch 'develop' into remove-vintage-mode
ds58 Sep 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions buildSrc/src/main/kotlin/us/ihmc/ci/AllocationInstrumenter.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package us.ihmc.ci

class AllocationInstrumenter(val version: String)
{
fun instrumenter(): String = "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:$version"
}
45 changes: 45 additions & 0 deletions buildSrc/src/main/kotlin/us/ihmc/ci/IHMCCICategoriesExtension.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package us.ihmc.ci

import org.gradle.api.Project

val ALLOCATION_AGENT_KEY = "allocationAgent"

class IHMCCICategory(val name: String)
{
var forkEvery = 0 // no limit
var maxParallelForks = 1 // careful, cost of spawning JVMs is high
var junit5ParallelEnabled = false // doesn't work right now with Gradle's test runner. See: https://github.com/gradle/gradle/issues/6453
var junit5ParallelStrategy = "fixed"
var junit5ParallelFixedParallelism = 1
val excludeTags = hashSetOf<String>()
val includeTags = hashSetOf<String>()
val jvmProperties = hashMapOf<String, String>()
val jvmArguments = hashSetOf<String>()
var minHeapSizeGB = 1
var maxHeapSizeGB = 4
var enableAssertions = true
var defaultTimeout = 1200 // 20 minutes
var testTaskTimeout = 1800 // 30 minutes
var doFirst: () -> Unit = {} // run user code when this category is selected
}

open class IHMCCICategoriesExtension(private val project: Project)
{
val categories = hashMapOf<String, IHMCCICategory>()

fun configure(name: String, configuration: IHMCCICategory.() -> Unit)
{
configuration.invoke(configure(name))
}

fun configure(name: String): IHMCCICategory
{
val category = categories.getOrPut(name, { IHMCCICategory(name) })
if (name != "all" && name != "fast") // all require no includes or excludes, fast will be configured later
{
category.includeTags += name // by default, include tags of the category name
}

return category
}
}
48 changes: 48 additions & 0 deletions buildSrc/src/main/kotlin/us/ihmc/ci/IHMCCILogTools.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package us.ihmc.ci

import org.gradle.api.GradleException
import org.gradle.api.logging.Logger

class IHMCCILogTools(val logger: Logger)
{
fun quiet(message: Any)
{
logger.quiet(ihmcBuildMessage(message))
}

fun info(message: Any)
{
logger.info(ihmcBuildMessage(message))
}

fun warn(message: Any)
{
logger.warn(ihmcBuildMessage(message))
}

fun error(message: Any)
{
logger.error(ihmcBuildMessage(message))
}

fun debug(message: Any)
{
logger.debug(ihmcBuildMessage(message))
}

fun trace(trace: Any)
{
logger.trace(trace.toString())
}

fun crash(message: Any)
{
error(message)
throw GradleException("[ihmc-ci] " + message as String)
}

private fun ihmcBuildMessage(message: Any): String
{
return "[ihmc-ci] " + message
}
}
Loading
Loading