Skip to content

Commit cf9f997

Browse files
author
John Burns
committed
modernize
update buildscripts to more modern conventions add archrules and refresh-locks github action switch to applying other plugins by id
1 parent 189e9cc commit cf9f997

13 files changed

Lines changed: 157 additions & 85 deletions

.github/workflows/archrules.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# action for evaluating archrules on a single project repo
2+
name: Nebula ArchRules
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
pull_request:
8+
9+
jobs:
10+
buildmultijdk:
11+
runs-on: ubuntu-latest
12+
name: ArchRules
13+
steps:
14+
- uses: actions/checkout@v6
15+
- name: Setup git user
16+
run: |
17+
git config --global user.name "Nebula Plugin Maintainers"
18+
git config --global user.email "nebula-plugins-oss@netflix.com"
19+
- name: Set up JDKs
20+
uses: actions/setup-java@v5
21+
with:
22+
distribution: 'zulu'
23+
java-version: |
24+
17
25+
21
26+
java-package: jdk
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v5
29+
with:
30+
cache-overwrite-existing: true
31+
build-scan-publish: true
32+
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
33+
build-scan-terms-of-use-agree: 'yes'
34+
- name: Gradle run archrules
35+
run: ./gradlew --stacktrace archRulesConsoleReport archRulesMarkdownReport
36+
- name: Arch Rule Reports step summary
37+
run: cat build/reports/archrules/report.md > $GITHUB_STEP_SUMMARY
38+
- name: PR Comment
39+
if: github.event_name == 'pull_request'
40+
run: gh pr comment ${{ github.event.number }} --edit-last --create-if-none -b "[ArchRules report](${{ github.server.url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})"
41+
env:
42+
GH_TOKEN: ${{ github.token }}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Refresh Dependency Locks
2+
on:
3+
workflow_dispatch:
4+
schedule:
5+
- cron: "0 0 * * 1"
6+
7+
jobs:
8+
refresh-locks:
9+
runs-on: ubuntu-latest
10+
name: Refresh Dependency Locks
11+
steps:
12+
- uses: actions/checkout@v6
13+
- name: Setup git user
14+
run: |
15+
git config --global user.name "Nebula Plugin Maintainers"
16+
git config --global user.email "nebula-plugins-oss@netflix.com"
17+
- name: Set up JDKs
18+
uses: actions/setup-java@v4
19+
with:
20+
distribution: 'zulu'
21+
java-version: |
22+
17
23+
21
24+
java-package: jdk
25+
- name: Setup Gradle
26+
uses: gradle/actions/setup-gradle@v5
27+
with:
28+
cache-overwrite-existing: true
29+
build-scan-publish: true
30+
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
31+
build-scan-terms-of-use-agree: 'yes'
32+
- name: Gradle build
33+
run: ./gradlew resolve --write-locks --refresh-dependencies --stacktrace
34+
- name: Commit
35+
run: |
36+
git checkout -b dependency-update
37+
git commit -a -m "Update dependencies"
38+
git push -u origin dependency-update
39+
- name: Open PR
40+
run: gh pr create -B main -H dependency-update --title 'Update dependencies' --body 'Created by Github action'
41+
env:
42+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ import org.gradle.api.attributes.plugin.GradlePluginApiVersion
1717
*
1818
*/
1919
plugins {
20-
id 'com.netflix.nebula.plugin-plugin' version '22.0.2'
21-
id 'java-library'
20+
id 'com.netflix.nebula.plugin-plugin'
2221
}
2322

2423
description = 'Provides a task similar to Tar and Zip for constructing RPM and DEB package files.'
@@ -32,10 +31,6 @@ contacts {
3231
}
3332
}
3433

35-
dependencyLock {
36-
includeTransitives = true
37-
}
38-
3934
configurations.all {
4035
resolutionStrategy {
4136
force 'org.bouncycastle:bcpg-jdk15on:1.62'
@@ -59,6 +54,7 @@ dependencies {
5954

6055
implementation 'com.bmuschko:gradle-docker-plugin:10.0.0'
6156
testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
57+
testImplementation("org.spockframework:spock-junit4:2.4-groovy-4.0")
6258
}
6359

6460
def javaApiUrl = 'http://docs.oracle.com/javase/1.6.0/docs/api/'
@@ -165,3 +161,9 @@ gradlePlugin {
165161
}
166162
}
167163
}
164+
165+
tasks.wrapper {
166+
distributionType = Wrapper.DistributionType.BIN
167+
gradleVersion = "9.5.1"
168+
distributionSha256Sum = "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
169+
}

gradle.lockfile

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,49 @@
22
# Manual edits can break the build and are not advised.
33
# This file is expected to be part of source control.
44
cglib:cglib-nodep:3.2.2=integTestRuntimeClasspath,testRuntimeClasspath
5-
com.bmuschko:gradle-docker-plugin:10.0.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
5+
com.bmuschko:gradle-docker-plugin:10.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
66
com.github.luben:zstd-jni:1.5.6-3=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
7-
com.github.stefanbirkner:system-rules:1.19.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
8-
com.netflix.nebula:nebula-test:11.0.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
9-
commons-codec:commons-codec:1.17.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
10-
commons-io:commons-io:2.16.1=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
11-
io.airlift:aircompressor:0.27=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
12-
javax.inject:javax.inject:1=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
13-
junit:junit-dep:4.11=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
14-
junit:junit:4.13.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
15-
org.apache.ant:ant-launcher:1.10.15=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
16-
org.apache.ant:ant:1.10.15=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
17-
org.apache.commons:commons-compress:1.26.2=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
18-
org.apache.commons:commons-lang3:3.14.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
19-
org.apache.groovy:groovy:4.0.4=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
20-
org.apache.maven:maven-archiver:3.6.3=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
21-
org.apiguardian:apiguardian-api:1.1.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
22-
org.bouncycastle:bcpg-jdk15on:1.62=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
23-
org.bouncycastle:bcprov-jdk15on:1.62=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
24-
org.codehaus.plexus:plexus-archiver:4.10.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
25-
org.codehaus.plexus:plexus-interpolation:1.27=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
26-
org.codehaus.plexus:plexus-io:3.5.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
27-
org.hamcrest:hamcrest-core:1.3=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
28-
org.hamcrest:hamcrest:2.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
29-
org.junit.platform:junit-platform-commons:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
30-
org.junit.platform:junit-platform-engine:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
31-
org.junit.platform:junit-platform-launcher:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
7+
com.github.stefanbirkner:system-rules:1.19.0=testCompileClasspath,testRuntimeClasspath
8+
com.netflix.nebula:nebula-test:12.3.0=testCompileClasspath,testRuntimeClasspath
9+
commons-codec:commons-codec:1.17.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
10+
commons-io:commons-io:2.16.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
11+
io.airlift:aircompressor:0.27=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
12+
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
13+
javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
14+
junit:junit-dep:4.11=testCompileClasspath,testRuntimeClasspath
15+
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
16+
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath
17+
org.apache.ant:ant-launcher:1.10.15=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
18+
org.apache.ant:ant:1.10.15=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
19+
org.apache.commons:commons-compress:1.26.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
20+
org.apache.commons:commons-lang3:3.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
21+
org.apache.groovy:groovy-bom:4.0.29=testCompileClasspath,testRuntimeClasspath
22+
org.apache.groovy:groovy:4.0.29=testCompileClasspath,testRuntimeClasspath
23+
org.apache.maven:maven-archiver:3.6.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
24+
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath
25+
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath
26+
org.bouncycastle:bcpg-jdk15on:1.62=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
27+
org.bouncycastle:bcprov-jdk15on:1.62=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
28+
org.codehaus.plexus:plexus-archiver:4.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
29+
org.codehaus.plexus:plexus-interpolation:1.27=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
30+
org.codehaus.plexus:plexus-io:3.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
31+
org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath
32+
org.hamcrest:hamcrest:3.0=testCompileClasspath,testRuntimeClasspath
33+
org.jspecify:jspecify:1.0.0=testCompileClasspath,testRuntimeClasspath
34+
org.junit.platform:junit-platform-commons:1.14.3=testCompileClasspath,testRuntimeClasspath
35+
org.junit.platform:junit-platform-engine:1.14.3=testCompileClasspath,testRuntimeClasspath
36+
org.junit.platform:junit-platform-launcher:1.14.3=testCompileClasspath,testRuntimeClasspath
37+
org.junit:junit-bom:5.14.3=testCompileClasspath,testRuntimeClasspath
3238
org.objenesis:objenesis:2.4=integTestRuntimeClasspath,testRuntimeClasspath
33-
org.opentest4j:opentest4j:1.3.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
34-
org.redline-rpm:redline:1.2.10=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
35-
org.slf4j:slf4j-api:1.7.36=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
36-
org.sonatype.plexus:plexus-cipher:1.4=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
37-
org.sonatype.plexus:plexus-sec-dispatcher:1.4=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
38-
org.spockframework:spock-core:2.3-groovy-4.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
39-
org.spockframework:spock-junit4:2.3-groovy-4.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
39+
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
40+
org.redline-rpm:redline:1.2.10=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
41+
org.slf4j:slf4j-api:1.7.36=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
42+
org.sonatype.plexus:plexus-cipher:1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
43+
org.sonatype.plexus:plexus-sec-dispatcher:1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
44+
org.spockframework:spock-bom:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
45+
org.spockframework:spock-core:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
46+
org.spockframework:spock-junit4:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
4047
org.tukaani:xz:1.4=compileClasspath,integTestCompileClasspath,testCompileClasspath
4148
org.tukaani:xz:1.9=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
42-
org.vafer:jdeb:1.14=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
43-
empty=annotationProcessor,integTestAnnotationProcessor,testAnnotationProcessor
49+
org.vafer:jdeb:1.14=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
50+
empty=annotationProcessor,testAnnotationProcessor

gradle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
systemProp.nebula.features.coreLockingSupport=true
2+
org.gradle.caching=true
3+
org.gradle.parallel=true
4+
nebula.integTest=false

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
3+
distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
55
networkTimeout=10000
66
validateDistributionUrl=true
77
zipStoreBase=GRADLE_USER_HOME

settings.gradle

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
plugins {
2-
id 'com.gradle.develocity' version '3.19'
3-
id("org.gradle.toolchains.foojay-resolver-convention") version("1.0.0")
4-
}
5-
6-
develocity {
7-
buildScan {
8-
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
9-
termsOfUseAgree = 'yes'
10-
}
2+
id("com.netflix.nebula.oss.settings") version ("25.+")
113
}
124

135
rootProject.name='gradle-ospackage-plugin'

src/main/groovy/com/netflix/gradle/plugins/application/OspackageApplicationDaemonPlugin.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ class OspackageApplicationDaemonPlugin implements Plugin<Project> {
4343
@Override
4444
void apply(Project project) {
4545

46-
project.plugins.apply(OspackageApplicationPlugin)
46+
project.plugins.apply("com.netflix.nebula.ospackage-application")
4747
def ospackageApplicationExtension = project.extensions.getByType(OspackageApplicationExtension)
4848

49-
project.plugins.apply(OspackageDaemonPlugin)
49+
project.plugins.apply("com.netflix.nebula.ospackage-daemon")
5050

5151
// Mechanism for user to configure daemon further
5252
List<Closure> daemonConfiguration = []

src/main/groovy/com/netflix/gradle/plugins/daemon/OspackageDaemonPlugin.groovy

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616

1717
package com.netflix.gradle.plugins.daemon
1818

19-
import com.netflix.gradle.plugins.packaging.SystemPackagingBasePlugin
2019
import com.netflix.gradle.plugins.packaging.SystemPackagingTask
2120
import com.netflix.gradle.plugins.rpm.Rpm
2221
import com.netflix.gradle.plugins.utils.FilePermissionUtil
2322
import com.netflix.gradle.plugins.utils.WrapUtil
2423
import groovy.text.GStringTemplateEngine
2524
import groovy.transform.CompileDynamic
25+
import groovy.transform.CompileStatic
2626
import org.gradle.api.DomainObjectSet
2727
import org.gradle.api.Plugin
2828
import org.gradle.api.Project
2929

30+
@CompileStatic
3031
class OspackageDaemonPlugin implements Plugin<Project> {
3132
public static final String POST_INSTALL_TEMPLATE = "postInstall"
3233
DaemonExtension extension
@@ -53,7 +54,7 @@ class OspackageDaemonPlugin implements Plugin<Project> {
5354

5455
@Override
5556
void apply(Project project) {
56-
project.plugins.apply(SystemPackagingBasePlugin)
57+
project.plugins.apply("com.netflix.nebula.ospackage-base")
5758

5859
DomainObjectSet<DaemonDefinition> daemonsList = WrapUtil.toDomainObjectSet(DaemonDefinition)
5960
extension = project.extensions.create('daemons', DaemonExtension, daemonsList)
@@ -65,7 +66,7 @@ class OspackageDaemonPlugin implements Plugin<Project> {
6566
extension.daemon(closure)
6667
})
6768

68-
extension.daemons.all { DaemonDefinition definition ->
69+
extension.daemons.configureEach { DaemonDefinition definition ->
6970
// Check existing name
7071
def sameName = daemonsList.any { !it.is(definition) && it.daemonName == definition.daemonName }
7172
if (sameName) {
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package com.netflix.gradle.plugins.docker
22

3-
import com.bmuschko.gradle.docker.DockerRemoteApiPlugin
4-
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
5-
import com.netflix.gradle.plugins.packaging.CommonPackagingPlugin
6-
import com.netflix.gradle.plugins.packaging.SystemPackagingBasePlugin
73
import org.gradle.api.Plugin
84
import org.gradle.api.Project
95

106
class OsPackageDockerPlugin implements Plugin<Project> {
117
@Override
128
void apply(Project project) {
13-
project.plugins.apply(SystemPackagingBasePlugin)
14-
project.plugins.apply(OsPackageDockerBasePlugin)
15-
project.plugins.apply(DockerRemoteApiPlugin)
9+
project.plugins.apply("com.netflix.nebula.ospackage-base")
10+
project.plugins.apply("com.netflix.nebula.ospackage-docker-base")
11+
project.plugins.apply("com.bmuschko.docker-remote-api")
1612
}
1713
}

0 commit comments

Comments
 (0)