mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-10-27 00:26:15 +01:00
77 lines
2.0 KiB
Markdown
77 lines
2.0 KiB
Markdown
How to build and run from the source tree
|
|
========
|
|
|
|
First of all, Install [sbt](https://www.scala-sbt.org/index.html).
|
|
|
|
```shell
|
|
$ brew install sbt
|
|
```
|
|
|
|
Run for Development
|
|
--------
|
|
|
|
If you want to test GitBucket, type the following command in the root directory of the source tree.
|
|
|
|
```shell
|
|
$ sbt ~container:start
|
|
```
|
|
|
|
Then access `http://localhost:8080/` in your browser. The default administrator account is `root` and password is `root`.
|
|
|
|
Source code modifications are detected and a reloading happens automatically.
|
|
You can modify the logging configuration by editing `src/main/resources/logback-dev.xml`.
|
|
|
|
Note that HttpSession is cleared when auto-reloading happened.
|
|
This is a bit annoying when developing features that requires sign-in.
|
|
You can keep HttpSession even if GitBucket is restarted by enabling this configuration in `build.sbt`:
|
|
https://github.com/gitbucket/gitbucket/blob/3dcc0aee3c4413b05be7c03476626cb202674afc/build.sbt#L292
|
|
|
|
Or by launching GitBucket with the following command:
|
|
```shell
|
|
sbt '; set Container/javaOptions += "-Ddev-features=keep-session" ; ~container:start'
|
|
```
|
|
|
|
Note that this feature serializes HttpSession on the local disk and assigns all requests to the same session
|
|
which means you cannot test multi users behavior in this mode.
|
|
|
|
Build war file
|
|
--------
|
|
|
|
To build a war file, run the following command:
|
|
|
|
```shell
|
|
$ sbt package
|
|
```
|
|
|
|
`gitbucket_2.13-x.x.x.war` is generated into `target/scala-2.13`.
|
|
|
|
To build an executable war file, run
|
|
|
|
```shell
|
|
$ sbt executable
|
|
```
|
|
|
|
at the top of the source tree. It generates executable `gitbucket.war` into `target/executable`.
|
|
We release this war file as release artifact.
|
|
|
|
Run tests spec
|
|
---------
|
|
Before running tests, you need to install docker.
|
|
|
|
```shell
|
|
$ brew cask install docker # Install Docker
|
|
$ open /Applications/Docker.app # Start Docker
|
|
```
|
|
|
|
To run the full series of tests, run the following command:
|
|
|
|
```shell
|
|
$ sbt test
|
|
```
|
|
|
|
If you don't have docker, you can skip docker tests which require docker as follows:
|
|
|
|
```shell
|
|
$ sbt "testOnly * -- -l ExternalDBTest"
|
|
```
|