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
42 changes: 42 additions & 0 deletions .github/workflows/archrules.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# action for evaluating archrules on a single project repo
name: Nebula ArchRules
on:
push:
branches:
- 'main'
pull_request:

jobs:
buildmultijdk:
runs-on: ubuntu-latest
name: ArchRules
steps:
- uses: actions/checkout@v6
- name: Setup git user
run: |
git config --global user.name "Nebula Plugin Maintainers"
git config --global user.email "nebula-plugins-oss@netflix.com"
- name: Set up JDKs
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: |
17
21
java-package: jdk
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-overwrite-existing: true
build-scan-publish: true
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
build-scan-terms-of-use-agree: 'yes'
- name: Gradle run archrules
run: ./gradlew --stacktrace archRulesConsoleReport archRulesMarkdownReport
- name: Arch Rule Reports step summary
run: cat build/reports/archrules/report.md > $GITHUB_STEP_SUMMARY
- name: PR Comment
if: github.event_name == 'pull_request'
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 }})"
env:
GH_TOKEN: ${{ github.token }}
11 changes: 7 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,13 @@ jobs:
21
${{ matrix.java }}
java-package: jdk
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@v5
# with:
# cache-overwrite-existing: true
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-overwrite-existing: true
build-scan-publish: true
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
build-scan-terms-of-use-agree: 'yes'
- name: Gradle build
run: ./gradlew --stacktrace build
env:
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/refresh-locks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Refresh Dependency Locks
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"

jobs:
refresh-locks:
runs-on: ubuntu-latest
name: Refresh Dependency Locks
steps:
- uses: actions/checkout@v6
- name: Setup git user
run: |
git config --global user.name "Nebula Plugin Maintainers"
git config --global user.email "nebula-plugins-oss@netflix.com"
- name: Set up JDKs
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: |
17
21
java-package: jdk
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-overwrite-existing: true
build-scan-publish: true
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
build-scan-terms-of-use-agree: 'yes'
- name: Gradle build
run: ./gradlew resolve --write-locks --refresh-dependencies --stacktrace
- name: Commit
run: |
git checkout -b dependency-update
git commit -a -m "Update dependencies"
git push -u origin dependency-update
- name: Open PR
run: gh pr create -B main -H dependency-update --title 'Update dependencies' --body 'Created by Github action'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
11 changes: 7 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,13 @@ jobs:
17
21
java-package: jdk
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@v5
# with:
# cache-overwrite-existing: true
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-overwrite-existing: true
build-scan-publish: true
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
build-scan-terms-of-use-agree: 'yes'
- name: Verify plugin publication
if: (!contains(github.ref, '-rc.'))
run: ./gradlew --stacktrace -Prelease.useLastTag=true final publishPlugin --validate-only -x check
Expand Down
14 changes: 8 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ import org.gradle.api.attributes.plugin.GradlePluginApiVersion
*
*/
plugins {
id 'com.netflix.nebula.plugin-plugin' version '22.0.2'
id 'java-library'
id 'com.netflix.nebula.plugin-plugin'
}

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

dependencyLock {
includeTransitives = true
}

configurations.all {
resolutionStrategy {
force 'org.bouncycastle:bcpg-jdk15on:1.62'
Expand All @@ -59,6 +54,7 @@ dependencies {

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

def javaApiUrl = 'http://docs.oracle.com/javase/1.6.0/docs/api/'
Expand Down Expand Up @@ -165,3 +161,9 @@ gradlePlugin {
}
}
}

tasks.wrapper {
distributionType = Wrapper.DistributionType.BIN
gradleVersion = "9.5.1"
distributionSha256Sum = "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
}
77 changes: 42 additions & 35 deletions gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,49 @@
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
cglib:cglib-nodep:3.2.2=integTestRuntimeClasspath,testRuntimeClasspath
com.bmuschko:gradle-docker-plugin:10.0.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.bmuschko:gradle-docker-plugin:10.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.luben:zstd-jni:1.5.6-3=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
com.github.stefanbirkner:system-rules:1.19.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
com.netflix.nebula:nebula-test:11.0.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
commons-codec:commons-codec:1.17.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
commons-io:commons-io:2.16.1=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.airlift:aircompressor:0.27=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
javax.inject:javax.inject:1=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
junit:junit-dep:4.11=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
junit:junit:4.13.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.ant:ant-launcher:1.10.15=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.ant:ant:1.10.15=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-compress:1.26.2=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-lang3:3.14.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.groovy:groovy:4.0.4=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.maven:maven-archiver:3.6.3=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcpg-jdk15on:1.62=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcprov-jdk15on:1.62=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-archiver:4.10.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-interpolation:1.27=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-io:3.5.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.hamcrest:hamcrest-core:1.3=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.hamcrest:hamcrest:2.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-commons:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-engine:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-launcher:1.13.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.stefanbirkner:system-rules:1.19.0=testCompileClasspath,testRuntimeClasspath
com.netflix.nebula:nebula-test:12.4.3=testCompileClasspath,testRuntimeClasspath
commons-codec:commons-codec:1.17.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
commons-io:commons-io:2.16.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.airlift:aircompressor:0.27=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
junit:junit-dep:4.11=testCompileClasspath,testRuntimeClasspath
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath
org.apache.ant:ant-launcher:1.10.15=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.ant:ant:1.10.15=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-compress:1.26.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-lang3:3.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.groovy:groovy-bom:4.0.29=testCompileClasspath,testRuntimeClasspath
org.apache.groovy:groovy:4.0.29=testCompileClasspath,testRuntimeClasspath
org.apache.maven:maven-archiver:3.6.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcpg-jdk15on:1.62=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcprov-jdk15on:1.62=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-archiver:4.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-interpolation:1.27=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.codehaus.plexus:plexus-io:3.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath
org.hamcrest:hamcrest:3.0=testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-commons:1.14.4=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-engine:1.14.4=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-launcher:1.14.4=testCompileClasspath,testRuntimeClasspath
org.junit:junit-bom:5.14.4=testCompileClasspath,testRuntimeClasspath
org.objenesis:objenesis:2.4=integTestRuntimeClasspath,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.redline-rpm:redline:1.2.10=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:1.7.36=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.sonatype.plexus:plexus-cipher:1.4=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.sonatype.plexus:plexus-sec-dispatcher:1.4=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-core:2.3-groovy-4.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-junit4:2.3-groovy-4.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.redline-rpm:redline:1.2.10=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:1.7.36=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.sonatype.plexus:plexus-cipher:1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.sonatype.plexus:plexus-sec-dispatcher:1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-bom:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-core:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-junit4:2.4-groovy-4.0=testCompileClasspath,testRuntimeClasspath
org.tukaani:xz:1.4=compileClasspath,integTestCompileClasspath,testCompileClasspath
org.tukaani:xz:1.9=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
org.vafer:jdeb:1.14=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,integTestAnnotationProcessor,testAnnotationProcessor
org.vafer:jdeb:1.14=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,testAnnotationProcessor
3 changes: 3 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
systemProp.nebula.features.coreLockingSupport=true
org.gradle.caching=true
org.gradle.parallel=true
nebula.integTest=false
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
10 changes: 1 addition & 9 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
plugins {
id 'com.gradle.develocity' version '3.19'
id("org.gradle.toolchains.foojay-resolver-convention") version("1.0.0")
}

develocity {
buildScan {
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
termsOfUseAgree = 'yes'
}
id("com.netflix.nebula.oss.settings") version ("25.+")
}

rootProject.name='gradle-ospackage-plugin'
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ class OspackageApplicationDaemonPlugin implements Plugin<Project> {
@Override
void apply(Project project) {

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

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

// Mechanism for user to configure daemon further
List<Closure> daemonConfiguration = []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,18 @@

package com.netflix.gradle.plugins.daemon

import com.netflix.gradle.plugins.packaging.SystemPackagingBasePlugin
import com.netflix.gradle.plugins.packaging.SystemPackagingTask
import com.netflix.gradle.plugins.rpm.Rpm
import com.netflix.gradle.plugins.utils.FilePermissionUtil
import com.netflix.gradle.plugins.utils.WrapUtil
import groovy.text.GStringTemplateEngine
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
import org.gradle.api.DomainObjectSet
import org.gradle.api.Plugin
import org.gradle.api.Project

@CompileStatic
class OspackageDaemonPlugin implements Plugin<Project> {
public static final String POST_INSTALL_TEMPLATE = "postInstall"
DaemonExtension extension
Expand All @@ -53,7 +54,7 @@ class OspackageDaemonPlugin implements Plugin<Project> {

@Override
void apply(Project project) {
project.plugins.apply(SystemPackagingBasePlugin)
project.plugins.apply("com.netflix.nebula.ospackage-base")

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

extension.daemons.all { DaemonDefinition definition ->
extension.daemons.configureEach { DaemonDefinition definition ->
// Check existing name
def sameName = daemonsList.any { !it.is(definition) && it.daemonName == definition.daemonName }
if (sameName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import com.netflix.gradle.plugins.packaging.AliasHelper
import com.netflix.gradle.plugins.packaging.CommonPackagingPlugin
import com.netflix.gradle.plugins.rpm.RpmPlugin
import groovy.transform.CompileDynamic
import org.gradle.api.Action
import org.gradle.api.Plugin
import org.gradle.api.Project

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package com.netflix.gradle.plugins.docker

import com.bmuschko.gradle.docker.DockerRemoteApiPlugin
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
import com.netflix.gradle.plugins.packaging.CommonPackagingPlugin
import com.netflix.gradle.plugins.packaging.SystemPackagingBasePlugin
import org.gradle.api.Plugin
import org.gradle.api.Project

class OsPackageDockerPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.plugins.apply(SystemPackagingBasePlugin)
project.plugins.apply(OsPackageDockerBasePlugin)
project.plugins.apply(DockerRemoteApiPlugin)
project.plugins.apply("com.netflix.nebula.ospackage-base")
project.plugins.apply("com.netflix.nebula.ospackage-docker-base")
project.plugins.apply("com.bmuschko.docker-remote-api")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import org.gradle.api.plugins.BasePlugin

class CommonPackagingPlugin implements Plugin<Project> {
void apply(Project project) {
project.plugins.apply(BasePlugin.class)
project.plugins.apply("base")

// Used to be used to add metaClass properties to CopySpec, but now it's done with CopySpecEnhancement
}
Expand Down
Loading
Loading