Skip to content

Commit 32eaa65

Browse files
committed
Update Gradle and add-on plugin
Update Gradle to 5.4.1 and add-on plugin to 0.2.0. Update build accordingly. Add GitHub Actions workflow and Gradle task to release on tag. Signed-off-by: thc202 <thc202@gmail.com>
1 parent efda3d6 commit 32eaa65

File tree

3 files changed

+62
-11
lines changed

3 files changed

+62
-11
lines changed

.github/main.workflow

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
workflow "Release Add-On" {
2+
on = "push"
3+
resolves = ["Build and Release Add-On"]
4+
}
5+
6+
action "Add-On Tag Filter" {
7+
uses = "actions/bin/filter@3c0b4f0e63ea54ea5df2914b4fabf383368cd0da"
8+
args = "tag v*"
9+
}
10+
11+
action "Actor Filter" {
12+
uses = "actions/bin/filter@3c0b4f0e63ea54ea5df2914b4fabf383368cd0da"
13+
needs = ["Add-On Tag Filter"]
14+
args = ["actor", "kingthorin", "psiinon", "thc202"]
15+
}
16+
17+
action "Build and Release Add-On" {
18+
uses = "docker://openjdk:8"
19+
needs = ["Actor Filter"]
20+
runs = "./gradlew"
21+
args = "createReleaseFromGitHubRef"
22+
secrets = ["GITHUB_TOKEN"]
23+
}

build.gradle.kts

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
import org.zaproxy.gradle.addon.AddOnPlugin
12
import org.zaproxy.gradle.addon.AddOnStatus
2-
import org.zaproxy.gradle.addon.manifest.tasks.ConvertChangelogToChanges
3+
import org.zaproxy.gradle.addon.misc.ConvertMarkdownToHtml
4+
import org.zaproxy.gradle.addon.misc.CreateGitHubRelease
5+
import org.zaproxy.gradle.addon.misc.ExtractLatestChangesFromChangelog
36

47
plugins {
58
`java-library`
69
eclipse
7-
id("org.zaproxy.add-on") version "0.1.0"
10+
id("org.zaproxy.add-on") version "0.2.0"
811
}
912

1013
eclipse {
@@ -22,23 +25,48 @@ java {
2225
targetCompatibility = JavaVersion.VERSION_1_8
2326
}
2427

25-
val generateManifestChanges by tasks.registering(ConvertChangelogToChanges::class) {
26-
changelog.set(file("CHANGELOG.md"))
27-
manifestChanges.set(file("$buildDir/zapAddOn/manifest-changes.html"))
28-
}
29-
3028
zapAddOn {
3129
addOnName.set("FuzzDB Web Backdoors")
3230
addOnStatus.set(AddOnStatus.RELEASE)
3331
zapVersion.set("2.5.0")
3432

33+
releaseLink.set("https://github.com/zaproxy/fuzzdb-web-backdoors/compare/v@PREVIOUS_VERSION@...v@CURRENT_VERSION@")
34+
unreleasedLink.set("https://github.com/zaproxy/fuzzdb-web-backdoors/compare/v@CURRENT_VERSION@...HEAD")
35+
3536
manifest {
3637
author.set("ZAP Dev Team")
3738
url.set("https://github.com/fuzzdb-project/fuzzdb/")
38-
changesFile.set(generateManifestChanges.flatMap { it.manifestChanges })
39+
changesFile.set(tasks.named<ConvertMarkdownToHtml>("generateManifestChanges").flatMap { it.html })
40+
}
41+
}
42+
43+
System.getenv("GITHUB_REF")?.let { ref ->
44+
if ("refs/tags/" !in ref) {
45+
return@let
3946
}
4047

41-
zapVersions {
42-
downloadUrl.set("https://github.com/zaproxy/fuzzdb-web-backdoors/releases/download/v$version")
48+
tasks.register<CreateGitHubRelease>("createReleaseFromGitHubRef") {
49+
val targetTag = ref.removePrefix("refs/tags/")
50+
val targetAddOnVersion = targetTag.removePrefix("v")
51+
52+
authToken.set(System.getenv("GITHUB_TOKEN"))
53+
repo.set(System.getenv("GITHUB_REPOSITORY"))
54+
tag.set(targetTag)
55+
56+
title.set(provider { "v${zapAddOn.addOnVersion.get()}" })
57+
bodyFile.set(tasks.named<ExtractLatestChangesFromChangelog>("extractLatestChanges").flatMap { it.latestChanges })
58+
59+
assets {
60+
register("add-on") {
61+
file.set(tasks.named<Jar>(AddOnPlugin.JAR_ZAP_ADD_ON_TASK_NAME).flatMap { it.archiveFile })
62+
}
63+
}
64+
65+
doFirst {
66+
val addOnVersion = zapAddOn.addOnVersion.get()
67+
require(addOnVersion == targetAddOnVersion) {
68+
"Version of the tag $targetAddOnVersion does not match the version of the add-on $addOnVersion"
69+
}
70+
}
4371
}
4472
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)