Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 1 addition & 21 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,29 +140,11 @@ Keep the PR in draft until tests pass and this file can be deleted.
To further minimize build time, tests are run only on Linux, against Java 11, and without Docker support.
It is unusual but possible for cross-component incompatibilities to only be visible in more specialized environments (such as Windows).

### Running on a limited plugin set

To run on a limited plugin set, add the label `limited-plugin-set` to run PCT in a PR - You would do this when debugging pipeline changes.

> [!NOTE]
> By default the set contains 10 plugins to consume a low amount of cloud resources.

If you lack triage permission and so cannot add this label, or if you want to run on your own set of plugins, then you may instead

```bash
# One per line
echo 'jenkinsci/variant-plugin variant' > limited-plugin-set
git add limited-plugin-set
git commit -m 'Run limited plugin set'
```

Keep the PR in draft until tests pass and this file can be deleted.

### Replay any specific case

If you want to test specific cases without ever changing labels or marker files, you can update the `flags` map on top of the pipeline in replays.

Ex, to simulate a `full-test` marker with a `weekly-test` & `limited-plugin-set` labels, update this at the top of the pipeline:
Ex, to simulate a `full-test` marker with a `weekly-test` label, update this at the top of the pipeline:

```diff
// Test flags depending on the presence of corresponding labels or marker files
Expand All @@ -173,8 +155,6 @@ Map flags = [
+ 'weekly-test': ['label'] as Set,
- 'full-test': [] as Set,
+ 'full-test': ['marker'] as Set,
- 'limited-plugin-set': [] as Set,
+ 'limited-plugin-set': ['label', 'marker'] as Set,
]
```

Expand Down
35 changes: 2 additions & 33 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ final String fixedPrepArchiveName = ''
Map flags = [
'weekly-test': [] as Set,
'full-test': [] as Set,
'limited-plugin-set': [] as Set,
]

properties([
Expand Down Expand Up @@ -69,19 +68,6 @@ List lines = []
List newestAndOldestLines = []
Map results = [:]

final String[] limitedPluginSet = [
'jenkinsci/aws-credentials-plugin aws-credentials',
'jenkinsci/aws-global-configuration-plugin aws-global-configuration',
'jenkinsci/azure-credentials-plugin azure-credentials',
'jenkinsci/azure-keyvault-plugin azure-keyvault',
'jenkinsci/azure-sdk-plugin azure-sdk',
'jenkinsci/azure-storage-plugin windows-azure-storage',
'jenkinsci/badge-plugin badge',
'jenkinsci/basic-branch-build-strategies-plugin basic-branch-build-strategies',
'jenkinsci/cron_column-plugin cron_column',
'jenkinsci/pipeline-maven-plugin pipeline-maven,pipeline-maven-api,pipeline-maven-database', // longer than the others, multiple plugins
]

mavenEnv(jdk: 21) {
stage('init') {
Map scmVars = checkout scm
Expand Down Expand Up @@ -120,20 +106,8 @@ mavenEnv(jdk: 21) {
String[] allLines = []
String from = 'plugins.txt'

if (flagEnabled(flags, 'limited-plugin-set')) {
from = 'a limited set of plugins'
echo('[WARNING] Running on a limited set of plugins')

// Limited set from marker file if it exists
plugins = fileExists('../limited-plugin-set') ? readFile('../limited-plugin-set').readLines() : limitedPluginSet
// Lines from sample-plugin
allLines = sh (returnStdout: true, script: '''
echo "weekly $(grep -F '.x</bom>' ../sample-plugin/pom.xml | sed -E 's, *<bom>(.+)</bom>,\\1,g' | sort -rn | xargs)"
''').trim().split(' ')
} else {
plugins = readFile('plugins.txt').readLines()
allLines = readFile('lines.txt').readLines()
}
plugins = readFile('plugins.txt').readLines()
allLines = readFile('lines.txt').readLines()

pluginsByRepository = parsePlugins(plugins)
echo "[INFO] ${pluginsByRepository.size()} repositories retrieved from ${from}"
Expand Down Expand Up @@ -293,11 +267,6 @@ stage('flag checks') {
if (!markerErrors.isEmpty()) {
error "Remember to `git rm ${markerErrors.join(' ')}` before taking out of draft"
}

// Mark build as unstable on PR with limited-plugin-set
if (flagEnabled(flags, 'limited-plugin-set', 'label')) {
unstable 'Remember to remove `limited-plugin-set` label before taking out of draft'
}
}

stage('publish incrementals') {
Expand Down