profile
viewpoint
Steve Hill sghill Netflix SF Bay Area

sghill/bark-parks 2

visualized dog parks

sghill/access-modifier 0

Enforce access restrictions to deprecated code

sghill/activerecord-jdbc-adapter 0

ActiveRecord adapter using JDBC for JRuby. Please, support the project at BountySource's

sghill/AndroidBinding 0

MVVM for Android

sghill/api-pagination-test-repo 0

Stable Repository for Testing

sghill/api.go.cd 0

API Documentation for Go CD

sghill/build-flow-plugin 0

A plugin to manage job orchestration

sghill/build-pipeline-plugin 0

Jenkins Build Pipeline Plugin

sghill/build-timeout-plugin 0

Jenkins build-timeout plugin

create barnchjenkinsci/gradle-jpi-plugin

branch : simplify-manifest

created branch time in 8 days

startedonlurking/awesome-infosec

started time in a month

Pull request review commentjenkins-infra/jenkins-infra

[INFRA-2328] - Cleanup redirects from jenkins.io to Wiki for migrated and obsolete pages

 data:       rewrite ^/census/(.*) https://census.jenkins.io/$1 permanent;       rewrite ^/jenkins-ci.org.key$ https://pkg.jenkins.io/redhat/jenkins.io.key permanent;   +      # TODO: Migrate to jenkins.io redirects       # permalinks       # - this one is referenced from 1.395.1 "sign post" release-      rewrite ^/why$            https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=53608972 permanent;+      rewrite ^/why$            https://www.jenkins.io/ permanent;       # baked in the help file to create account on Oracle for JDK downloads       rewrite ^/oracleAccountSignup$    http://www.oracle.com/webapps/redirect/signon?nexturl=http://jenkins-ci.org/ permanent;-      # to the donation page-      rewrite ^/donate$        https://wiki.jenkins-ci.org/display/JENKINS/Donation permanent;       # CLA links used in the CLA forms-      rewrite ^/license$        https://wiki.jenkins-ci.org/display/JENKINS/Governance+Document#GovernanceDocument-cla permanent;-      rewrite ^/licenses$        https://wiki.jenkins-ci.org/display/JENKINS/Governance+Document#GovernanceDocument-cla permanent;+      rewrite ^/license$        https://www.jenkins.io/project/governance/#cla permanent;+      rewrite ^/licenses$        https://www.jenkins.io/project/governance/#cla permanent;       # used to advertise the project meeting-      rewrite ^/meetings/$        https://wiki.jenkins-ci.org/display/JENKINS/Governance+Meeting+Agenda permanent;+      rewrite ^/meetings/$        https://www.jenkins.io/project/governance-meeting/ permanent;       # used from friends of Jenkins plugin to link to the thank you page-      rewrite ^/friend$        https://wiki.jenkins-ci.org/display/JENKINS/Donation permanent;+      rewrite ^/friend$        https://www.jenkins.io/donate/#friend-of-jenkins permanent;       # used by Gradle JPI plugin to include fragment       rewrite ^/gradle-jpi-plugin/latest$    https://raw.github.com/jenkinsci/gradle-jpi-plugin/master/install permanent;

Thanks Oleg.

This install file was removed in https://github.com/jenkinsci/gradle-jpi-plugin/commit/914f1934a1cd7eeadf91195017c673f6b686ebc4 in 2015.

I think it'd be clearest if the url returned a HTTP 410 GONE.

Context

The install script was meant to be applied to a build script like this:

apply from:"https://raw.github.com/jenkinsci/gradle-jpi-plugin/master/install"

If we return a 410, Gradle fails with a clear error message:

* What went wrong:
A problem occurred evaluating root project 'my-plugin'.
> Could not get resource '<url>'.
   > Could not GET '<url>'. Received status code 410 from server: Gone

I considered redirecting to the README, but it would fail in a less clear way:

* What went wrong:
Could not compile script 'https://raw.github.com/jenkinsci/gradle-jpi-plugin/master/README.md'.
> startup failed:
  script 'https://raw.github.com/jenkinsci/gradle-jpi-plugin/master/README.md': 1: expecting '!', found ' ' @ line 1, column 2.
     # Gradle JPI plugin
      ^
  
  1 error
oleg-nenashev

comment created time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha c583e653e7da139d99d66179ee388b7bc5d19518

Introduce checkOverlappingSources task - Only needs to run once by extracting from JpiManifest instead of on each JpiManifest construction - Writes discovered files so it can be cached - Fixes duplicate sezpoz detection

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 8dda782f9f1bea3c1bf9f39218003b8498fd5286

Gradle 6.5

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 24f863eb77fe0f92e94a56a3e10ab764663eff99

Always install plugins as .jpi Installing plugins through the Jenkins UI always writes as .jpi, even if the plugin is published as .hpi. This eliminates the warning on the server task: WARN h.ClassicPluginStrategy - encountered <path-to>/workflow-job.hpi under a nonstandard name; expected workflow-job.jpi

view details

Steve Hill

commit sha c8b48e7de0bc814e39e1170550b12aea2ea61953

Restore legacy ServerTask This isn't wired by the plugin, but will remain Deprecated as-is until 1.0.0. To use this version of the server task, a user would have to call: tasks.register('legacyServer', org.jenkinsci.gradle.plugins.jpi.ServerTask)

view details

push time in 2 months

created tagjenkinsci/gradle-jpi-plugin

tagv0.40.0-rc.1

Build Jenkins Plugins with Gradle

created time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha b8cb804f83c98a0e80c0a52a58589fd720c95477

Remove call to onlyIf This logic belongs inside the doFirst. onlyIf is not for the doFirst, but the entire task.

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 8ef39c3faa5dcdaea4c75c1e224e913bac9527b4

Enhancements for eagerly-resolved projects - apply LegacyWorkaroundsPlugin after extension created - evaluate jenkinsVersion value in onlyIf block

view details

Steve Hill

commit sha 22d9e644925076824e1d399b92b37acfbe861123

Clarify warning is coming from gradle-jpi-plugin

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha dc6829883681ed6080d81d14860900d2ffa57b1f

Update tests to use jenkinsVersion instead of coreVersion

view details

Steve Hill

commit sha 985ae56f71a8f9de29dd0fa23d94cd026b2c9c6e

Test coreVersion is fallback for jenkinsVersion Use RECENT_JENKINS_VERSION for more tests

view details

push time in 2 months

issue closedjenkinsci/gradle-jpi-plugin

Better error message for running server task when `coreVersion` is not specified

When you attempt to run server task and you did not specify coreVersion property in build.gradle, you get this very useless error message: No jenkins.war dependency is specified

I had to search through source code of this plugin to find out that I actually need to specify coreVersion property for this functionality to work.

Can you state that in the error message?

closed time in 2 months

matejdro

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 1e997f0b7946b960ea5688d6fb03f2aa982e55bb

Declare coreVersion in JpiPublishingAndConsumptionTest

view details

Steve Hill

commit sha 5385dc7c451d0ad6054502ac4f513b8c7010685e

Move dependency wiring into JpiPlugin

view details

Steve Hill

commit sha 57a444289be83148f477a2ef4c25c6083cc2556c

Use new validatedJenkinsVersion provider Move coreVersion validation into Provider Fixes #148

view details

Steve Hill

commit sha 82355a5bf72d0f21a50c315ec4bdb030838d0703

Remove dependency on Jenkins version number Jenkins uses the same versioning scheme as Gradle. The GradleVersion class is bundled.

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha ad2f30486c63d3dba5f65b49fe72bd79834421e0

Always specify coreVersion in tests #148

view details

Steve Hill

commit sha ed077cb3e99f4d9ecf54ffd8626594ed71fa87c3

Introduce jenkinsVersion property #148 Closes #152

view details

Steve Hill

commit sha d3295c81924e8797e790947619fc3b7c5d8db65b

Refactor JpiExtension to use DependencyLookup #148

view details

Steve Hill

commit sha 0a22f8b121aa4cce375f44614c4fe516ace87c9a

Use Configuration#withDependencies Add reason to dependency #148

view details

Steve Hill

commit sha ab2b751a899a316ed65b3b188a31b34a4c7d81c2

Extract conditional test directory creation to LegacyWorkaroundsPlugin #148

view details

Steve Hill

commit sha 5719eb19e73721fb21fffff0d7359faa9a4a13c6

Move conditional clean configuration to LegacyWorkaroundsPlugin

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 993051a9768515f1f0eef169678415080c805ee3

Assign main for server task if < 6.4 mainClass property is not available until 6.4

view details

Steve Hill

commit sha 211e374ec68161eff8fd0e8717bf63befe0e1ee5

Update badges to be links

view details

Steve Hill

commit sha 08f80f09e9686e766a1e383dfc642be939a41701

Run regression alongside CI

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha ebac4f866357ec08543eec0089a68bb611666e6d

Use FileWriter constructor with default charset The constructor that takes a Charset is only available in Java 11+

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 196f670ddbe466fd99c56a6f0d87fb61d19a8aaf

Add top-level statement support to ProjectFile

view details

Steve Hill

commit sha e5b725e0620f79d8d3e0c08f7b404e90282136a8

Use JavaPoet for java files in tests

view details

push time in 2 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha b4d5041747278d592d8caf47d82bb7286ee940b3

Add jenkinsServer configuration to plugin installation spec

view details

Steve Hill

commit sha 8db6dfdf9f95e976a639b982fe01676eb67954aa

Introduce JenkinsServerTask - Adds jenkinsServerRuntimeOnly configuration - Launches server as JavaExec task - Allow JavaExecSpec to override server defaults - Docs for server behavior and customization - Backwards compatibility for debug properties passed through Gradle Fixes #151

view details

push time in 3 months

issue closedjenkinsci/gradle-jpi-plugin

Server does not stop after stopping server task

Not sure if this is the issue with the plugin or something on my side, but after stopping the ./gradlew server task (via CTRL + C), server sometimes remain running in the background. I have to kill gradle's daemon process for it to stop.

This is on Windows 10, gradle 6.2 and jenkins core 2.164.1.

closed time in 3 months

matejdro

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 47db1d4ea8d7eb01a84d19e100d280b7131fc7c7

Try RealPath to fix Windows build

view details

push time in 3 months

issue closedjenkinsci/gradle-jpi-plugin

server Task Leaves Behind Old Plugins

In order to remove plugins effectively As a plugin developer I want the gradle-jpi-plugin to remove plugins from the work directory when they are removed from dependencies

Given I have a build.gradle like this:

plugins {
  id 'org.jenkins-ci.jpi' version '0.39.0'
}

jenkinsPlugin {
  coreVersion = '2.222.3'
}

dependencies {
  implementation 'org.jenkins-ci.plugins:git:4.0.1'
}

When I run ./gradlew server the git plugin Then its dependencies are installed to work/plugins When I remove the plugin and add another Then the old plugin still remains in work/plugins And is loaded by Jenkins

closed time in 3 months

sghill

issue commentjenkinsci/gradle-jpi-plugin

server Task Leaves Behind Old Plugins

Fixed in the referenced commit by turning the copy plugins method into its own Sync task.

sghill

comment created time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 27123f5a7d620ff035d3da015868dc8ea93fcdf6

Remove mavenLocal from default configured repositories Fixes #161

view details

push time in 3 months

issue closedjenkinsci/gradle-jpi-plugin

Remove mavenLocal from default repositories

In order to better support reproducible builds As a user I want mavenLocal() to not be added by default

User Changes Required

Users who depend on mavenLocal() will need to add this declaration:

repositories {
    mavenLocal()
}

Context

The Gradle docs cover several reasons why mavenLocal() shouldn't be added and include the recommendation:

As a general advice, you should avoid adding mavenLocal() as a repository.

If jenkinsPlugin.configureRepositories = true (default), mavenLocal() is the first repository added. After building Jenkins from source, I started to get this failure:

* What went wrong:
    Execution failed for task ':runtime'.
    > Could not resolve all files for configuration ':runtimeClasspath'.
       > Could not find workflow-step-api-2.20.jar (org.jenkins-ci.plugins.workflow:workflow-step-api:2.20).
         Searched in the following locations:
                 file:~/.m2/repository/org/jenkins-ci/plugins/workflow/workflow-step-api/2.20/workflow-step-api-2.20.jar

This fails to search other repositories because order matters:

Once a repository returns a metadata result, following repositories are ignored.

closed time in 3 months

sghill

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 8ce94dccad201a6475cf81c38f3ae5167ea382a8

Decompose ServerTask - #165 Introduce InstallJenkinsServerPluginsTask to sync plugins from project dependencies to $workDir/plugins - #136 Introduce GenerateJenkinsServerHplTask and test through TestKit - Introduce ProjectFile.Builder and friends to improve readability of tests

view details

Steve Hill

commit sha 487cc50d5a0df4abaa78c251fe4b517f5c1c5221

Replace last ProjectBuilder spec with TestKit Fixes #136

view details

push time in 3 months

issue closedjenkinsci/gradle-jpi-plugin

Migrate ProjectBuilder Unit Tests to IntegrationSpecs

In order to ensure tests run against all supported Gradle versions And to avoid problems of missing afterEvaluate conditions As a maintainer I want tests using org.gradle.testfixtures.ProjectBuilder to be migrated to IntegrationSpecs

This project has been slowly moving in this direction, but it wasn't explicitly stated anywhere until now. This was inspired by https://github.com/jenkinsci/gradle-jpi-plugin/pull/135#discussion_r375700751 by @wolfs.

closed time in 3 months

sghill

issue openedjenkinsci/gradle-jpi-plugin

server Task Leaves Behind Old Plugins

In order to remove plugins effectively As a plugin developer I want the gradle-jpi-plugin to remove plugins from the work directory when they are removed from dependencies

Given I have a build.gradle like this:

plugins {
  id 'org.jenkins-ci.jpi' version '0.39.0'
}

jenkinsPlugin {
  coreVersion = '2.222.3'
}

dependencies {
  implementation 'org.jenkins-ci.plugins:git:4.0.1'
}

When I run ./gradlew server the git plugin Then its dependencies are installed to work/plugins When I remove the plugin and add another Then the old plugin still remains in work/plugins And is loaded by Jenkins

created time in 3 months

issue openedjenkinsci/gradle-jpi-plugin

server Task Includes TestRuntimeClasspath

In order to approximate the behavior of a deployed server As a plugin developer I want the gradle-jpi-plugin to exclude test dependencies

Today the server task is loading plugins from the testRuntimeClasspath.

plugins {
    id 'org.jenkins-ci.jpi' version '0.39.0'
}

jenkinsPlugin {
    coreVersion = '2.222.3'
}

dependencies {
    testImplementation 'org.jenkins-ci.plugins:git:4.0.1'
}

After running ./gradlew server

$ find work/plugins -name *.[hj]pi | sort
work/plugins/antisamy-markup-formatter.jpi
work/plugins/apache-httpcomponents-client-4-api.hpi
work/plugins/bouncycastle-api.jpi
work/plugins/command-launcher.jpi
work/plugins/credentials.hpi
work/plugins/display-url-api.hpi
work/plugins/git-client.hpi
work/plugins/git.hpi
work/plugins/jaxb.jpi
work/plugins/jdk-tool.jpi
work/plugins/jsch.hpi
work/plugins/junit.jpi
work/plugins/mailer.hpi
work/plugins/matrix-auth.jpi
work/plugins/matrix-project.jpi
work/plugins/scm-api.hpi
work/plugins/script-security.jpi
work/plugins/ssh-credentials.hpi
work/plugins/structs.hpi
work/plugins/trilead-api.jpi
work/plugins/ui-samples-plugin.hpi
work/plugins/windows-slaves.jpi
work/plugins/workflow-api.jpi
work/plugins/workflow-scm-step.hpi
work/plugins/workflow-step-api.hpi

created time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha d1ba4a29434bd7b33e1738d812887fe322b71e94

Update workflows - Always archive reports - Remove codenarc report archive from regression - Run regression on workflow updates

view details

Steve Hill

commit sha 28e5893dfae00089b425163dcbae3ae293055b49

Add build badges to README

view details

Steve Hill

commit sha 9d8df231439757b2e7f93a0077182d6a52c36db2

Gradle 6.4.1

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 99247769f202e496544ee8ecf28df8f934b50815

Use Path for Windows-friendly comparison

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha c448addfd890d594946e6b0eb54829617460bcaa

Compare relative paths to fix Windows build

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 7539924bd6417fe47a4b2e8805a4575973ac640a

Remove redundant unit tests - Dependency setup tests superseded by CoreVersionIntegrationSpec - Repository setup tests -> ConfigureRepositoriesIntegrationSpec - Publishing setup tests -> ConfigurePublishingIntegrationSpec - Localizer setup tests -> JpiLocalizerTaskIntegrationSpec - Task setup tests -> JpiIntegrationSpec Issue #136

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 9ea7c7a22355f781ada961f600cf2ae829024b10

Fix regression workflow schedule

view details

push time in 3 months

issue closedjenkinsci/gradle-jpi-plugin

Use shortName property for jar

In order to improve predictability As a gradle-jpi-plugin user I want the jenkinsPlugin.shortName to also influence the base name of the jar

Today the shortName controls the output of the jpi, but the jar is always named after the project.

// build.gradle
jenkinsPlugin {
    coreVersion = '2.222.3'
    shortName = 'sun'
}
version = '1.0.0'
// settings.gradle
rootProject.name = 'moon'
$ ./gradlew jpi && ls -la build/libs
    sun.jpi
    moon-1.0.0.jar

closed time in 3 months

sghill

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 1cc1bfa27b40e9463b98420960d3bf38662ad7ff

Set archivesBaseName from jenkinsPlugin.shortName Fixes #163

view details

Steve Hill

commit sha f854f9a138eba1b6c57cfffc9af2cc7a14384a31

Move previous Gradle tests into Regression workflow

view details

Steve Hill

commit sha 303c521680b5465f15c73e8ee9ab0a51b73d959f

Remove unnecessary Requires on test Only Gradle 6.0+ are supported

view details

push time in 3 months

issue openedjenkinsci/gradle-jpi-plugin

Use shortName property for jar

In order to improve predictability As a gradle-jpi-plugin user I want the jenkinsPlugin.shortName to also influence the base name of the jar

Today the shortName controls the output of the jpi, but the jar is always named after the project.

// build.gradle
jenkinsPlugin {
    coreVersion = '2.222.3'
    shortName = 'sun'
}
version = '1.0.0'
// settings.gradle
rootProject.name = 'moon'
$ ./gradlew jpi && ls -la build/libs
    sun.jpi
    moon-1.0.0.jar

created time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 2783e8e50c60d7d023e7afbcd88c874a12b7e910

Migrate ProjectBuilder tests to GradleTestKit #136

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha d1b0494c813fb926c63b79f173d5feefebf79eab

Update to CI workflow

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha b5393479ed3aa92d0faf2d1cceae58b3fba97ccb

Create matrix.yml Try out matrix builds in GitHub CI

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 72c3b94286b47782e0a82b0a065a9e88e4d7d12f

Trust sources and gradle artifacts for IntelliJ import

view details

push time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha fdfb068962421abfb73b27461ce52f58cd0dd5bb

Gradle 6.4

view details

Steve Hill

commit sha 049bd28b72af1de7da93340fcad53d5d9bb8fdee

Add dependency verification

view details

push time in 3 months

issue commentjenkinsci/gradle-jpi-plugin

Better error message for running server task when `coreVersion` is not specified

Providing an update on this since it has been a while.

This is what I expect the error message to look like:

Cannot query the value of extension 'jenkinsPlugin' property 'coreVersion' because it has no value available.

So far I've added comprehensive test coverage of this property to make refactoring safe. My plan is to migrate String coreVersion -> Property<String> coreVersion, which does not appear to be a breaking change for groovy buildscript users (the overwhelming majority of use-cases I'm aware of).

The error messaging above comes out of the box from Gradle when using Lazy Properties. It will fail the build when it is accessed without being set, which means anything that causes the annotationProcessor, compileClasspath, or testCompileClasspath to resolve.

Logistically, I think it makes sense to prioritize two existing issues ahead of this:

  1. #136 - Requiring this property compels us to update many of the existing tests, which seems like a great time to go ahead and remove the ProjectBuilder tests in favor of the GradleTestKit tests
  2. #151 - Gradle's ability to fail when a configuration is resolved also would just work if we updated the Server task to be a JavaExec task that relied on a dedicated configuration instead of manually resolving in the plugin as is done today.
matejdro

comment created time in 3 months

push eventjenkinsci/gradle-jpi-plugin

Steve Hill

commit sha 88b5b9066692e5d8a8b765e11ccbd1057dd15861

Add integration tests for coreVersion This is the first part of a plan to address #148: 1. Cover the behavior with high-level tests as a safety net 2. Move the logic out of the JpiExtension, ensuring the tests pass 3. Migrate all but one of these test cases to unit tests

view details

push time in 3 months

more