mirror of
https://github.com/github/codeql.git
synced 2026-04-26 09:15:12 +02:00
Go: Move version constants to shared location
This commit is contained in:
@@ -154,8 +154,7 @@ func getNeedGopath(workspace project.GoWorkspace, importpath string) bool {
|
||||
// Try to update `go.mod` and `go.sum` if the go version is >= 1.16.
|
||||
func tryUpdateGoModAndGoSum(workspace project.GoWorkspace) {
|
||||
// Go 1.16 and later won't automatically attempt to update go.mod / go.sum during package loading, so try to update them here:
|
||||
v1_16 := util.NewSemVer("v1.16")
|
||||
if workspace.ModMode != project.ModVendor && workspace.DepMode == project.GoGetWithModules && toolchain.GetEnvGoSemVer().IsAtLeast(v1_16) {
|
||||
if workspace.ModMode != project.ModVendor && workspace.DepMode == project.GoGetWithModules && toolchain.GetEnvGoSemVer().IsAtLeast(toolchain.V1_16) {
|
||||
for _, goMod := range workspace.Modules {
|
||||
// stat go.mod and go.sum
|
||||
goModPath := goMod.Path
|
||||
@@ -541,8 +540,7 @@ func installDependenciesAndBuild() {
|
||||
|
||||
// This diagnostic is not required if the system Go version is 1.21 or greater, since the
|
||||
// Go tooling should install required Go versions as needed.
|
||||
v1_21 := util.NewSemVer("v1.21.0")
|
||||
if toolchain.GetEnvGoSemVer().IsOlderThan(v1_21) && greatestGoVersion != nil && greatestGoVersion.IsNewerThan(toolchain.GetEnvGoSemVer()) {
|
||||
if toolchain.GetEnvGoSemVer().IsOlderThan(toolchain.V1_21) && greatestGoVersion != nil && greatestGoVersion.IsNewerThan(toolchain.GetEnvGoSemVer()) {
|
||||
diagnostics.EmitNewerGoVersionNeeded(toolchain.GetEnvGoSemVer().String(), greatestGoVersion.String())
|
||||
if val, _ := os.LookupEnv("GITHUB_ACTIONS"); val == "true" {
|
||||
log.Printf(
|
||||
|
||||
@@ -175,9 +175,8 @@ var toolchainVersionRe *regexp.Regexp = regexp.MustCompile(`(?m)^([0-9]+\.[0-9]+
|
||||
// Returns true if the `go.mod` file specifies a Go language version, that version is `1.21` or greater, and
|
||||
// there is no `toolchain` directive, and the Go language version is not a valid toolchain version.
|
||||
func hasInvalidToolchainVersion(modFile *modfile.File) bool {
|
||||
v1_21 := util.NewSemVer("v1.21.0")
|
||||
return modFile.Toolchain == nil && modFile.Go != nil &&
|
||||
!toolchainVersionRe.Match([]byte(modFile.Go.Version)) && util.NewSemVer(modFile.Go.Version).IsAtLeast(v1_21)
|
||||
!toolchainVersionRe.Match([]byte(modFile.Go.Version)) && util.NewSemVer(modFile.Go.Version).IsAtLeast(toolchain.V1_21)
|
||||
}
|
||||
|
||||
// Given a list of `go.mod` file paths, try to parse them all. The resulting array of `GoModule` objects
|
||||
@@ -538,8 +537,7 @@ func (m ModMode) ArgsForGoVersion(version util.SemVer) []string {
|
||||
case ModReadonly:
|
||||
return []string{"-mod=readonly"}
|
||||
case ModMod:
|
||||
v1_14 := util.NewSemVer("v1.14")
|
||||
if version.IsOlderThan(v1_14) {
|
||||
if version.IsOlderThan(toolchain.V1_14) {
|
||||
return []string{} // -mod=mod is the default behaviour for go <= 1.13, and is not accepted as an argument
|
||||
} else {
|
||||
return []string{"-mod=mod"}
|
||||
|
||||
@@ -13,6 +13,11 @@ import (
|
||||
"github.com/github/codeql-go/extractor/util"
|
||||
)
|
||||
|
||||
var V1_14 = util.NewSemVer("v1.14.0")
|
||||
var V1_16 = util.NewSemVer("v1.16.0")
|
||||
var V1_18 = util.NewSemVer("v1.18.0")
|
||||
var V1_21 = util.NewSemVer("v1.21.0")
|
||||
|
||||
// Check if Go is installed in the environment.
|
||||
func IsInstalled() bool {
|
||||
_, err := exec.LookPath("go")
|
||||
@@ -128,7 +133,7 @@ func parseGoVersion(data string) string {
|
||||
|
||||
// Returns a value indicating whether the system Go toolchain supports workspaces.
|
||||
func SupportsWorkspaces() bool {
|
||||
return GetEnvGoSemVer().IsAtLeast(util.NewSemVer("v1.18.0"))
|
||||
return GetEnvGoSemVer().IsAtLeast(V1_18)
|
||||
}
|
||||
|
||||
// Run `go mod tidy -e` in the directory given by `path`.
|
||||
|
||||
Reference in New Issue
Block a user