GitBucket plug-in that adds simple CI ability to GitBucket.
This plug-in allows repository owners to configure build command, and run them at following timing:
- Push commits to the default branch
- Create a new pull request
- Push additional commits to the pull request branch
You can skip a build by including specific words in the commit message. Moreover you can also re-run the pull request build by adding a comment including specific words. These words can be set at the build settings.
In the build script, following environment variables are available:
CI
(true)HOME
(root of the build directory)CI_BUILD_DIR
(same as HOME)CI_BUILD_NUMBER
CI_BUILD_BRANCH
CI_COMMIT_ID
CI_COMMIT_MESSAGE
CI_REPO_SLUG
("owner/repo")CI_PULL_REQUEST
(pull request id or "false")CI_PULL_REQUEST_SLUG
("owner/repo" or "")
This plugin has CircleCI API v1.1 compatible Web API. Supported APIs are below:
- User (
GET /api/circleci/v1.1/me
) - Recent Builds For a Single Project (
GET /api/circleci/v1.1/project/gitbucket/:owner/:repository
) - Recent Builds For a Project Branch (
GET /api/circleci/v1.1/project/gitbucket/:owner/:repository/tree/:branch
) - Single Build (
GET /api/circleci/v1.1/project/gitbucket/:owner/:repository/:buildNum
) - Retry a Build (
POST /api/circleci/v1.1/project/gitbucket/:owner/:repository/:buildNum/retry
) - Cancel a Build (
POST /api/circleci/v1.1/project/gitbucket/:owner/:repository/:buildNum/cancel
) - Trigger a new Build (
POST /api/circleci/v1.1/project/gitbucket/:owner/:repository
) - Trigger a new Build with a Branch (
POST /api/circleci/v1.1/project/gitbucket/:owner/:repository/tree/:branch
)
While CircleCI API takes the token via query string, in this plugin, Authorization
header (application token or basic authentication) is available as same as other GitBucket API.
Note that you must not use this plug-in in public environment because it allows executing any commands on a GitBucket instance. It will be a serious security hole.
In addition, this plug-in is made to just experiment continuous integration on GitBucket easily without complex settings of webhook or Jenkins. It doesn't have flexibility and scalability, and also has a security issue which is mentioned above. Therefore, if you like it and would like to use for your project actually, we recommend to setup Jenkins or other CI tool and move to it.
Plugin version | GitBucket version |
---|---|
1.11.x | 4.35.x - |
1.10.x | 4.34.x - |
1.9.x | 4.32.x - |
1.8.x | 4.31.x - |
1.7.x | 4.30.x - |
1.6.x - | 4.24.0 - |
1.5.x - | 4.23.1 - |
1.4.x - | 4.23.0 |
1.3.x - | 4.19.x - |
1.0.x - 1.2.x | 4.17.x, 4.18.x |
Download jar file from the release page and put into GITBUCKET_HOME/plugins
.
Run sbt assembly
and copy generated /target/scala-2.13/gitbucket-ci-plugin-x.x.x.jar
to ~/.gitbucket/plugins/
(If the directory does not exist, create it by hand before copying the jar), or just run sbt install
.
- Update for GitBucket 4.35.0 compatibility
- Update for GitBucket 4.34.0 compatibility
- Run build after a pull request is merged
- Update for GitBucket 4.32.0 and Scala 2.13.0
- Bug fix
- Docker support
- Update for GitBucket 4.30.x
- Some CircleCI compatible Web API
- Build branches even other than the default branch
- Support the use of an arbitrary file in the git repository as a build script
- Max parallel builds and max stored history became configurable
- Update for Scalatra 2.6
- Fix skipping pull request build bug
- Build workspace browser
- Altered build directories location
- Skip build by commit message
- Re-run build by pull request comment
- Supply environment variables in build script
- Build status badge
- Fix pull request build bug
- First release