You've already forked ci-templates
generated from public/repo-template
init
This commit is contained in:
64
docs/docker.md
Normal file
64
docs/docker.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Docker CI documentation
|
||||
|
||||
To build docker images, and deploy them using helm values, you can connect CI templates from this repository to your project.
|
||||
|
||||
**NOTE:** Before you begin, make sure you've enabled Actions in your app and deploy repo
|
||||
|
||||
## User/Organization setup (Required only once per user/organization)
|
||||
|
||||
**NOTE:** If you set it up for an organization, use organization settings page instead of user profile settings
|
||||
|
||||
**NOTE 2:** Of course you can configure all variables and secrets at the project level if you want
|
||||
|
||||
1. Generate a new SSH key pair `ssh-keygen -t ed25519 -f ./deploy -C "mymail@mysite.com""`
|
||||
2. Go to your `deploy` repo settings, navigate to "Deploy keys" tab and add your public SSH key you've generated at step 1. This key will get access only to this repository.
|
||||
**DO NOT FORGET** to also enable "Enable Write Access" option!
|
||||
3. Go to your [profile settings](https://git.romalex.cc/user/settings), expand "Actions" tab, go to
|
||||
"Secrets". Add a secret named `DEPLOY_REPO_SSH_KEY` and paste the private SSH key you've generated at step 1.
|
||||
4. Navigate to "Applications" tab. Press "Generate a new token". You need "write:package" and "write:repository" permissions.
|
||||
5. Return back to "Actions/Secrets" tab, and add a secret named `REGISTRY_ACCESS_TOKEN` you've created at step 3.
|
||||
6. Navigate to "Actions/Variables" tab, add a variable named `DEPLOY_REPO` and add path to your deploy repository which
|
||||
contains helm values for your application. It should have the following format: `owner/reponame` for example `mooncat/deploy`
|
||||
|
||||
## Project setup (Required once per project)
|
||||
|
||||
1. Navigate to your project's source code repository settings
|
||||
2. Navigate to "Actions/Variables" tab. Add a variable named `VALUES_FILE_PATH` which contains the path to the helm values file
|
||||
where the tag should be updated. For example, `generic/values/myapp.yaml`
|
||||
3. Also add a variable named `TAG_PROPERTY_PATH` which contains the jsonpath to the image tag property inside the values yaml file. For example, `.generic.image.tag`
|
||||
|
||||
|
||||
Inside your project, create a file named `.gitea/workflows/build.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
name: Build and deploy application
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build docker image
|
||||
uses: public/ci-templates/.gitea/workflows/docker_build.yaml@v1
|
||||
secrets:
|
||||
registry_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|
||||
|
||||
deploy:
|
||||
name: Deploy application
|
||||
uses: public/ci-templates/.gitea/workflows/helm_values_deploy.yaml@v1
|
||||
with:
|
||||
version: ${{ needs.build.outputs.version }}
|
||||
deploy_repo: ${{ vars.DEPLOY_REPO }}
|
||||
values_file_path: ${{ vars.VALUES_FILE_PATH }}
|
||||
tag_property_path: ${{ vars.TAG_PROPERTY_PATH }}
|
||||
secrets:
|
||||
deploy_repo_ssh_key: ${{ secrets.DEPLOY_REPO_SSH_KEY }}
|
||||
needs: build
|
||||
```
|
||||
|
||||
There are also inputs that contain default values. You can look them up in [docker_build.yaml](/.gitea/workflows/docker_build.yaml)
|
||||
and [helm_values_deploy.yaml](/.gitea/workflows/helm_values_deploy.yaml) files.
|
||||
|
||||
41
docs/drist.md
Normal file
41
docs/drist.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Drist CI documentation
|
||||
|
||||
[Drist](https://dataswamp.org/~solene/2019-02-18-drist-1.04.html) is used to deploy files on servers using SSH.
|
||||
|
||||
This workflow executes `drist -s hosts` in the current revision.
|
||||
|
||||
It runs ssh client with `-o StrictHostKeychecking=no`.
|
||||
|
||||
If there's a `ssh_config` file in the repo's root, it will be used to connect to servers. Example:
|
||||
|
||||
```
|
||||
Host myserver.mycompany.mydomain
|
||||
Port 123
|
||||
```
|
||||
|
||||
- in `hosts` file, each host should be specified as `user@host`
|
||||
- `script` file contains CI script which is executed on each host
|
||||
- `script-hostname` file contains CI script which is executed on the specified hostname
|
||||
- files from the `files` directory can be accessed from the `script`
|
||||
- files from the `files-hostname` directory can be accessed only on the host with specified hostname
|
||||
|
||||
How to use:
|
||||
|
||||
```yaml
|
||||
name: Drist
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
drist:
|
||||
name: Run Drist
|
||||
uses: public/ci-templates/.gitea/workflows/drist.yaml@v1
|
||||
secrets:
|
||||
ssh_private_key: ${{ secrets.DRIST_SSH_PRIVATE_KEY }}
|
||||
```
|
||||
|
||||
There are also inputs that contain default values. You can look them up in [drist.yaml](/.gitea/workflows/drist.yaml)
|
||||
26
docs/helm_chart_publish.md
Normal file
26
docs/helm_chart_publish.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Helm Chart Publishing CI Documentation
|
||||
|
||||
## Setup
|
||||
|
||||
1. Go to your [profile settings](https://git.romalex.cc/user/settings) (or your organization settings), expand "Actions" tab, go to "Applications" tab. Press "Generate a new token". You need "write:package" and "write:repository" permissions.
|
||||
2. Return back to "Actions/Secrets" tab, and add a secret named REGISTRY_ACCESS_TOKEN you've created at step 1.
|
||||
|
||||
Inside your project, create a file named `.gitea/workflows/build.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
name: Publish Helm Chart
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
workflow_dispatch: { }
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Build and publish Helm chart
|
||||
uses: public/ci-templates/.gitea/workflows/helm_chart_publish.yaml@v1
|
||||
secrets:
|
||||
registry_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|
||||
```
|
||||
|
||||
There are also inputs that contain default values. You can look them up in [helm_chart_publish.yaml](/.gitea/workflows/helm_chart_publish.yaml) file.
|
||||
Reference in New Issue
Block a user