Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement update checks #2214

Merged
merged 40 commits into from
Jan 21, 2020
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
4128ce9
Progress
TadCordle Jan 3, 2020
76fb821
Add method for retrieving XDG config directory
TadCordle Jan 3, 2020
907b8fc
Merge branch 'xdg-config' of github.com:GoogleContainerTools/jib into…
TadCordle Jan 3, 2020
88a86b8
Progress
TadCordle Jan 3, 2020
0dbc81f
Add unit tests
TadCordle Jan 6, 2020
b80d272
Travis?
TadCordle Jan 6, 2020
6f93837
Update comment
TadCordle Jan 6, 2020
575b74a
Return full path
TadCordle Jan 7, 2020
fefc308
Fix comment
TadCordle Jan 7, 2020
8c75b78
Reduce diff
TadCordle Jan 7, 2020
0aed062
Nevermind
TadCordle Jan 7, 2020
ef8ad1e
Change base image cache directory
TadCordle Jan 7, 2020
7257f98
Share code
TadCordle Jan 7, 2020
594bf73
Fix test
TadCordle Jan 7, 2020
4fd8727
Feedback
TadCordle Jan 9, 2020
f51248e
Merge branch 'i2216-change-cache-location' of github.com:GoogleContai…
TadCordle Jan 9, 2020
dfe86e9
Fix directory
TadCordle Jan 9, 2020
c7709af
Add system property for config directory
TadCordle Jan 9, 2020
3057a56
Merge branch 'master' of github.com:GoogleContainerTools/jib into i21…
TadCordle Jan 9, 2020
14fe3f5
Fixes and feedback
TadCordle Jan 13, 2020
55b0f1d
Comments
TadCordle Jan 13, 2020
bb25ca9
Extract 'skip'
TadCordle Jan 14, 2020
789defa
Fix reversed logic
TadCordle Jan 14, 2020
3a7ab0f
Improve maven formatting
TadCordle Jan 15, 2020
9aa3c32
Share gradle code
TadCordle Jan 15, 2020
746d7f4
More explicit error handling
TadCordle Jan 15, 2020
23d9f47
Javadoc and better warning message
TadCordle Jan 15, 2020
28f4a8c
More logging
TadCordle Jan 15, 2020
946626a
Log before deletion
TadCordle Jan 16, 2020
b1fba58
Comments
TadCordle Jan 17, 2020
c865371
Copyright
TadCordle Jan 17, 2020
f6a10f1
Merge branch 'master' of github.com:GoogleContainerTools/jib into i21…
TadCordle Jan 17, 2020
f6a0aa5
More tests
TadCordle Jan 17, 2020
a7b70a8
Stuff
TadCordle Jan 17, 2020
e8befde
Javadoc
TadCordle Jan 17, 2020
0c94c76
Json
TadCordle Jan 17, 2020
ae6288c
More code
TadCordle Jan 17, 2020
d95d34b
Fix
TadCordle Jan 17, 2020
216bda4
Ignore unknown fields from pulled json
TadCordle Jan 21, 2020
05bd091
Input stream
TadCordle Jan 21, 2020
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
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.docker.DockerClient;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
Expand All @@ -31,6 +32,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.base.Preconditions;
import java.io.IOException;
import java.nio.file.Path;
Expand Down Expand Up @@ -92,6 +94,10 @@ public void buildDocker()

GradleProjectProperties projectProperties =
GradleProjectProperties.getForProject(getProject(), getLogger(), tempDirectoryProvider);
UpdateChecker updateChecker =
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLogger().isLifecycleEnabled(),
TaskCommon.VERSION_URL);
try {
PluginConfigurationProcessor.createJibBuildRunnerForDockerDaemonImage(
new GradleRawConfiguration(jibExtension),
Expand Down Expand Up @@ -145,6 +151,10 @@ public void buildDocker()

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
import com.google.cloud.tools.jib.plugins.common.HelpfulSuggestions;
Expand All @@ -30,6 +31,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import java.io.IOException;
Expand Down Expand Up @@ -81,6 +83,10 @@ public void buildImage()

GradleProjectProperties projectProperties =
GradleProjectProperties.getForProject(getProject(), getLogger(), tempDirectoryProvider);
UpdateChecker updateChecker =
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLogger().isLifecycleEnabled(),
TaskCommon.VERSION_URL);
try {
if (Strings.isNullOrEmpty(jibExtension.getTo().getImage())) {
throw new GradleException(
Expand Down Expand Up @@ -143,6 +149,10 @@ public void buildImage()

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
import com.google.cloud.tools.jib.plugins.common.HelpfulSuggestions;
Expand All @@ -30,6 +31,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.base.Preconditions;
import java.io.IOException;
import java.nio.file.Path;
Expand Down Expand Up @@ -106,6 +108,10 @@ public void buildTar()

GradleProjectProperties projectProperties =
GradleProjectProperties.getForProject(getProject(), getLogger(), tempDirectoryProvider);
UpdateChecker updateChecker =
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLogger().isLifecycleEnabled(),
TaskCommon.VERSION_URL);
try {
PluginConfigurationProcessor.createJibBuildRunnerForTarImage(
new GradleRawConfiguration(jibExtension),
Expand Down Expand Up @@ -159,6 +165,10 @@ public void buildTar()

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
/** Collection of common methods to share between Gradle tasks. */
class TaskCommon {

public static final String VERSION_URL = "https://storage.googleapis.com/jib-versions/jib-gradle";

@Nullable
static TaskProvider<Task> getWarTaskProvider(Project project) {
if (project.getPlugins().hasPlugin(WarPlugin.class)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.docker.DockerClient;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
Expand All @@ -31,6 +32,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.annotations.VisibleForTesting;
import java.io.IOException;
import java.nio.file.Path;
Expand Down Expand Up @@ -73,6 +75,9 @@ public void execute() throws MojoExecutionException, MojoFailureException {
MavenProjectProperties projectProperties =
MavenProjectProperties.getForProject(
getProject(), getSession(), getLog(), tempDirectoryProvider);
UpdateChecker updateChecker =
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLog().isInfoEnabled(), MojoCommon.VERSION_URL);
try {
PluginConfigurationProcessor.createJibBuildRunnerForDockerDaemonImage(
new MavenRawConfiguration(this),
Expand Down Expand Up @@ -134,6 +139,10 @@ public void execute() throws MojoExecutionException, MojoFailureException {

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
getLog().info("");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.ImageFormat;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
import com.google.cloud.tools.jib.plugins.common.HelpfulSuggestions;
Expand All @@ -31,6 +32,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import java.io.IOException;
Expand Down Expand Up @@ -87,6 +89,9 @@ public void execute() throws MojoExecutionException, MojoFailureException {
MavenProjectProperties projectProperties =
MavenProjectProperties.getForProject(
getProject(), getSession(), getLog(), tempDirectoryProvider);
UpdateChecker updateChecker =
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLog().isInfoEnabled(), MojoCommon.VERSION_URL);
try {
PluginConfigurationProcessor.createJibBuildRunnerForRegistryImage(
new MavenRawConfiguration(this),
Expand Down Expand Up @@ -148,6 +153,10 @@ public void execute() throws MojoExecutionException, MojoFailureException {

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
getLog().info("");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.LogEvent;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException;
import com.google.cloud.tools.jib.plugins.common.HelpfulSuggestions;
Expand All @@ -30,6 +31,7 @@
import com.google.cloud.tools.jib.plugins.common.InvalidWorkingDirectoryException;
import com.google.cloud.tools.jib.plugins.common.MainClassInferenceException;
import com.google.cloud.tools.jib.plugins.common.PluginConfigurationProcessor;
import com.google.cloud.tools.jib.plugins.common.UpdateChecker;
import com.google.common.annotations.VisibleForTesting;
import java.io.IOException;
import org.apache.maven.plugin.MojoExecutionException;
Expand Down Expand Up @@ -65,6 +67,9 @@ public void execute() throws MojoExecutionException, MojoFailureException {
MavenProjectProperties projectProperties =
MavenProjectProperties.getForProject(
getProject(), getSession(), getLog(), tempDirectoryProvider);
UpdateChecker updateChecker =
UpdateChecker.checkForUpdate(
projectProperties.isOffline() || !getLog().isInfoEnabled(), MojoCommon.VERSION_URL);
try {
PluginConfigurationProcessor.createJibBuildRunnerForTarImage(
new MavenRawConfiguration(this),
Expand Down Expand Up @@ -126,6 +131,10 @@ public void execute() throws MojoExecutionException, MojoFailureException {

} finally {
tempDirectoryProvider.close();
updateChecker
.finishUpdateCheck()
.ifPresent(
s -> projectProperties.log(LogEvent.lifecycle("\n\u001B[33m" + s + "\u001B[0m\n")));
TadCordle marked this conversation as resolved.
Show resolved Hide resolved
projectProperties.waitForLoggingThread();
getLog().info("");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public class MojoCommon {
@VisibleForTesting
public static final String REQUIRED_VERSION_PROPERTY_NAME = "jib.requiredVersion";

public static final String VERSION_URL = "https://storage.googleapis.com/jib-versions/jib-maven";

/**
* Gets the list of extra directory paths from a {@link JibPluginConfiguration}. Returns {@code
* (project dir)/src/main/jib} by default if not configured.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,10 +166,8 @@ public static JibBuildRunner createJibBuildRunnerForRegistryImage(
rawConfiguration.getToCredHelper().orElse(null));

boolean alwaysCacheBaseImage =
Boolean.valueOf(
rawConfiguration
.getProperty(PropertyNames.ALWAYS_CACHE_BASE_IMAGE)
.orElse(Boolean.FALSE.toString()));
Boolean.parseBoolean(
rawConfiguration.getProperty(PropertyNames.ALWAYS_CACHE_BASE_IMAGE).orElse("false"));
chanseokoh marked this conversation as resolved.
Show resolved Hide resolved
Containerizer containerizer =
Containerizer.to(targetImage).setAlwaysCacheBaseImage(alwaysCacheBaseImage);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ public class PropertyNames {
public static final String CONSOLE = "jib.console";
public static final String CONTAINERIZE = "jib.containerize";
public static final String ALWAYS_CACHE_BASE_IMAGE = "jib.alwaysCacheBaseImage";
public static final String DISABLE_UPDATE_CHECKS = "jib.disableUpdateChecks";
public static final String CONFIG_DIRECTORY = "jib.configDirectory";

private PropertyNames() {}
}
Loading