Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Aug 30, 2024. It is now read-only.
/coder-v1-cliPublic archive

Commit84f51ad

Browse files
committed
Use smaller image for integration tests
1 parent2494de0 commit84f51ad

File tree

8 files changed

+64
-22
lines changed

8 files changed

+64
-22
lines changed

‎.github/workflows/integration.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ jobs:
2222
-uses:actions/setup-go@v2
2323
with:
2424
go-version:'^1.14'
25-
-name:go test
26-
run:go test -v./ci/integration/...
25+
-name:integration tests
26+
run:./ci/steps/integration.sh

‎ci/integration/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM ubuntu:20.04
2+
3+
RUN apt-get update && apt-get install -y jq curl

‎ci/integration/devurls_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ func TestDevURLCLI(t *testing.T) {
1212
run(t,"coder-cli-devurl-tests",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
1313
c.Run(ctx,"which coder").Assert(t,
1414
tcli.Success(),
15-
tcli.StdoutMatches("/usr/sbin/coder"),
1615
tcli.StderrEmpty(),
1716
)
1817

‎ci/integration/envs_test.go

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,44 @@ import (
44
"context"
55
"fmt"
66
"math"
7+
"net/url"
78
"regexp"
89
"testing"
10+
"time"
911

1012
"cdr.dev/coder-cli/ci/tcli"
1113
"cdr.dev/coder-cli/coder-sdk"
14+
"cdr.dev/slog"
15+
"cdr.dev/slog/sloggers/slogtest"
1216
"cdr.dev/slog/sloggers/slogtest/assert"
1317
"github.com/google/go-cmp/cmp"
1418
)
1519

20+
funccleanupClient(t*testing.T,ctx context.Context)*coder.Client {
21+
creds:=login(ctx,t)
22+
23+
u,err:=url.Parse(creds.url)
24+
assert.Success(t,"parse base url",err)
25+
26+
return&coder.Client{BaseURL:u,Token:creds.token}
27+
}
28+
29+
funccleanupEnv(t*testing.T,client*coder.Client,envIDstring)func() {
30+
returnfunc() {
31+
ctx,cancel:=context.WithTimeout(context.Background(),5*time.Second)
32+
defercancel()
33+
34+
slogtest.Info(t,"cleanuping up environment",slog.F("env_id",envID))
35+
_=client.DeleteEnvironment(ctx,envID)
36+
}
37+
}
38+
1639
funcTestEnvsCLI(t*testing.T) {
1740
t.Parallel()
1841

1942
run(t,"coder-cli-env-tests",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
2043
headlessLogin(ctx,t,c)
44+
client:=cleanupClient(t,ctx)
2145

2246
// Minimum args not received.
2347
c.Run(ctx,"coder envs create").Assert(t,
@@ -50,13 +74,6 @@ func TestEnvsCLI(t *testing.T) {
5074
tcli.Success(),
5175
)
5276

53-
t.Cleanup(func() {
54-
run(t,"coder-envs-edit-cleanup",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
55-
headlessLogin(ctx,t,c)
56-
c.Run(ctx,fmt.Sprintf("coder envs rm %s --force",name)).Assert(t)
57-
})
58-
})
59-
6077
c.Run(ctx,"coder envs ls").Assert(t,
6178
tcli.Success(),
6279
tcli.StdoutMatches(regexp.QuoteMeta(name)),
@@ -67,6 +84,10 @@ func TestEnvsCLI(t *testing.T) {
6784
tcli.Success(),
6885
tcli.StdoutJSONUnmarshal(&env),
6986
)
87+
88+
// attempt to cleanup the environment even if tests fail
89+
t.Cleanup(cleanupEnv(t,client,env.ID))
90+
7091
assert.Equal(t,"environment cpu was correctly set",cpu,float64(env.CPUCores),floatComparer)
7192

7293
c.Run(ctx,fmt.Sprintf("coder envs watch-build %s",name)).Assert(t,
@@ -80,24 +101,27 @@ func TestEnvsCLI(t *testing.T) {
80101

81102
run(t,"coder-cli-env-edit-tests",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
82103
headlessLogin(ctx,t,c)
104+
client:=cleanupClient(t,ctx)
83105

84106
name:=randString(10)
85107
c.Run(ctx,fmt.Sprintf("coder envs create %s --image ubuntu --follow",name)).Assert(t,
86108
tcli.Success(),
87109
)
88-
t.Cleanup(func() {
89-
run(t,"coder-envs-edit-cleanup",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
90-
headlessLogin(ctx,t,c)
91-
c.Run(ctx,fmt.Sprintf("coder envs rm %s --force",name)).Assert(t)
92-
})
93-
})
110+
111+
varenv coder.Environment
112+
c.Run(ctx,fmt.Sprintf(`coder envs ls -o json | jq '.[] | select(.name == "%s")'`,name)).Assert(t,
113+
tcli.Success(),
114+
tcli.StdoutJSONUnmarshal(&env),
115+
)
116+
117+
// attempt to cleanup the environment even if tests fail
118+
t.Cleanup(cleanupEnv(t,client,env.ID))
94119

95120
cpu:=2.1
96121
c.Run(ctx,fmt.Sprintf(`coder envs edit %s --cpu %f --follow`,name,cpu)).Assert(t,
97122
tcli.Success(),
98123
)
99124

100-
varenv coder.Environment
101125
c.Run(ctx,fmt.Sprintf(`coder envs ls -o json | jq '.[] | select(.name == "%s")'`,name)).Assert(t,
102126
tcli.Success(),
103127
tcli.StdoutJSONUnmarshal(&env),

‎ci/integration/integration_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func run(t *testing.T, container string, execute func(t *testing.T, ctx context.
1818
defercancel()
1919

2020
c,err:=tcli.NewContainerRunner(ctx,&tcli.ContainerConfig{
21-
Image:"codercom/enterprise-dev",
21+
Image:"coder-cli-integration:latest",
2222
Name:container,
2323
BindMounts:map[string]string{
2424
binpath:"/bin/coder",
@@ -36,7 +36,6 @@ func TestCoderCLI(t *testing.T) {
3636
run(t,"test-coder-cli",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
3737
c.Run(ctx,"which coder").Assert(t,
3838
tcli.Success(),
39-
tcli.StdoutMatches("/usr/sbin/coder"),
4039
tcli.StderrEmpty(),
4140
)
4241

‎ci/integration/setup_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,17 @@ func build(path string) error {
5151
// write session tokens to the given container runner
5252
funcheadlessLogin(ctx context.Context,t*testing.T,runner*tcli.ContainerRunner) {
5353
creds:=login(ctx,t)
54-
cmd:=exec.CommandContext(ctx,"sh","-c","mkdir -p~/.config/coder && cat >~/.config/coder/session")
54+
cmd:=exec.CommandContext(ctx,"sh","-c","mkdir -p$HOME/.config/coder && cat >$HOME/.config/coder/session")
5555

5656
// !IMPORTANT: be careful that this does not appear in logs
5757
cmd.Stdin=strings.NewReader(creds.token)
5858
runner.RunCmd(cmd).Assert(t,
5959
tcli.Success(),
6060
)
61-
runner.Run(ctx,fmt.Sprintf("echo -ne %s > ~/.config/coder/url",creds.url)).Assert(t,
61+
62+
cmd=exec.CommandContext(ctx,"sh","-c","cat > $HOME/.config/coder/url")
63+
cmd.Stdin=strings.NewReader(creds.url)
64+
runner.RunCmd(cmd).Assert(t,
6265
tcli.Success(),
6366
)
6467
}

‎ci/integration/users_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ func TestUsers(t *testing.T) {
1414
run(t,"users-cli-tests",func(t*testing.T,ctx context.Context,c*tcli.ContainerRunner) {
1515
c.Run(ctx,"which coder").Assert(t,
1616
tcli.Success(),
17-
tcli.StdoutMatches("/usr/sbin/coder"),
1817
tcli.StderrEmpty(),
1918
)
2019

‎ci/steps/integration.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
set -eo pipefail
4+
5+
log() {
6+
echo"---$@"
7+
}
8+
9+
cd"$(git rev-parse --show-toplevel)"
10+
11+
log"building integration test image"
12+
docker build -f ./ci/integration/Dockerfile -t coder-cli-integration:latest.
13+
14+
log"starting integration tests"
15+
gotest ./ci/integration -count=1

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp