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

Adopt go 1.21 #2614

Merged
merged 1 commit into from
Aug 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/cli-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ jobs:
steps:
- uses: actions/setup-go@v3
with:
go-version: "^1.20.0"
go-version: "^1.21.0"
- uses: actions/checkout@v3
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.51.2
version: v1.54.1
args: -v --timeout 10m0s
working-directory: cli/azd

Expand Down
77 changes: 43 additions & 34 deletions cli/azd/ci-build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -132,43 +132,52 @@ function PrintFlags() {
}
}

Write-Host "Running: go build ``"
PrintFlags -flags $buildFlags
go build @buildFlags

if ($BuildRecordMode) {
$recordFlagPresent = $false
for ($i = 0; $i -lt $buildFlags.Length; $i++) {
if ($buildFlags[$i].StartsWith("-tags=")) {
$recordFlagPresent = $true
$buildFlags[$i] += ",record"
$oldGOEXPERIMENT = $env:GOEXPERIMENT
# Enable the loopvar experiment, which makes the loop variaible for go loops like `range` behave as most folks would expect.
# the go team is exploring making this default in the future, and we'd like to opt into the behavior now.
$env:GOEXPERIMENT="loopvar"

try {
Write-Host "Running: go build ``"
PrintFlags -flags $buildFlags
go build @buildFlags

if ($BuildRecordMode) {
$recordFlagPresent = $false
for ($i = 0; $i -lt $buildFlags.Length; $i++) {
if ($buildFlags[$i].StartsWith("-tags=")) {
$recordFlagPresent = $true
$buildFlags[$i] += ",record"
}
}

if (-not $recordFlagPresent) {
$buildFlags[$i] += "-tags=record"
}

$outputFlag = "-o=azd-record"
if ($IsWindows) {
$outputFlag += ".exe"
}
$buildFlags += $outputFlag

Write-Host "Running: go build (record) ``"
PrintFlags -flags $buildFlags
go build @buildFlags
}

if (-not $recordFlagPresent) {
$buildFlags[$i] += "-tags=record"

if ($LASTEXITCODE) {
Write-Host "Error running go build"
exit $LASTEXITCODE
}

$outputFlag = "-o=azd-record"
Write-Host "go build succeeded"

if ($IsWindows) {
$outputFlag += ".exe"
Write-Host "Windows exe file version info"
$azdExe = Get-Item azd.exe
Write-Host "File Version: $($azdExe.VersionInfo.FileVersionRaw)"
Write-Host "Product Version: $($azdExe.VersionInfo.ProductVersionRaw)"
}
$buildFlags += $outputFlag

Write-Host "Running: go build (record) ``"
PrintFlags -flags $buildFlags
go build @buildFlags
}

if ($LASTEXITCODE) {
Write-Host "Error running go build"
exit $LASTEXITCODE
}
Write-Host "go build succeeded"

if ($IsWindows) {
Write-Host "Windows exe file version info"
$azdExe = Get-Item azd.exe
Write-Host "File Version: $($azdExe.VersionInfo.FileVersionRaw)"
Write-Host "Product Version: $($azdExe.VersionInfo.ProductVersionRaw)"
} finally {
$env:GOEXPERIMENT = $oldGOEXPERIMENT
}
19 changes: 15 additions & 4 deletions cli/azd/ci-test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,22 @@ if ($ShortMode) {
Write-Host "Running integration tests..."
$intCoverDir = New-EmptyDirectory -Path $IntegrationTestCoverageDir

$oldGOCOVERDIR = $env:GOCOVERDIR
$oldGOEXPERIMENT = $env:GOEXPERIMENT

# GOCOVERDIR enables any binaries (in this case, azd.exe) built with '-cover',
# to write out coverage output to the specific directory.
$env:GOCOVERDIR = $intCoverDir.FullName
# Enable the loopvar experiment, which makes the loop variaible for go loops like `range` behave as most folks would expect.
# the go team is exploring making this default in the future, and we'd like to opt into the behavior now.
$env:GOEXPERIMENT="loopvar"

& $gotestsum -- ./test/... -v -timeout $IntegrationTestTimeout
if ($LASTEXITCODE) {
exit $LASTEXITCODE
}
try {
& $gotestsum -- ./test/... -v -timeout $IntegrationTestTimeout
if ($LASTEXITCODE) {
exit $LASTEXITCODE
}
} finally {
$env:GOCOVERDIR = $oldGOCOVERDIR
$env:GOEXPERIMENT = $oldGOEXPERIMENT
}
2 changes: 1 addition & 1 deletion cli/azd/cmd/cmd_help.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ package cmd

import (
"fmt"
"slices"
"strings"

"github.com/azure/azure-dev/cli/azd/pkg/output"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"golang.org/x/exp/slices"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/cmd/cobra_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"log"
"slices"
"strconv"
"strings"

Expand All @@ -19,7 +20,6 @@ import (
"github.com/azure/azure-dev/cli/azd/pkg/tools"
"github.com/azure/azure-dev/cli/azd/pkg/tools/azcli"
"github.com/spf13/cobra"
"golang.org/x/exp/slices"
)

const cDocsFlagName = "docs"
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/internal/repository/initializer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"os"
"path/filepath"
"runtime"
"slices"
"strings"
"testing"

Expand All @@ -21,7 +22,6 @@ import (
"github.com/azure/azure-dev/cli/azd/test/mocks/mockinput"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/exp/slices"
)

func Test_Initializer_Initialize(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/internal/telemetry/storage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ import (
"fmt"
"os"
"path/filepath"
"slices"
"testing"
"time"

"github.com/azure/azure-dev/cli/azd/pkg/osutil"
"github.com/benbjohnson/clock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/exp/slices"
)

// The tests in this file intentionally interacts with the filesystem (important implementation detail).
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/internal/telemetry/uploader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import (
"context"
"fmt"
"math/rand"
"slices"
"strconv"
"testing"
"time"

appinsightsexporter "github.com/azure/azure-dev/cli/azd/internal/telemetry/appinsights-exporter"
"github.com/benbjohnson/clock"
"github.com/stretchr/testify/assert"
"golang.org/x/exp/slices"
)

type InMemoryItem struct {
Expand Down
3 changes: 2 additions & 1 deletion cli/azd/internal/tracing/baggage/baggage.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
package baggage

import (
"go.opentelemetry.io/otel/attribute"
"golang.org/x/exp/maps"

"go.opentelemetry.io/otel/attribute"
)

// An immutable object safe for concurrent use.
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/account/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
"fmt"
"log"
"os"
"slices"

"github.com/azure/azure-dev/cli/azd/pkg/config"
"golang.org/x/exp/slices"
)

// JSON document path locations for default subscription & location
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/account/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"errors"
"net/http"
"slices"
"testing"

"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions"
Expand All @@ -15,7 +16,6 @@ import (
"github.com/azure/azure-dev/cli/azd/test/mocks/mockhttp"
"github.com/azure/azure-dev/cli/azd/test/mocks/mockinput"
"github.com/stretchr/testify/require"
"golang.org/x/exp/slices"
)

func Test_GetAccountDefaults(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/auth/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"io"
"log"
"net/http"
"slices"

msal "github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors"
"golang.org/x/exp/slices"
)

const cLoginCmd = "azd auth login"
Expand Down
6 changes: 3 additions & 3 deletions cli/azd/pkg/azureutil/location.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import (
"context"
"fmt"
"os"
"slices"
"strings"

"github.com/azure/azure-dev/cli/azd/pkg/account"
"github.com/azure/azure-dev/cli/azd/pkg/environment"
"github.com/azure/azure-dev/cli/azd/pkg/input"
"golang.org/x/exp/slices"
)

// PromptLocation asks the user to select a location from a list of supported azure locations for a given subscription.
Expand Down Expand Up @@ -48,9 +48,9 @@ func PromptLocationWithFilter(
}
}

slices.SortFunc(locations, func(a, b account.Location) bool {
slices.SortFunc(locations, func(a, b account.Location) int {
return strings.Compare(
strings.ToLower(a.RegionalDisplayName), strings.ToLower(b.RegionalDisplayName)) < 0
strings.ToLower(a.RegionalDisplayName), strings.ToLower(b.RegionalDisplayName))
})

// Allow the environment variable `AZURE_LOCATION` to control the default value for the location
Expand Down
3 changes: 2 additions & 1 deletion cli/azd/pkg/environment/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ import (
"regexp"
"strings"

"maps"

"github.com/azure/azure-dev/cli/azd/internal/tracing"
"github.com/azure/azure-dev/cli/azd/internal/tracing/fields"
"github.com/azure/azure-dev/cli/azd/pkg/config"
"github.com/azure/azure-dev/cli/azd/pkg/environment/azdcontext"
"github.com/azure/azure-dev/cli/azd/pkg/osutil"
"github.com/joho/godotenv"
"golang.org/x/exp/maps"
)

// EnvNameEnvVarName is the name of the key used to store the envname property in the environment.
Expand Down
6 changes: 3 additions & 3 deletions cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"math"
"os"
"path/filepath"
"slices"
"strconv"
"strings"
"time"
Expand All @@ -38,7 +39,6 @@ import (
"github.com/benbjohnson/clock"
"github.com/drone/envsubst"
"golang.org/x/exp/maps"
"golang.org/x/exp/slices"
)

const DefaultModule = "main"
Expand Down Expand Up @@ -715,8 +715,8 @@ func (p *BicepProvider) findCompletedDeployments(
return nil, err
}

slices.SortFunc(deployments, func(x, y *armresources.DeploymentExtended) bool {
return x.Properties.Timestamp.After(*y.Properties.Timestamp)
slices.SortFunc(deployments, func(x, y *armresources.DeploymentExtended) int {
return x.Properties.Timestamp.Compare(*y.Properties.Timestamp)
})

// If hint is not provided, use the environment name as the hint
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/infra/provisioning/bicep/prompt.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import (
"context"
"encoding/json"
"fmt"
"slices"
"strconv"

"github.com/azure/azure-dev/cli/azd/pkg/account"
"github.com/azure/azure-dev/cli/azd/pkg/azure"
"github.com/azure/azure-dev/cli/azd/pkg/input"
"github.com/azure/azure-dev/cli/azd/pkg/output"
"golang.org/x/exp/slices"

. "github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning"
)
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/pipeline/github_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"net/url"
"path/filepath"
"regexp"
"slices"
"strings"

"github.com/Azure/azure-sdk-for-go/sdk/azcore"
Expand All @@ -31,7 +32,6 @@ import (
"github.com/azure/azure-dev/cli/azd/pkg/tools/azcli"
"github.com/azure/azure-dev/cli/azd/pkg/tools/git"
"github.com/azure/azure-dev/cli/azd/pkg/tools/github"
"golang.org/x/exp/slices"
)

// GitHubScmProvider implements ScmProvider using GitHub as the provider
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/pipeline/pipeline_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"fmt"
"log"
"path/filepath"
"slices"
"strings"
"time"

Expand All @@ -25,7 +26,6 @@ import (
"github.com/azure/azure-dev/cli/azd/pkg/tools/azcli"
"github.com/azure/azure-dev/cli/azd/pkg/tools/git"
"github.com/sethvargo/go-retry"
"golang.org/x/exp/slices"
)

type PipelineAuthType string
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/project/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"log"
"os"
"path/filepath"
"slices"
"strings"

"github.com/azure/azure-dev/cli/azd/internal"
Expand All @@ -16,7 +17,6 @@ import (
"github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning"
"github.com/azure/azure-dev/cli/azd/pkg/osutil"
"github.com/blang/semver/v4"
"golang.org/x/exp/slices"
"gopkg.in/yaml.v3"
)

Expand Down
Loading