-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
The latest Cake version is not always honoured #55
Comments
Earlier, not providing an argument for the `cake-version` input parameter resulted in the Cake.Tool being installed without the `--version` parameter. This is fine in most cases, since in practice it translates into installing the latest version. The case when it stops being fine is when an earlier version of the Cake.Tool is already installed in the tools directory and you're running the action without a version number. In that case, you would expect the action to uninstall the existing version of the Cake.Tool and install the latest one, but what used to happen instead is that the action wouldn't even check what version was installed, since it had no version number to compare with, and it would just use whatever version of the tool was already installed. This commit addresses this corner case by explicitly fetching the latest version of the Cake.Tool from GitHub when no version number is specified by the user. This way, the action is able to compare that version number with whatever may already be installed and act appropriately.
Earlier, not providing an argument for the `cake-version` input parameter resulted in the Cake.Tool being installed without the `--version` parameter. This is fine in most cases, since in practice it translates into installing the latest version. The case when it stops being fine is when an earlier version of the Cake.Tool is already installed in the tools directory and you're running the action without a version number. In that case, you would expect the action to uninstall the existing version of the Cake.Tool and install the latest one, but what used to happen instead is that the action wouldn't even check what version was installed, since it had no version number to compare with, and it would just use whatever version of the tool was already installed. This commit addresses this corner case by explicitly fetching the latest version of the Cake.Tool from GitHub when no version number is specified by the user. This way, the action is able to compare that version number with whatever may already be installed and act appropriately.
Earlier, not providing an argument for the `cake-version` input parameter resulted in the Cake.Tool being installed without the `--version` parameter. This is fine in most cases, since in practice it translates into installing the latest version. The case when it stops being fine is when an earlier version of the Cake.Tool is already installed in the tools directory and you're running the action without a version number. In that case, you would expect the action to uninstall the existing version of the Cake.Tool and install the latest one, but what used to happen instead is that the action wouldn't even check what version was installed, since it had no version number to compare with, and it would just use whatever version of the tool was already installed. This commit addresses this corner case by explicitly fetching the latest version of the Cake.Tool from GitHub when no version number is specified by the user. This way, the action is able to compare that version number with whatever may already be installed and act appropriately.
I am not sure I agree with it silently falling back to the installed verrsion. If you consider the current behaviour a bug, then I don't think you can make the fallback behaviour of this change the same behaviour. |
Earlier, not providing an argument for the `cake-version` input parameter resulted in the Cake.Tool being installed without the `--version` parameter. This is fine in most cases, since in practice it translates into installing the latest version. The case when it stops being fine is when an earlier version of the Cake.Tool is already installed in the tools directory and you're running the action without a version number. In that case, you would expect the action to uninstall the existing version of the Cake.Tool and install the latest one, but what used to happen instead is that the action wouldn't even check what version was installed, since it had no version number to compare with, and it would just use whatever version of the tool was already installed. This commit addresses this corner case by explicitly fetching the latest version of the Cake.Tool from GitHub when no version number is specified by the user. This way, the action is able to compare that version number with whatever may already be installed and act appropriately.
Earlier, not providing an argument for the `cake-version` input parameter resulted in the Cake.Tool being installed without the `--version` parameter. This is fine in most cases, since in practice it translates into installing the latest version. The case when it stops being fine is when an earlier version of the Cake.Tool is already installed in the tools directory and you're running the action without a version number. In that case, you would expect the action to uninstall the existing version of the Cake.Tool and install the latest one, but what used to happen instead is that the action wouldn't even check what version was installed, since it had no version number to compare with, and it would just use whatever version of the tool was already installed. This commit addresses this corner case by explicitly fetching the latest version of the Cake.Tool from GitHub when no version number is specified by the user. This way, the action is able to compare that version number with whatever may already be installed and act appropriately.
@baynezy I agree with you in principle. However, there are a few things to consider here:
Given these two premises, I think that, from a practical standpoint, falling back on the original behavior is a better alternative than completely failing the build. |
Background
Running the action without specifying the
--cake-version
input parameter implies installing the latest version of theCake.Tool
package. This is achieved by runningdotnet tool install
without the--version
parameter.The Problem
While this approach works fine in most cases, there's one scenario where it falls short: when the action runs on an agent where a different version of the
Cake.Tool
package is already installed.Here's an example workflow:
--cake-version
set tox.y.z
x.y.z
of theCake.Tool
is installed in the tools directory--cake-version
input parameter implying that the latest version of Cake should be usedCake.Tool
is already present in the tools directory; however, without a specific version number to compare with, it determines that it shouldn't install any new version of theCake.Tool
and runs with itProposed Solution
When running the action without the
--cake-version
input parameter, the action should go out and fetch the latest version of theCake.Tool
from the Cake releases on GitHub and use that as the version number.This way, there will always be a version number to compare with when determining whether any existing installation of the
Cake.Tool
can be used.Risks
In the case when fetching the latest version from GitHub fails for some reason (e.g. due to a network error), the action should simply fall back to the previous behavior of installing the
Cake.Tool
without a version number.The text was updated successfully, but these errors were encountered: