Let It Go

This commit is contained in:
Alexey Igrychev
2020-05-25 14:27:28 +01:00
commit fe3767b155
34 changed files with 199960 additions and 0 deletions

105
cleanup/README.md Normal file
View File

@@ -0,0 +1,105 @@
<p align="center">
<img src="https://github.com/flant/werf/raw/master/docs/images/werf-logo.svg?sanitize=true" style="max-height:100%;" height="175">
</p>
___
The action combines all the necessary steps in itself and logic may be divided into environment setup and launching `werf cleanup`.
## Action in Details
### werf binary setup
By default, all actions setup actual werf version for [1.1 stable channel](https://werf.io/releases.html) (more details about channels, werf release cycle and compatibility promise [here](https://github.com/flant/werf#backward-compatibility-promise)).
Using `group` and `channel` inputs the user can switch the release channel.
> This is recommended approach to be up-to-date and to use actual werf version without changing configurations
```yaml
- uses: flant/werf-actions/cleanup@v1
with:
group: 1.1
channel: alpha
```
Withal, it is not necessary to work within release channels, and the user might specify certain werf version with `version` input.
```yaml
- uses: flant/werf-actions/cleanup@v1
with:
version: v1.1.16
```
### kubeconfig setup (*optional*)
The _kubeconfig_ may be used for deployment, cleanup, distributed locks and caches. Thus, the configuration should be added before step with the action or passed as base64 encoded data with `kube-config-base64-data` input:
* Prepare _kubeconfig_ (e.g. `cat ~/.kube/config | base64`) and save in GitHub Project Secrets (e.g. with name `KUBE_CONFIG_BASE64_DATA`).
* Pass secret with `kube-config-base64-data` input:
```yaml
- uses: flant/werf-actions/cleanup@v1
with:
kube-config-base64-data: ${{ secrets.KUBE_CONFIG_BASE64_DATA }}
```
### werf ci-env
This command performs _docker login_ using `github-token`, sets up predefined variables based on GitHub Workflow context.
**Note** that `github-token` is optional in this action, and the input is there in case you need to use a non-default token.
By default, action will use the token provided to your workflow.
## Working with werf options
Any werf option can be defined with environment variables:
```yaml
- uses: flant/werf-actions/cleanup@v1
env:
WERF_LOG_VERBOSE: "on"
```
## Inputs
```yaml
group:
description: 'The MAJOR.MINOR version'
default: '1.1'
required: false
channel:
description: 'The one of the following channel: alpha, beta, ea, stable, rock-solid'
default: 'stable'
required: false
version:
description: 'The certain version'
required: false
github-token:
description: 'The GitHub token used to login and to interact with Docker Github Packages'
default: ${{ github.token }}
required: false
kube-config-base64-data:
description: 'Base64 encoded kubeconfig data used for deployment, cleanup and distributed locks'
required: false
```
## Example
```yaml
cleanup:
name: Cleanup
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
- name: Cleanup
uses: flant/werf-actions/cleanup@v1
with:
kube-config-base64-data: ${{ secrets.KUBE_CONFIG_BASE64_DATA }}
```

28
cleanup/action.yml Normal file
View File

@@ -0,0 +1,28 @@
name: werf cleanup
author: 'Flant'
description: 'Prepare the environment and perform cleanup Docker GitHub Packages with werf'
branding:
color: blue
icon: anchor
inputs:
group:
description: 'The MAJOR.MINOR version'
default: '1.1'
required: false
channel:
description: 'The one of the following channel: alpha, beta, ea, stable, rock-solid'
default: 'stable'
required: false
version:
description: 'The certain version'
required: false
github-token:
description: 'The GitHub token used to login and to interact with Docker Github Packages'
default: ${{ github.token }}
required: false
kube-config-base64-data:
description: 'Base64 encoded kubeconfig data used for deployment, cleanup and distributed locks'
required: false
runs:
using: 'node12'
main: 'index.js'

44367
cleanup/index.js Normal file

File diff suppressed because one or more lines are too long