45 lines
1.9 KiB
Go
45 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli"
|
|
)
|
|
|
|
func TestMainModuleWithoutDomainSupportsCheckBuildAndPageDelivery(t *testing.T) {
|
|
repository := newDeliveryBuildRepository(t)
|
|
writeRepositoryFile(t, repository, "go.mod", "module example\n\ngo 1.26.0\n")
|
|
cliGitRun(t, repository, "add", ".")
|
|
cliGitRun(t, repository, "commit", "-m", "Use local main module path")
|
|
state := &deliveryServerState{}
|
|
server := newDeliveryServer(t, state)
|
|
defer server.Close()
|
|
settings := cli.Settings{Product: "Example Product",
|
|
Build: &cli.BuildSettings{MainPackage: ".", BinaryName: "helper", Targets: []string{"linux/amd64"}},
|
|
Delivery: &cli.DeliverySettings{BaseURL: server.URL, Owner: "owner", Repository: "example"},
|
|
}
|
|
writeDeliveryProfile(t, repository, settings)
|
|
for _, args := range [][]string{
|
|
{"check", "--repo", repository, "v1.2.3"},
|
|
{"build", "--repo", repository, "--output", filepath.Join(t.TempDir(), "assets"), "v1.2.3"},
|
|
} {
|
|
var stdout, stderr bytes.Buffer
|
|
if status := run(context.Background(), args, &stdout, &stderr); status != 0 || !strings.Contains(stdout.String(), "module example version v1.2.3 tag v1.2.3") {
|
|
t.Fatalf("%s status=%d stdout=%s stderr=%s", args[0], status, stdout.String(), stderr.String())
|
|
}
|
|
}
|
|
settings.Build = nil
|
|
writeDeliveryProfile(t, repository, settings)
|
|
state.commit = cliGitOutput(t, repository, "rev-parse", "HEAD")
|
|
cliGitRun(t, repository, "tag", "v1.2.3")
|
|
t.Setenv("RELEASEKIT_GITEA_TOKEN", "fixture-token")
|
|
var stdout, stderr bytes.Buffer
|
|
if status := run(context.Background(), []string{"deliver", "--repo", repository, "v1.2.3"}, &stdout, &stderr); status != 0 || state.releaseCreates != 1 || state.assetUploads != 0 {
|
|
t.Fatalf("page delivery status=%d creates=%d uploads=%d stderr=%s", status, state.releaseCreates, state.assetUploads, stderr.String())
|
|
}
|
|
}
|