mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-22 00:16:29 +00:00
Nits Collected over last month (#595)
- add coverage.out - add context queue - fix misspell - sanitize config: WOODPECKER_GITEA_URL - storage backend migration should have no xorm session within migration function
This commit is contained in:
parent
7ab33f62f7
commit
4cbdacb21c
7 changed files with 35 additions and 31 deletions
10
Makefile
10
Makefile
|
@ -51,16 +51,16 @@ lint-frontend:
|
||||||
(cd web/; yarn lint --quiet)
|
(cd web/; yarn lint --quiet)
|
||||||
|
|
||||||
test-agent:
|
test-agent:
|
||||||
$(DOCKER_RUN) go test -race -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/agent github.com/woodpecker-ci/woodpecker/agent/...
|
$(DOCKER_RUN) go test -race -cover -coverprofile coverage.out -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/agent github.com/woodpecker-ci/woodpecker/agent/...
|
||||||
|
|
||||||
test-server:
|
test-server:
|
||||||
$(DOCKER_RUN) go test -race -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/server $(shell go list github.com/woodpecker-ci/woodpecker/server/... | grep -v '/store')
|
$(DOCKER_RUN) go test -race -cover -coverprofile coverage.out -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/server $(shell go list github.com/woodpecker-ci/woodpecker/server/... | grep -v '/store')
|
||||||
|
|
||||||
test-cli:
|
test-cli:
|
||||||
$(DOCKER_RUN) go test -race -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/cli github.com/woodpecker-ci/woodpecker/cli/...
|
$(DOCKER_RUN) go test -race -cover -coverprofile coverage.out -timeout 30s github.com/woodpecker-ci/woodpecker/cmd/cli github.com/woodpecker-ci/woodpecker/cli/...
|
||||||
|
|
||||||
test-server-datastore:
|
test-server-datastore:
|
||||||
$(DOCKER_RUN) go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/...
|
$(DOCKER_RUN) go test -cover -coverprofile coverage.out -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/...
|
||||||
|
|
||||||
test-frontend: frontend-dependencies
|
test-frontend: frontend-dependencies
|
||||||
(cd web/; yarn run lint)
|
(cd web/; yarn run lint)
|
||||||
|
@ -69,7 +69,7 @@ test-frontend: frontend-dependencies
|
||||||
(cd web/; yarn run test)
|
(cd web/; yarn run test)
|
||||||
|
|
||||||
test-lib:
|
test-lib:
|
||||||
$(DOCKER_RUN) go test -race -timeout 30s $(shell go list ./... | grep -v '/cmd\|/agent\|/cli\|/server')
|
$(DOCKER_RUN) go test -race -cover -coverprofile coverage.out -timeout 30s $(shell go list ./... | grep -v '/cmd\|/agent\|/cli\|/server')
|
||||||
|
|
||||||
test: test-agent test-server test-server-datastore test-cli test-lib test-frontend
|
test: test-agent test-server test-server-datastore test-cli test-lib test-frontend
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ func loop(c *cli.Context) error {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// load enginge (e.g. init api client)
|
// load engine (e.g. init api client)
|
||||||
err = engine.Load()
|
err = engine.Load()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msg("cannot load backend engine")
|
log.Error().Err(err).Msg("cannot load backend engine")
|
||||||
|
|
|
@ -17,7 +17,9 @@ package main
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
@ -153,11 +155,11 @@ func fallbackSqlite3File(path string) (string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupQueue(c *cli.Context, s store.Store) queue.Queue {
|
func setupQueue(c *cli.Context, s store.Store) queue.Queue {
|
||||||
return queue.WithTaskStore(queue.New(), s)
|
return queue.WithTaskStore(queue.New(c.Context), s)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupSecretService(c *cli.Context, s store.Store) model.SecretService {
|
func setupSecretService(c *cli.Context, s store.Store) model.SecretService {
|
||||||
return secrets.New(s)
|
return secrets.New(c.Context, s)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupRegistryService(c *cli.Context, s store.Store) model.RegistryService {
|
func setupRegistryService(c *cli.Context, s store.Store) model.RegistryService {
|
||||||
|
@ -221,8 +223,12 @@ func setupGogs(c *cli.Context) (remote.Remote, error) {
|
||||||
|
|
||||||
// helper function to setup the Gitea remote from the CLI arguments.
|
// helper function to setup the Gitea remote from the CLI arguments.
|
||||||
func setupGitea(c *cli.Context) (remote.Remote, error) {
|
func setupGitea(c *cli.Context) (remote.Remote, error) {
|
||||||
|
server, err := url.Parse(c.String("gitea-server"))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
opts := gitea.Opts{
|
opts := gitea.Opts{
|
||||||
URL: c.String("gitea-server"),
|
URL: strings.TrimRight(server.String(), "/"),
|
||||||
Context: c.String("gitea-context"),
|
Context: c.String("gitea-context"),
|
||||||
Username: c.String("gitea-git-username"),
|
Username: c.String("gitea-git-username"),
|
||||||
Password: c.String("gitea-git-password"),
|
Password: c.String("gitea-git-password"),
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
package secrets
|
package secrets
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/woodpecker-ci/woodpecker/server/model"
|
"github.com/woodpecker-ci/woodpecker/server/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
type builtin struct {
|
type builtin struct {
|
||||||
|
context.Context
|
||||||
store model.SecretStore
|
store model.SecretStore
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new local secret service.
|
// New returns a new local secret service.
|
||||||
func New(store model.SecretStore) model.SecretService {
|
func New(ctx context.Context, store model.SecretStore) model.SecretService {
|
||||||
return &builtin{store}
|
return &builtin{store: store, Context: ctx}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *builtin) SecretFind(repo *model.Repo, name string) (*model.Secret, error) {
|
func (b *builtin) SecretFind(repo *model.Repo, name string) (*model.Secret, error) {
|
||||||
|
|
|
@ -42,7 +42,7 @@ type fifo struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new fifo queue.
|
// New returns a new fifo queue.
|
||||||
func New() Queue {
|
func New(ctx context.Context) Queue {
|
||||||
return &fifo{
|
return &fifo{
|
||||||
workers: map[*worker]struct{}{},
|
workers: map[*worker]struct{}{},
|
||||||
running: map[string]*entry{},
|
running: map[string]*entry{},
|
||||||
|
|
|
@ -15,7 +15,7 @@ var noContext = context.Background()
|
||||||
func TestFifo(t *testing.T) {
|
func TestFifo(t *testing.T) {
|
||||||
want := &Task{ID: "1"}
|
want := &Task{ID: "1"}
|
||||||
|
|
||||||
q := New()
|
q := New(context.Background())
|
||||||
assert.NoError(t, q.Push(noContext, want))
|
assert.NoError(t, q.Push(noContext, want))
|
||||||
info := q.Info(noContext)
|
info := q.Info(noContext)
|
||||||
if len(info.Pending) != 1 {
|
if len(info.Pending) != 1 {
|
||||||
|
@ -54,7 +54,7 @@ func TestFifo(t *testing.T) {
|
||||||
func TestFifoExpire(t *testing.T) {
|
func TestFifoExpire(t *testing.T) {
|
||||||
want := &Task{ID: "1"}
|
want := &Task{ID: "1"}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
q.extension = 0
|
q.extension = 0
|
||||||
assert.NoError(t, q.Push(noContext, want))
|
assert.NoError(t, q.Push(noContext, want))
|
||||||
info := q.Info(noContext)
|
info := q.Info(noContext)
|
||||||
|
@ -79,7 +79,7 @@ func TestFifoExpire(t *testing.T) {
|
||||||
func TestFifoWait(t *testing.T) {
|
func TestFifoWait(t *testing.T) {
|
||||||
want := &Task{ID: "1"}
|
want := &Task{ID: "1"}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.Push(noContext, want))
|
assert.NoError(t, q.Push(noContext, want))
|
||||||
|
|
||||||
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
@ -103,7 +103,7 @@ func TestFifoWait(t *testing.T) {
|
||||||
func TestFifoEvict(t *testing.T) {
|
func TestFifoEvict(t *testing.T) {
|
||||||
t1 := &Task{ID: "1"}
|
t1 := &Task{ID: "1"}
|
||||||
|
|
||||||
q := New()
|
q := New(context.Background())
|
||||||
assert.NoError(t, q.Push(noContext, t1))
|
assert.NoError(t, q.Push(noContext, t1))
|
||||||
info := q.Info(noContext)
|
info := q.Info(noContext)
|
||||||
if len(info.Pending) != 1 {
|
if len(info.Pending) != 1 {
|
||||||
|
@ -132,7 +132,7 @@ func TestFifoDependencies(t *testing.T) {
|
||||||
DepStatus: make(map[string]string),
|
DepStatus: make(map[string]string),
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task1}))
|
||||||
|
|
||||||
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
@ -168,7 +168,7 @@ func TestFifoErrors(t *testing.T) {
|
||||||
RunOn: []string{"success", "failure"},
|
RunOn: []string{"success", "failure"},
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
@ -217,7 +217,7 @@ func TestFifoErrors2(t *testing.T) {
|
||||||
DepStatus: make(map[string]string),
|
DepStatus: make(map[string]string),
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
for i := 0; i < 2; i++ {
|
for i := 0; i < 2; i++ {
|
||||||
|
@ -264,7 +264,7 @@ func TestFifoErrorsMultiThread(t *testing.T) {
|
||||||
DepStatus: make(map[string]string),
|
DepStatus: make(map[string]string),
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
obtainedWorkCh := make(chan *Task)
|
obtainedWorkCh := make(chan *Task)
|
||||||
|
@ -354,7 +354,7 @@ func TestFifoTransitiveErrors(t *testing.T) {
|
||||||
DepStatus: make(map[string]string),
|
DepStatus: make(map[string]string),
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
@ -404,7 +404,7 @@ func TestFifoCancel(t *testing.T) {
|
||||||
RunOn: []string{"success", "failure"},
|
RunOn: []string{"success", "failure"},
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
_, _ = q.Poll(noContext, func(*Task) bool { return true })
|
_, _ = q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
@ -424,7 +424,7 @@ func TestFifoPause(t *testing.T) {
|
||||||
ID: "1",
|
ID: "1",
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -456,7 +456,7 @@ func TestFifoPauseResume(t *testing.T) {
|
||||||
ID: "1",
|
ID: "1",
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
q.Pause()
|
q.Pause()
|
||||||
assert.NoError(t, q.Push(noContext, task1))
|
assert.NoError(t, q.Push(noContext, task1))
|
||||||
q.Resume()
|
q.Resume()
|
||||||
|
@ -482,7 +482,7 @@ func TestWaitingVsPending(t *testing.T) {
|
||||||
RunOn: []string{"success", "failure"},
|
RunOn: []string{"success", "failure"},
|
||||||
}
|
}
|
||||||
|
|
||||||
q := New().(*fifo)
|
q := New(context.Background()).(*fifo)
|
||||||
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
assert.NoError(t, q.PushAtOnce(noContext, []*Task{task2, task3, task1}))
|
||||||
|
|
||||||
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
got, _ := q.Poll(noContext, func(*Task) bool { return true })
|
||||||
|
|
|
@ -45,11 +45,6 @@ var fixPRSecretEventName = task{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
if err := sess.Begin(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return sess.Commit()
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue