From 81c8fb3ca4ede98cbfb1e065b31e40e7219a3944 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 21:24:13 +0000 Subject: [PATCH 1/3] Bump dns-packet from 5.3.1 to 5.4.0 in /zucchini-ui-frontend Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 5.3.1 to 5.4.0. - [Release notes](https://github.com/mafintosh/dns-packet/releases) - [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md) - [Commits](https://github.com/mafintosh/dns-packet/compare/v5.3.1...5.4.0) --- updated-dependencies: - dependency-name: dns-packet dependency-type: indirect ... Signed-off-by: dependabot[bot] --- zucchini-ui-frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zucchini-ui-frontend/yarn.lock b/zucchini-ui-frontend/yarn.lock index af1dab6ba..b91bd14b8 100644 --- a/zucchini-ui-frontend/yarn.lock +++ b/zucchini-ui-frontend/yarn.lock @@ -3427,9 +3427,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" From 3b7c7b6b2085cbb40c9ffb2f50a10a89855e3fd5 Mon Sep 17 00:00:00 2001 From: Pierre Gentile Date: Tue, 28 Feb 2023 21:52:46 +0100 Subject: [PATCH 2/3] Publish images to the Github Container Registry --- build.gradle | 43 ++++++++----------- .../docker/DockerComposeExtension.groovy | 2 - .../build/docker/DockerExtension.groovy | 16 +++---- docker-compose.yml | 4 +- gradle.properties | 3 +- 5 files changed, 31 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle index 26c6c240c..3120413d9 100755 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,5 @@ import com.github.spotbugs.snom.SpotBugsTask +import io.zucchini.build.docker.DockerExtension import io.zucchini.build.docker.DockerPlugin import io.zucchini.build.node.NodePlugin import io.zucchini.build.node.YarnTask @@ -47,22 +48,6 @@ allprojects { mavenCentral() } - ext.getDockerTags = { - List dockerTags = [] - - // Branch slug, without special characters - String branchName = project.grgit.branch.current().name - String branchSlug = branchName.replace('/', '-') - - // If the Git branch is the master branch, then the Docker image will be tagged "latest" - dockerTags << "branch-${branchSlug}" - if (branchName == 'master') { - dockerTags << 'latest' - } - - return dockerTags - } - // Plugins to use with the java plugin afterEvaluate { @@ -125,6 +110,23 @@ allprojects { } + // Shared Docker config + DockerExtension dockerExtension = project.getExtensions().findByType(DockerExtension.class) + if (dockerExtension) { + dockerExtension.repositories << (project.properties['docker.baseRepository'] as String) + dockerExtension.repositories << (project.properties['docker.publishRepository'] as String) + + // If the Git branch is the master branch, then the Docker image will be tagged "latest" + String branchName = project.grgit.branch.current().name + if (branchName == 'master') { + dockerExtension.tags << 'latest' + } else { + // Branch slug, without special characters + String branchSlug = branchName.replace('/', '-') + dockerExtension.tags << "branch-${branchSlug}" + } + } + // Shared Java compiler config project.tasks.withType(JavaCompile) { options.release = 17 @@ -299,7 +301,6 @@ project("${rootProject.name}-app") { docker { name = rootProject.name - tags += project.getDockerTags() } task copyLibraries(type: Sync) { @@ -407,13 +408,7 @@ project("${rootProject.name}-example-features") { } -project("${rootProject.name}-mongo") { - - docker { - tags += project.getDockerTags() - } - -} +project("${rootProject.name}-mongo") project("${rootProject.name}-e2e-tests") { diff --git a/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerComposeExtension.groovy b/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerComposeExtension.groovy index bdf276250..1102f47b5 100644 --- a/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerComposeExtension.groovy +++ b/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerComposeExtension.groovy @@ -1,6 +1,5 @@ package io.zucchini.build.docker -import groovy.transform.PackageScope import org.gradle.api.Project import org.gradle.api.tasks.Input import org.gradle.api.tasks.Optional @@ -17,7 +16,6 @@ class DockerComposeExtension { } void environment(String name, String value) { - System.stdout.println("Adding ${name} with value ${value}"); env.put(name, value) } diff --git a/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerExtension.groovy b/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerExtension.groovy index 1e164993d..405982e3b 100644 --- a/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerExtension.groovy +++ b/buildSrc/src/main/groovy/io/zucchini/build/docker/DockerExtension.groovy @@ -10,26 +10,26 @@ class DockerExtension { String name - String repository + @Input + @Optional + List repositories = [] @Input @Optional List tags = [] DockerExtension(Project project) { - repository = project.properties['docker.baseRepository'] name = project.name tags << (project.version as String) } - void tag(String tag) { - tags << tag - } - @PackageScope List getFullTags() { - String fullName = repository == null ? name : "${repository}/${name}" - return tags.collect { "${fullName}:${it}" } + return repositories + .collect { repository -> + tags.collect { tag -> "$repository/${name}:$tag" } + } + .flatten() } } diff --git a/docker-compose.yml b/docker-compose.yml index 5562a2a43..c439134cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,14 +5,14 @@ version: "3" services: mongo: - image: "pgentile/zucchini-ui-mongo:${ZUCCHINI_VERSION:-latest}" + image: "ghcr.io/pgentile/zucchini-ui-mongo:${ZUCCHINI_VERSION:-latest}" ports: - "27017:27017" networks: - mongo zucchini-ui: - image: "pgentile/zucchini-ui:${ZUCCHINI_VERSION:-latest}" + image: "ghcr.io/pgentile/zucchini-ui:${ZUCCHINI_VERSION:-latest}" ports: - "8080:8080" - "8081:8081" diff --git a/gradle.properties b/gradle.properties index fb0f12a9b..b22970cf7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ version = 0.0.6-SNAPSHOT -docker.baseRepository = pgentile +docker.baseRepository = ghcr.io/pgentile +docker.publishRepository = pgentile From 53b75932ba09295444fd37c5bedff12295aec904 Mon Sep 17 00:00:00 2001 From: Pierre Gentile Date: Sat, 4 Mar 2023 10:14:56 +0100 Subject: [PATCH 3/3] Inject slug variables in the build --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8ddda1b0..f69ba81a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,6 +27,9 @@ jobs: DEFAULT_NODE_VERSION: "18" steps: + - name: Inject slug/short variables + uses: rlespinasse/github-slug-action@v4 + - name: About env run: | echo "Env"