Skip to content

Commit 87a69c0

Browse files
committed
this is sedia refactor
1 parent fb890be commit 87a69c0

File tree

5 files changed

+191
-219
lines changed

5 files changed

+191
-219
lines changed

.github/workflows/test-update.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ jobs:
2929
env:
3030
GH_TOKEN: ${{ secrets.ARDUINOBOT_TOKEN }}
3131
run: |
32-
go test -v ./internal/testtools/test_deb_update -- --arch amd64
32+
go test -count=1 --timeout 30m -v ./internal/e2e/updatetest -- --arch amd64
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
package updatetest
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"os"
7+
"testing"
8+
"time"
9+
10+
"github.com/stretchr/testify/require"
11+
)
12+
13+
var arch = flag.String("arch", "amd64", "target architecture")
14+
15+
const dockerFile = "test.Dockerfile"
16+
const daemonHost = "127.0.0.1:8800"
17+
18+
func TestUpdatePackage(t *testing.T) {
19+
fmt.Printf("***** ARCH %s ***** \n", *arch)
20+
21+
t.Run("Stable To Current", func(t *testing.T) {
22+
t.Cleanup(func() { os.RemoveAll("build") })
23+
24+
tagAppCli := fetchDebPackageLatest(t, "build/stable", "arduino-app-cli")
25+
fetchDebPackageLatest(t, "build/stable", "arduino-router")
26+
majorTag := genMajorTag(t, tagAppCli)
27+
28+
fmt.Printf("Updating from stable version %s to unstable version %s \n", tagAppCli, majorTag)
29+
fmt.Printf("Building local deb version %s \n", majorTag)
30+
buildDebVersion(t, "build", majorTag, *arch)
31+
32+
const dockerImageName = "apt-test-update-image"
33+
fmt.Println("**** BUILD docker image *****")
34+
buildDockerImage(t, dockerFile, dockerImageName, *arch)
35+
//TODO: t cleanup remove docker image
36+
37+
t.Run("CLI Command", func(t *testing.T) {
38+
const containerName = "apt-test-update"
39+
t.Cleanup(func() { stopDockerContainer(t, containerName) })
40+
41+
fmt.Println("**** RUN docker image *****")
42+
startDockerContainer(t, containerName, dockerImageName)
43+
waitForPort(t, daemonHost, 5*time.Second)
44+
45+
preUpdateVersion := getAppCliVersion(t, containerName)
46+
require.Equal(t, "v"+preUpdateVersion, tagAppCli)
47+
runSystemUpdate(t, containerName)
48+
postUpdateVersion := getAppCliVersion(t, containerName)
49+
require.Equal(t, "v"+postUpdateVersion, majorTag)
50+
})
51+
52+
t.Run("HTTP Request", func(t *testing.T) {
53+
const containerName = "apt-test-update-http"
54+
t.Cleanup(func() { stopDockerContainer(t, containerName) })
55+
56+
startDockerContainer(t, containerName, dockerImageName)
57+
waitForPort(t, daemonHost, 5*time.Second)
58+
59+
preUpdateVersion := getAppCliVersion(t, containerName)
60+
require.Equal(t, "v"+preUpdateVersion, tagAppCli)
61+
62+
putUpdateRequest(t, daemonHost)
63+
waitForUpgrade(t, daemonHost)
64+
65+
postUpdateVersion := getAppCliVersion(t, containerName)
66+
require.Equal(t, "v"+postUpdateVersion, majorTag)
67+
})
68+
69+
})
70+
71+
t.Run("CurrentToStable", func(t *testing.T) {
72+
t.Cleanup(func() { os.RemoveAll("build") })
73+
74+
tagAppCli := fetchDebPackageLatest(t, "build", "arduino-app-cli")
75+
fetchDebPackageLatest(t, "build/stable", "arduino-router")
76+
minorTag := genMinorTag(t, tagAppCli)
77+
78+
fmt.Printf("Updating from unstable version %s to stable version %s \n", minorTag, tagAppCli)
79+
fmt.Printf("Building local deb version %s \n", minorTag)
80+
buildDebVersion(t, "build/stable", minorTag, *arch)
81+
82+
fmt.Println("**** BUILD docker image *****")
83+
const dockerImageName = "test-apt-update-unstable-image"
84+
85+
buildDockerImage(t, dockerFile, dockerImageName, *arch)
86+
//TODO: t cleanup remove docker image
87+
88+
t.Run("CLI Command", func(t *testing.T) {
89+
const containerName = "apt-test-update-unstable"
90+
t.Cleanup(func() { stopDockerContainer(t, containerName) })
91+
92+
fmt.Println("**** RUN docker image *****")
93+
startDockerContainer(t, containerName, dockerImageName)
94+
waitForPort(t, daemonHost, 5*time.Second)
95+
96+
preUpdateVersion := getAppCliVersion(t, containerName)
97+
require.Equal(t, "v"+preUpdateVersion, minorTag)
98+
runSystemUpdate(t, containerName)
99+
postUpdateVersion := getAppCliVersion(t, containerName)
100+
require.Equal(t, "v"+postUpdateVersion, tagAppCli)
101+
})
102+
103+
t.Run("HTTP Request", func(t *testing.T) {
104+
const containerName = "apt-test-update--unstable-http"
105+
t.Cleanup(func() { stopDockerContainer(t, containerName) })
106+
107+
startDockerContainer(t, containerName, dockerImageName)
108+
waitForPort(t, daemonHost, 5*time.Second)
109+
110+
preUpdateVersion := getAppCliVersion(t, containerName)
111+
require.Equal(t, "v"+preUpdateVersion, minorTag)
112+
113+
putUpdateRequest(t, daemonHost)
114+
waitForUpgrade(t, daemonHost)
115+
116+
postUpdateVersion := getAppCliVersion(t, containerName)
117+
require.Equal(t, "v"+postUpdateVersion, tagAppCli)
118+
})
119+
120+
})
121+
122+
}

0 commit comments

Comments
 (0)