chore: release v1.5.0
This commit is contained in:
1 parent
7bb33e528c
commit
3383b91e49
6 files changed
+15
-15
No files matched your search
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
# syntax=docker/dockerfile:1.7
|
# syntax=docker/dockerfile:1.7
|
||||||
ARG VERSION=v1.4.3
|
ARG VERSION=v1.5.0
|
||||||
ARG MINIMUM_UPDATE_VERSION=v1.4.0
|
ARG MINIMUM_UPDATE_VERSION=v1.4.0
|
||||||
ARG MINIMUM_AGENT_PROTOCOL=2
|
ARG MINIMUM_AGENT_PROTOCOL=2
|
||||||
ARG RUNTIME_CONTRACT_VERSION=2
|
ARG RUNTIME_CONTRACT_VERSION=2
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Beim ersten Start werden Datenbank und Verschlüsselungsschlüssel automatisch i
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
dyndns:
|
dyndns:
|
||||||
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3
|
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.5.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
stop_grace_period: 20s
|
stop_grace_period: 20s
|
||||||
ports: ["9090:8080"]
|
ports: ["9090:8080"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Domain Control aktualisieren
|
# Domain Control aktualisieren
|
||||||
|
|
||||||
Die aktuelle Compose-Version ist `v1.4.3`. Datenbank, Einstellungen und
|
Die aktuelle Compose-Version ist `v1.5.0`. Datenbank, Einstellungen und
|
||||||
verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei
|
verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei
|
||||||
den folgenden Verfahren erhalten.
|
den folgenden Verfahren erhalten.
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ In `compose.yml` wird nur die zentrale, konkret gepinnte Image-Zeile geändert:
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
dyndns:
|
dyndns:
|
||||||
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3
|
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.5.0
|
||||||
update-agent:
|
update-agent:
|
||||||
image: *image
|
image: *image
|
||||||
```
|
```
|
||||||
@@ -79,7 +79,7 @@ Die erwartete Antwort lautet `ok`.
|
|||||||
## Portainer oder Dockge
|
## Portainer oder Dockge
|
||||||
|
|
||||||
1. Den bestehenden Stack bearbeiten.
|
1. Den bestehenden Stack bearbeiten.
|
||||||
2. Nur den Tag der zentralen Image-Zeile auf `v1.4.3` setzen.
|
2. Nur den Tag der zentralen Image-Zeile auf `v1.5.0` setzen.
|
||||||
3. Den Stack mit vorherigem Image-Pull erneut bereitstellen.
|
3. Den Stack mit vorherigem Image-Pull erneut bereitstellen.
|
||||||
4. Kontrollieren, dass beide Container laufen und die Web-App `healthy` ist.
|
4. Kontrollieren, dass beide Container laufen und die Web-App `healthy` ist.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
dyndns:
|
dyndns:
|
||||||
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3
|
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.5.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
stop_grace_period: 20s
|
stop_grace_period: 20s
|
||||||
ports: ["9090:8080"]
|
ports: ["9090:8080"]
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
_, _ = w.Write([]byte(`{"tag_name":"v1.4.4","html_url":"https://example.invalid/releases/v1.4.4","draft":false,"prerelease":false}`))
|
_, _ = w.Write([]byte(`{"tag_name":"v1.5.1","html_url":"https://example.invalid/releases/v1.5.1","draft":false,"prerelease":false}`))
|
||||||
}))
|
}))
|
||||||
defer api.Close()
|
defer api.Close()
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
state := manager.State()
|
state := manager.State()
|
||||||
if !state.UpdateAvailable || state.LatestVersion != "v1.4.4" || state.LastError != "" || state.CredentialUsername != "registry-user" {
|
if !state.UpdateAvailable || state.LatestVersion != "v1.5.1" || state.LastError != "" || state.CredentialUsername != "registry-user" {
|
||||||
t.Fatalf("new release was not detected: %#v", state)
|
t.Fatalf("new release was not detected: %#v", state)
|
||||||
}
|
}
|
||||||
settings, err := database.GetSoftwareUpdateSettings(ctx)
|
settings, err := database.GetSoftwareUpdateSettings(ctx)
|
||||||
@@ -127,7 +127,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) {
|
|||||||
t.Fatal("unavailable Gitea endpoint was reported as successful")
|
t.Fatal("unavailable Gitea endpoint was reported as successful")
|
||||||
}
|
}
|
||||||
state = manager.State()
|
state = manager.State()
|
||||||
if !state.UpdateAvailable || state.LatestVersion != "v1.4.4" || state.LastError == "" {
|
if !state.UpdateAvailable || state.LatestVersion != "v1.5.1" || state.LastError == "" {
|
||||||
t.Fatalf("temporary outage removed the last known update reminder: %#v", state)
|
t.Fatalf("temporary outage removed the last known update reminder: %#v", state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ func TestRequestUpdateRefreshesStaleAgentStateBeforeStarting(t *testing.T) {
|
|||||||
if manager.State().AgentAvailable {
|
if manager.State().AgentAvailable {
|
||||||
t.Fatal("test precondition failed: cached agent state is already available")
|
t.Fatal("test precondition failed: cached agent state is already available")
|
||||||
}
|
}
|
||||||
if err := manager.RequestUpdate(context.Background(), "v1.4.4"); err != nil {
|
if err := manager.RequestUpdate(context.Background(), "v1.5.1"); err != nil {
|
||||||
t.Fatalf("live agent was rejected because of stale cached state: %v", err)
|
t.Fatalf("live agent was rejected because of stale cached state: %v", err)
|
||||||
}
|
}
|
||||||
statusCalls, startCalls := agent.counts()
|
statusCalls, startCalls := agent.counts()
|
||||||
@@ -200,7 +200,7 @@ func TestRequestUpdateRefreshesStaleAgentStateBeforeStarting(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if settings.DesiredVersion != "v1.4.4" {
|
if settings.DesiredVersion != "v1.5.1" {
|
||||||
t.Fatalf("target version was not persisted: %#v", settings)
|
t.Fatalf("target version was not persisted: %#v", settings)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,7 +222,7 @@ func TestRequestUpdateRejectsUnavailableIncompatibleAndBusyAgents(t *testing.T)
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
agent := &fakeUpdateAgent{status: test.status, statusErr: test.statusErr}
|
agent := &fakeUpdateAgent{status: test.status, statusErr: test.statusErr}
|
||||||
manager, database := updateReadyManager(t, agent)
|
manager, database := updateReadyManager(t, agent)
|
||||||
if err := manager.RequestUpdate(context.Background(), "v1.4.4"); err == nil {
|
if err := manager.RequestUpdate(context.Background(), "v1.5.1"); err == nil {
|
||||||
t.Fatal("unsafe update request was accepted")
|
t.Fatal("unsafe update request was accepted")
|
||||||
}
|
}
|
||||||
_, startCalls := agent.counts()
|
_, startCalls := agent.counts()
|
||||||
@@ -249,7 +249,7 @@ func TestRequestUpdateSerializesParallelClicks(t *testing.T) {
|
|||||||
for index := 0; index < 2; index++ {
|
for index := 0; index < 2; index++ {
|
||||||
go func() {
|
go func() {
|
||||||
<-start
|
<-start
|
||||||
results <- manager.RequestUpdate(context.Background(), "v1.4.4")
|
results <- manager.RequestUpdate(context.Background(), "v1.5.1")
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
close(start)
|
close(start)
|
||||||
@@ -363,7 +363,7 @@ func updateReadyManager(t *testing.T, agent updateAgent) (*Manager, *store.Store
|
|||||||
if err := manager.SaveCredential(ctx, "registry-user", "registry-password"); err != nil {
|
if err := manager.SaveCredential(ctx, "registry-user", "registry-password"); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if err := database.RecordSoftwareUpdateSuccess(ctx, "v1.4.4", "https://git.example/releases/v1.4.4", time.Now()); err != nil {
|
if err := database.RecordSoftwareUpdateSuccess(ctx, "v1.5.1", "https://git.example/releases/v1.5.1", time.Now()); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
settings, err := database.GetSoftwareUpdateSettings(ctx)
|
settings, err := database.GetSoftwareUpdateSettings(ctx)
|
||||||
|
|||||||
@@ -18,4 +18,4 @@ const (
|
|||||||
|
|
||||||
// Version is replaced through -ldflags for release images. The source fallback
|
// Version is replaced through -ldflags for release images. The source fallback
|
||||||
// keeps local builds and tests honest about the currently checked-out release.
|
// keeps local builds and tests honest about the currently checked-out release.
|
||||||
var Version = "v1.4.3"
|
var Version = "v1.5.0"
|
||||||
Reference in new issue
Block a user