Installation and Configuration
Installation
- Create a kubernetes cluster.
- Create a solution expose to tls-port 443 and port 80.
- Connect to the cluster using
ssh
. - Install helm.
Install from repository
-
Clone the repository and go to installation directory.
git clone https://github.com/threefoldtech/zeroCI.git cd zeroCI/install/zeroci
-
Install ZeroCI. (Note: the domain used should be the same as the one on solution expose in the second step.
helm install mytest . --namespace myspace --create-namespace --set "ingress.hosts[0].host=<domain>" --set "ingress.hosts[0].paths[0]=/"
Example: If you need to set domain to
zeroci.grid.tf
, so the command will be:helm install mytest . --namespace myspace --create-namespace --set "ingress.hosts[0].host=zeroci.grid.tf" --set "ingress.hosts[0].paths[0]=/"
Install from marketplace
-
Add marketplace helm charts repository.
helm repo add marketplace https://threefoldtech.github.io/marketplace-charts/
-
Install ZeroCI. (Note: the domain used should be the same as the one on solution expose in the second step.
helm install mytest marketplace/zeroci --namespace myspace --create-namespace --set "ingress.hosts[0].host=<domain>" --set "ingress.hosts[0].paths[0]=/"
Example: If you need to set domain to
zeroci.grid.tf
, so the command will be:helm install mytest marketplace/zeroci --namespace myspace --create-namespace --set "ingress.hosts[0].host=zeroci.grid.tf" --set "ingress.hosts[0].paths[0]=/"
Configuration
Go to the domain that ZeroCI has been deployed on, you will be asked for login first, then please fill the following configurations:
1- Version Control System
- Domain: The domain that will point to your server, this will be used to add webhooks on the repositories (will be added in Repositories step) and send the result link with it.
- Version Control System Host: The domain or ip that the version control system is running on. (Note: Github and Gitea are only supported)
- Version Control System: Version control system access token for user, create one and make sure that this token his full permission on hooks and status as the following:
2- Repositories
-
Username: A username on Version Control System that has been added in the pervious step to search and get his public repositories.
-
Organization : An organization on Version Control System that has been added in the pervious step to search and get the public repositories on this organization.
(Note:username
and/or organization
can be added.)
- Select Repos: Once the username and/or organization is added, the dropdown list will be available to select the repositories that ZeroCI will run on.
3- Telegram
-
Telegram Chat ID: a Telegram Channel or Group ID that the result messages will be sent on. (Note: it should start with
@
) -
Telegram Bot: Telegram bot token that will be used to send the result messages, Create one and add it to this Channel.
(Note: Once the configuration is done, ZeroCI will set you as admin, and this configuration can be changed only by admins)