diff options
author | Balasankar C <balasankar@gitlab.com> | 2017-05-05 08:41:16 +0000 |
---|---|---|
committer | Marin Jankovski <marin@gitlab.com> | 2017-05-05 08:41:16 +0000 |
commit | b667fba826e02bec2c94ee4922edf348b84f8075 (patch) | |
tree | 609358fd50d29ef8d1ba6d538b9fc02d81c6a32c | |
parent | ccb783ea0ad1bfeed38422c7e6366f25fbebebff (diff) | |
download | gitlab-ce-b667fba826e02bec2c94ee4922edf348b84f8075.tar.gz |
Add a manual job to trigger package build in omnibus
-rw-r--r-- | .gitlab-ci.yml | 23 | ||||
-rw-r--r-- | doc/development/README.md | 1 | ||||
-rw-r--r-- | doc/development/build_test_package.md | 35 |
3 files changed, 59 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 44620d390ad..588f255eff8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,6 +23,7 @@ before_script: - source scripts/prepare_build.sh stages: +- build - prepare - test - post-test @@ -137,6 +138,28 @@ stages: <<: *only-master-and-ee-or-mysql <<: *except-docs +# Trigger a package build on omnibus-gitlab repository + +build-package: + services: [] + variables: + SETUP_DB: "false" + USE_BUNDLE_INSTALL: "false" + stage: build + when: manual + script: + # If no branch in omnibus is specified, trigger pipeline against master + - if [ -z "$OMNIBUS_BRANCH" ] ; then export OMNIBUS_BRANCH=master ;fi + - echo "token=${BUILD_TRIGGER_TOKEN}" > version_details + - echo "ref=${OMNIBUS_BRANCH}" >> version_details + - echo "variables[ALTERNATIVE_SOURCES]=true" >> version_details + - echo "variables[GITLAB_VERSION]=${CI_COMMIT_SHA}" >> version_details + # Collect version details of all components + - for f in *_VERSION; do echo "variables[$f]=$(cat $f)" >> version_details; done + # Trigger the API and pass values collected above as parameters to it + - cat version_details | tr '\n' '&' | curl -X POST https://gitlab.com/api/v4/projects/20699/trigger/pipeline --data-binary @- + - rm version_details + # Prepare and merge knapsack tests knapsack: <<: *knapsack-state diff --git a/doc/development/README.md b/doc/development/README.md index 77bb0263374..d04380e5b33 100644 --- a/doc/development/README.md +++ b/doc/development/README.md @@ -41,6 +41,7 @@ - [Shell commands](shell_commands.md) in the GitLab codebase - [Sidekiq debugging](sidekiq_debugging.md) - [Object state models](object_state_models.md) +- [Building a package for testing purposes](build_test_package.md) ## Databases diff --git a/doc/development/build_test_package.md b/doc/development/build_test_package.md new file mode 100644 index 00000000000..2bc1a700844 --- /dev/null +++ b/doc/development/build_test_package.md @@ -0,0 +1,35 @@ +# Building a package for testing + +While developing a new feature or modifying an existing one, it is helpful if an +installable package (or a docker image) containing those changes is available +for testing. For this very purpose, a manual job is provided in the GitLab CI/CD +pipeline that can be used to trigger a pipeline in the omnibus-gitlab repository +that will create +1. A deb package for Ubuntu 16.04, available as a build artifact, and +2. A docker image, which is pushed to [Omnibus GitLab's container +registry](https://gitlab.com/gitlab-org/omnibus-gitlab/container_registry) +(images titled `gitlab-ce` and `gitlab-ee` respectively and image tag is the +commit which triggered the pipeline). + +When you push a commit to either the gitlab-ce or gitlab-ee project, the +pipeline for that commit will have a `build-package` manual action you can +trigger. + +## Specifying versions of components + +If you want to create a package from a specific branch, commit or tag of any of +the GitLab components (like GitLab Workhorse, Gitaly, GitLab Pages, etc.), you +can specify the branch name, commit sha or tag in the component's respective +`*_VERSION` file. For example, if you want to build a package that uses the +branch `0-1-stable`, modify the content of `GITALY_SERVER_VERSION` to +`0-1-stable` and push the commit. This will create a manual job that can be +used to trigger the build. + +## Specifying the branch in omnibus-gitlab repository + +In scenarios where a configuration change is to be introduced and omnibus-gitlab +repository already has the necessary changes in a specific branch, you can build +a package against that branch through an environment variable named +`OMNIBUS_BRANCH`. To do this, specify that environment variable with the name of +the branch as value in `.gitlab-ci.yml` and push a commit. This will create a +manual job that can be used to trigger the build. |