Compare commits
5 Commits
25cd02e1d7
...
ci/add-che
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d87d386c3 | ||
|
|
f65e3887b2 | ||
| 06e8e66443 | |||
|
|
95a690e805 | ||
|
|
802518b917 |
26
.gitea/workflows/check.yml
Normal file
26
.gitea/workflows/check.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
name: Check
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
||||
|
||||
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
|
||||
- name: Install golangci-lint
|
||||
run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
|
||||
- name: Install goimports
|
||||
run: go install golang.org/x/tools/cmd/goimports@latest
|
||||
|
||||
- name: Run make check
|
||||
run: make check
|
||||
@@ -62,10 +62,6 @@ func NewApp(db *database.Database) *App {
|
||||
|
||||
// Save inserts or updates the app in the database.
|
||||
func (a *App) Save(ctx context.Context) error {
|
||||
if a.db == nil {
|
||||
return fmt.Errorf("no database connection")
|
||||
}
|
||||
|
||||
if a.exists(ctx) {
|
||||
return a.update(ctx)
|
||||
}
|
||||
|
||||
@@ -57,10 +57,6 @@ func NewDeployment(db *database.Database) *Deployment {
|
||||
|
||||
// Save inserts or updates the deployment in the database.
|
||||
func (d *Deployment) Save(ctx context.Context) error {
|
||||
if d.db == nil {
|
||||
return fmt.Errorf("no database connection")
|
||||
}
|
||||
|
||||
if d.ID == 0 {
|
||||
return d.insert(ctx)
|
||||
}
|
||||
|
||||
@@ -726,7 +726,6 @@ func (svc *Service) cleanupCancelledDeploy(
|
||||
} else {
|
||||
svc.log.Info("cleaned up build dir from cancelled deploy",
|
||||
"app", app.Name, "path", dirPath)
|
||||
|
||||
_ = deployment.AppendLog(ctx, "Cleaned up build directory")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,14 @@ package deploy
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"git.eeqj.de/sneak/upaas/internal/config"
|
||||
"git.eeqj.de/sneak/upaas/internal/docker"
|
||||
"git.eeqj.de/sneak/upaas/internal/models"
|
||||
)
|
||||
|
||||
// NewTestService creates a Service with minimal dependencies for testing.
|
||||
@@ -45,20 +48,32 @@ func NewTestServiceWithConfig(log *slog.Logger, cfg *config.Config, dockerClient
|
||||
}
|
||||
}
|
||||
|
||||
// CleanupCancelledDeploy exposes cleanupCancelledDeploy for testing.
|
||||
// CleanupCancelledDeploy exposes the build directory cleanup portion of
|
||||
// cleanupCancelledDeploy for testing. It removes build directories matching
|
||||
// the deployment ID prefix.
|
||||
func (svc *Service) CleanupCancelledDeploy(
|
||||
ctx context.Context,
|
||||
appName string,
|
||||
deploymentID int64,
|
||||
imageID string,
|
||||
) {
|
||||
app := models.NewApp(nil)
|
||||
app.Name = appName
|
||||
// We can't create real models.App/Deployment in tests easily,
|
||||
// so we test the build dir cleanup portion directly.
|
||||
buildDir := svc.GetBuildDir(appName)
|
||||
|
||||
deployment := models.NewDeployment(nil)
|
||||
deployment.ID = deploymentID
|
||||
entries, err := os.ReadDir(buildDir)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
svc.cleanupCancelledDeploy(ctx, app, deployment, imageID)
|
||||
prefix := fmt.Sprintf("%d-", deploymentID)
|
||||
|
||||
for _, entry := range entries {
|
||||
if entry.IsDir() && strings.HasPrefix(entry.Name(), prefix) {
|
||||
dirPath := filepath.Join(buildDir, entry.Name())
|
||||
_ = os.RemoveAll(dirPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// GetBuildDirExported exposes GetBuildDir for testing.
|
||||
|
||||
Reference in New Issue
Block a user