- Make crosscloudci/projectname-configuration project -- copy an existing projectname-configuration project (see testproj-configuration example: https://github.com/crosscloudci/testproj-configuration)
- Edit the cncfci.yml (see testproj-configuration: https://github.com/crosscloudci/testproj-configuration/blob/master/cncfci.yml which is for the testproj example: https://github.com/crosscloudci/testproj)
- Edit .gitlab-ci.yml to include curl commands and scripts for getting build status, deploys, and tests e.g. envoy-configuration (see https://github.com/crosscloudci/testproj-configuration/blob/master/.gitlab-ci.yml)
- Optional: write a ci proxy plugin for your ci tool and submit a pull request (see https://github.com/crosscloudci/ex_ci_proxy/blob/master/README.md)
You need to have admin permissions to do this. Also, if this process is done on the production gitlab server, you'll need to rsync the changes to your other servers or implement the same changes manually in each environment.
In Gitlab you need to complete the following steps.
- Create a new group
- Create a new project
- Set up mirroring (steps and menu items in gitlab)
- Select admin
- Select your project (e.g. jaeger) within the admin interface
- Botuser needs to be in user permissions
- Add bot user as member (as the master role)
- Impersonate bot user
- Admin
- Search for bot, click on bot user
- Admin
- Impersonate bot user
- Settings
- Repository
- Pull from remote repository
- Select mirror, add https repo address, select bot user
- Repository
- Select the project Project
- You should see that the code is pulled down
- Stop impersonating the bot user
- Set up project variables (steps and menu items in gitlab)
- Settings
- Pipeline trigger
- Settings
- add trigger
- make sure a token is created
- Pipelines
- Custom ci config path
- e.g. https://raw.githubusercontent.com/crosscloudci/envoy-configuration/master/.gitlab-ci.yml
- Add Secret variables
- CLOUD
- e.g. aws
- ARCH
- e.g. AMD64
- PIPELINE_RELEASE_TYPE
- stable
- CLOUD
- Enable runners (steps and menu items in gitlab)
- settings
- ci/cd
- Runner settings
- Enable all runners for this project
- Add the project to global configuration yml (e.g. https://github.com/crosscloudci/cncf-configuration/blob/master/cross-cloud.yml)
- Cncf configuration
- Integration branch
- Add to cross-cloud.yml
- Duplicate a project
- Find logo image e.g. https://d33wubrfki0l68.cloudfront.net/77bb2db951dc11d54851e79e0ca09e3a02b276fa/9c0b7/img/envoy-logo.svg
- Add to cncf artwork repo
- Link to cross cloud artwork repo
- Update the project names e.g. to envoy
- Charts are the repo that we get the helm charts from
- Change timeout for how long your build takes
- Review pipelines
- Pipelines
- manually add new to the url (this is a workaround)
- e.g. https://gitlab.cidev.cncf.ci/envoy/envoy/pipelines/new
- Select master
- Select stable (e.g. v1.7.0)
- Both should be running
- e.g. https://gitlab.cidev.cncf.ci/envoy/envoy/pipelines/new
- manually add new to the url (this is a workaround)
- Add the new project into the enviroment.rb
- Get token from trigger (steps and menu items in gitlab)
- Settings
- CI/CD
- Pipeline trigger
- copy token
- Pipeline trigger
- Put in .env for trigger client
- CI/CD
- Clone the project
git clone yourprojectname
- e.g. git clone https://github.com/envoyproxy/envoy.git
- Make a note of any ci instructions including scripts for building and publishing images
- e.g. the .circleci/config.yml file outlines lots of shell scripts that refer to a docker dependencies image and build image
- Replicate the builds
- e.g. use docker to replicate a build image using the previously viewed ci
- you probably want to pin your image
- update the script not to push
- images will be local after build
- publish to gitlab directory
-
Create a script that builds head
-
Create a script that builds stable
- Add a sleep to the .gitlab-ci.yml script
- ssh [email protected]
- Click on compile job
- If .gitlab-ci.yml does not refresh:
- Go to pipelines
- Copy/cut the gitlab.yml and save an empty url
- Paste the url in again and save it