summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--build/backport-locales.go3
-rw-r--r--build/code-batch-process.go1
-rw-r--r--build/test-echo.go20
-rw-r--r--build/watch.sh (renamed from tools/watch.sh)0
-rwxr-xr-xcontrib/autoboot.sh2
-rw-r--r--contrib/mysql.sql2
-rw-r--r--contrib/pr/checkout.go267
-rw-r--r--tests/sqlite.ini.tmpl2
-rw-r--r--tools/external_renderer.go23
10 files changed, 26 insertions, 303 deletions
diff --git a/Makefile b/Makefile
index fb436b1ca8..6dedea12cc 100644
--- a/Makefile
+++ b/Makefile
@@ -131,7 +131,7 @@ TEST_TAGS ?= sqlite sqlite_unlock_notify
TAR_EXCLUDES := .git data indexers queues log node_modules $(EXECUTABLE) $(FOMANTIC_WORK_DIR)/node_modules $(DIST) $(MAKE_EVIDENCE_DIR) $(AIR_TMP_DIR) $(GO_LICENSE_TMP_DIR)
-GO_DIRS := cmd tests models modules routers build services tools
+GO_DIRS := build cmd models modules routers services tests
WEB_DIRS := web_src/js web_src/css
GO_SOURCES := $(wildcard *.go)
@@ -219,7 +219,6 @@ help:
@echo " - tidy run go mod tidy"
@echo " - test[\#TestSpecificName] run unit test"
@echo " - test-sqlite[\#TestSpecificName] run integration test for sqlite"
- @echo " - pr#<index> build and start gitea from a PR with integration test data loaded"
.PHONY: go-check
go-check:
@@ -353,7 +352,7 @@ lint-backend: golangci-lint vet editorconfig-checker
.PHONY: watch
watch:
- bash tools/watch.sh
+ bash build/watch.sh
.PHONY: watch-frontend
watch-frontend: node-check node_modules
@@ -939,10 +938,6 @@ generate-manpage:
@gzip -9 man/man1/gitea.1 && echo man/man1/gitea.1.gz created
@#TODO A small script that formats config-cheat-sheet.en-us.md nicely for use as a config man page
-.PHONY: pr\#%
-pr\#%: clean-all
- $(GO) run contrib/pr/checkout.go $*
-
.PHONY: golangci-lint
golangci-lint:
$(GO) run $(GOLANGCI_LINT_PACKAGE) run
diff --git a/build/backport-locales.go b/build/backport-locales.go
index efaae52bd4..9421b6925e 100644
--- a/build/backport-locales.go
+++ b/build/backport-locales.go
@@ -1,3 +1,6 @@
+// Copyright 2023 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
//go:build ignore
package main
diff --git a/build/code-batch-process.go b/build/code-batch-process.go
index 9cc47442b2..8556c27ad7 100644
--- a/build/code-batch-process.go
+++ b/build/code-batch-process.go
@@ -65,7 +65,6 @@ func newFileCollector(fileFilter string, batchSize int) (*fileCollector, error)
"modules",
"routers",
"services",
- "tools",
}
co.includePatterns = append(co.includePatterns, regexp.MustCompile(`.*\.go$`))
diff --git a/build/test-echo.go b/build/test-echo.go
new file mode 100644
index 0000000000..093364fcf8
--- /dev/null
+++ b/build/test-echo.go
@@ -0,0 +1,20 @@
+// Copyright 2023 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+//go:build ignore
+
+package main
+
+import (
+ "fmt"
+ "io"
+ "os"
+)
+
+func main() {
+ _, err := io.Copy(os.Stdout, os.Stdin)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error: %v", err)
+ os.Exit(1)
+ }
+}
diff --git a/tools/watch.sh b/build/watch.sh
index 61e3dc40a2..61e3dc40a2 100644
--- a/tools/watch.sh
+++ b/build/watch.sh
diff --git a/contrib/autoboot.sh b/contrib/autoboot.sh
deleted file mode 100755
index eb16d58170..0000000000
--- a/contrib/autoboot.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-su git -c "/home/git/gogs/scripts/gogs_supervisord.sh restart"
diff --git a/contrib/mysql.sql b/contrib/mysql.sql
deleted file mode 100644
index aad8beddfa..0000000000
--- a/contrib/mysql.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-DROP DATABASE IF EXISTS gitea;
-CREATE DATABASE IF NOT EXISTS gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
diff --git a/contrib/pr/checkout.go b/contrib/pr/checkout.go
deleted file mode 100644
index f12d8a9419..0000000000
--- a/contrib/pr/checkout.go
+++ /dev/null
@@ -1,267 +0,0 @@
-// Copyright 2020 The Gitea Authors. All rights reserved.
-// SPDX-License-Identifier: MIT
-
-package main
-
-/*
-Checkout a PR and load the tests data into sqlite database
-*/
-
-import (
- "context"
- "flag"
- "fmt"
- "log"
- "net/http"
- "os"
- "os/exec"
- "os/user"
- "path"
- "path/filepath"
- "runtime"
- "strconv"
- "time"
-
- "code.gitea.io/gitea/models/db"
- "code.gitea.io/gitea/models/unittest"
- gitea_git "code.gitea.io/gitea/modules/git"
- "code.gitea.io/gitea/modules/graceful"
- "code.gitea.io/gitea/modules/markup"
- "code.gitea.io/gitea/modules/markup/external"
- repo_module "code.gitea.io/gitea/modules/repository"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/modules/util"
- "code.gitea.io/gitea/routers"
- markup_service "code.gitea.io/gitea/services/markup"
-
- "github.com/go-git/go-git/v5"
- "github.com/go-git/go-git/v5/config"
- "github.com/go-git/go-git/v5/plumbing"
- "xorm.io/xorm"
-)
-
-var codeFilePath = "contrib/pr/checkout.go"
-
-func runPR() {
- log.Printf("[PR] Starting gitea ...\n")
- curDir, err := os.Getwd()
- if err != nil {
- log.Fatal(err)
- }
- setting.SetCustomPathAndConf("", "", "")
- setting.InitProviderAllowEmpty()
- setting.LoadCommonSettings()
-
- setting.RepoRootPath, err = os.MkdirTemp(os.TempDir(), "repos")
- if err != nil {
- log.Fatalf("TempDir: %v\n", err)
- }
- setting.AppDataPath, err = os.MkdirTemp(os.TempDir(), "appdata")
- if err != nil {
- log.Fatalf("TempDir: %v\n", err)
- }
- setting.AppWorkPath = curDir
- setting.StaticRootPath = curDir
- setting.GravatarSource = "https://secure.gravatar.com/avatar/"
- setting.AppURL = "http://localhost:8080/"
- setting.HTTPPort = "8080"
- setting.SSH.Domain = "localhost"
- setting.SSH.Port = 3000
- setting.InstallLock = true
- setting.SecretKey = "9pCviYTWSb"
- setting.InternalToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTI3OTU5ODN9.OQkH5UmzID2XBdwQ9TAI6Jj2t1X-wElVTjbE7aoN4I8"
- curUser, err := user.Current()
- if err != nil {
- log.Fatal(err)
- }
- setting.RunUser = curUser.Username
-
- log.Printf("[PR] Loading fixtures data ...\n")
- //models.LoadConfigs()
- /*
- setting.Database.Type = "sqlite3"
- setting.Database.Path = ":memory:"
- setting.Database.Timeout = 500
- */
- dbCfg := setting.CfgProvider.Section("database")
- dbCfg.NewKey("DB_TYPE", "sqlite3")
- dbCfg.NewKey("PATH", ":memory:")
-
- routers.InitGitServices()
- setting.Database.LogSQL = true
- // x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared")
-
- db.InitEngineWithMigration(context.Background(), func(_ *xorm.Engine) error {
- return nil
- })
- db.HasEngine = true
- // x.ShowSQL(true)
- err = unittest.InitFixtures(
- unittest.FixturesOptions{
- Dir: path.Join(curDir, "models/fixtures/"),
- },
- )
- if err != nil {
- fmt.Printf("Error initializing test database: %v\n", err)
- os.Exit(1)
- }
- unittest.LoadFixtures()
- util.RemoveAll(setting.RepoRootPath)
- util.RemoveAll(repo_module.LocalCopyPath())
- unittest.CopyDir(path.Join(curDir, "tests/gitea-repositories-meta"), setting.RepoRootPath)
-
- log.Printf("[PR] Setting up router\n")
- // routers.GlobalInit()
- external.RegisterRenderers()
- markup.Init(markup_service.ProcessorHelper())
- c := routers.NormalRoutes(graceful.GetManager().HammerContext())
-
- log.Printf("[PR] Ready for testing !\n")
- log.Printf("[PR] Login with user1, user2, user3, ... with pass: password\n")
- /*
- log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubURL)
-
- if setting.LFS.StartServer {
- log.Info("LFS server enabled")
- }
-
- if setting.EnablePprof {
- go func() {
- log.Info("Starting pprof server on localhost:6060")
- log.Info("%v", http.ListenAndServe("localhost:6060", nil))
- }()
- }
- */
-
- // Start the server
- http.ListenAndServe(":8080", c)
-
- log.Printf("[PR] Cleaning up ...\n")
- /*
- if err = util.RemoveAll(setting.Indexer.IssuePath); err != nil {
- fmt.Printf("util.RemoveAll: %v\n", err)
- os.Exit(1)
- }
- if err = util.RemoveAll(setting.Indexer.RepoPath); err != nil {
- fmt.Printf("Unable to remove repo indexer: %v\n", err)
- os.Exit(1)
- }
- */
- if err = util.RemoveAll(setting.RepoRootPath); err != nil {
- log.Fatalf("util.RemoveAll: %v\n", err)
- }
- if err = util.RemoveAll(setting.AppDataPath); err != nil {
- log.Fatalf("util.RemoveAll: %v\n", err)
- }
-}
-
-func main() {
- runPRFlag := flag.Bool("run", false, "Run the PR code")
- flag.Parse()
- if *runPRFlag {
- runPR()
- return
- }
-
- // To force checkout (e.g. Windows complains about unclean work tree) set env variable FORCE=true
- force, err := strconv.ParseBool(os.Getenv("FORCE"))
- if err != nil {
- force = false
- }
-
- // Otherwise checkout PR
- if len(os.Args) != 2 {
- log.Fatal("Need only one arg: the PR number")
- }
- pr := os.Args[1]
-
- codeFilePath = filepath.FromSlash(codeFilePath) // Convert to running OS
-
- // Copy this file if it will not exist in the PR branch
- dat, err := os.ReadFile(codeFilePath)
- if err != nil {
- log.Fatalf("Failed to cache this code file : %v", err)
- }
-
- repo, err := git.PlainOpen(".")
- if err != nil {
- log.Fatalf("Failed to open the repo : %v", err)
- }
-
- // Find remote upstream
- remotes, err := repo.Remotes()
- if err != nil {
- log.Fatalf("Failed to list remotes of repo : %v", err)
- }
- remoteUpstream := "origin" // Default
- for _, r := range remotes {
- if r.Config().URLs[0] == "https://github.com/go-gitea/gitea.git" ||
- r.Config().URLs[0] == "https://github.com/go-gitea/gitea" ||
- r.Config().URLs[0] == "git@github.com:go-gitea/gitea.git" { // fetch at index 0
- remoteUpstream = r.Config().Name
- break
- }
- }
-
- branch := fmt.Sprintf("pr-%s-%d", pr, time.Now().Unix())
- branchRef := plumbing.NewBranchReferenceName(branch)
-
- log.Printf("Fetching PR #%s in %s\n", pr, branch)
- if runtime.GOOS == "windows" {
- // Use git cli command for windows
- runCmd("git", "fetch", remoteUpstream, fmt.Sprintf("pull/%s/head:%s", pr, branch))
- } else {
- ref := fmt.Sprintf("%s%s/head:%s", gitea_git.PullPrefix, pr, branchRef)
- err = repo.Fetch(&git.FetchOptions{
- RemoteName: remoteUpstream,
- RefSpecs: []config.RefSpec{
- config.RefSpec(ref),
- },
- })
- if err != nil {
- log.Fatalf("Failed to fetch %s from %s : %v", ref, remoteUpstream, err)
- }
- }
-
- tree, err := repo.Worktree()
- if err != nil {
- log.Fatalf("Failed to parse git tree : %v", err)
- }
- log.Printf("Checkout PR #%s in %s\n", pr, branch)
- err = tree.Checkout(&git.CheckoutOptions{
- Branch: branchRef,
- Force: force,
- })
- if err != nil {
- log.Fatalf("Failed to checkout %s : %v", branch, err)
- }
-
- // Copy this file if not exist
- if _, err := os.Stat(codeFilePath); os.IsNotExist(err) {
- err = os.MkdirAll(filepath.Dir(codeFilePath), 0o755)
- if err != nil {
- log.Fatalf("Failed to duplicate this code file in PR : %v", err)
- }
- err = os.WriteFile(codeFilePath, dat, 0o644)
- if err != nil {
- log.Fatalf("Failed to duplicate this code file in PR : %v", err)
- }
- }
- // Force build of js, css, bin, ...
- runCmd("make", "build")
- // Start with integration test
- runCmd("go", "run", "-mod", "vendor", "-tags", "sqlite sqlite_unlock_notify", codeFilePath, "-run")
-}
-
-func runCmd(cmd ...string) {
- log.Printf("Executing : %s ...\n", cmd)
- c := exec.Command(cmd[0], cmd[1:]...)
- c.Stdout = os.Stdout
- c.Stderr = os.Stderr
- if err := c.Start(); err != nil {
- log.Panicln(err)
- }
- if err := c.Wait(); err != nil {
- log.Panicln(err)
- }
-}
diff --git a/tests/sqlite.ini.tmpl b/tests/sqlite.ini.tmpl
index f6f8c70ed9..d2e4a2d5ae 100644
--- a/tests/sqlite.ini.tmpl
+++ b/tests/sqlite.ini.tmpl
@@ -111,6 +111,6 @@ ENABLED = true
[markup.html]
ENABLED = true
FILE_EXTENSIONS = .html
-RENDER_COMMAND = `go run tools/external_renderer.go`
+RENDER_COMMAND = `go run build/test-echo.go`
IS_INPUT_FILE = false
RENDER_CONTENT_MODE=sanitized
diff --git a/tools/external_renderer.go b/tools/external_renderer.go
deleted file mode 100644
index c1fcc78f50..0000000000
--- a/tools/external_renderer.go
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// SPDX-License-Identifier: MIT
-
-// gobuild: external_renderer
-
-package main
-
-import (
- "fmt"
- "io"
- "os"
-)
-
-func main() {
- if len(os.Args) > 1 {
- fmt.Print(os.Args[1])
- } else {
- _, err := io.Copy(os.Stdout, os.Stdin)
- if err != nil {
- fmt.Println(err)
- }
- }
-}