diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-03-26 04:22:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-25 16:22:51 -0400 |
commit | 5b5f7b756bfca7627b5d1326bf7fe8ef13667b7a (patch) | |
tree | a26365636e55f2aca5ea77cc34da1459d1acf70d /contrib/pr/checkout.go | |
parent | 73b4010fcd93e921b626a6f51de7a148de276283 (diff) | |
download | gitea-5b5f7b756bfca7627b5d1326bf7fe8ef13667b7a.tar.gz gitea-5b5f7b756bfca7627b5d1326bf7fe8ef13667b7a.zip |
Clean some legacy files and move some build files (#23699)
* Clean the "tools" directory. The "tools" directory contains only two
files, move them.
* The "external_renderer.go" works like "cat" command to echo Stdin to
Stdout , to help testing.
* The `// gobuild: external_renderer` is incorrect, there should be no
space: `//gobuild: external_renderer`
* The `fmt.Print(os.Args[1])` is not a well-defined behavior, and it's
never used.
* The "watch.sh" is for "make watch", it's somewhat related to "build"
* After this PR, there is no "tools" directory, the project root
directory looks slightly simpler than before.
* Remove the legacy "contrib/autoboot.sh", there is no
"gogs_supervisord.sh"
* Remove the legacy "contrib/mysql.sql", it's never mentioned anywhere.
* Remove the legacy "contrib/pr/checkout.go", it has been broken for
long time, and it introduces unnecessary dependencies of the main code
base.
Diffstat (limited to 'contrib/pr/checkout.go')
-rw-r--r-- | contrib/pr/checkout.go | 267 |
1 files changed, 0 insertions, 267 deletions
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) - } -} |