- remove actions not used in v1.2 - update the example arbitrary version - embed v1.2 MAJOR.MINOR
3.3 KiB
The action combines all the necessary steps in itself and logic may be divided into environment setup and launching werf run.
Action in Details
werf binary setup
By default, all actions setup actual werf version for 1.1 alpha channel (more details about channels, werf release cycle and compatibility promise here).
Using the channel input 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
- uses: werf/actions/run@v1.2
with:
channel: alpha
Withal, it is not necessary to work within release channels, and the user might specify certain werf version with version input.
- uses: werf/actions/run@v1.2
with:
version: v1.2.9
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 nameKUBE_CONFIG_BASE64_DATA). -
Pass secret with
kube-config-base64-datainput:- uses: werf/actions/run@v1.2 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:
- uses: werf/actions/run@v1.2
env:
WERF_LOG_VERBOSE: "on"
Inputs
inputs:
channel:
description: 'The one of the following channel: alpha, beta, ea, stable, rock-solid'
default: 'alpha'
required: false
version:
description: 'The certain version'
required: false
image:
description: 'The image name from werf.yaml (werf run [options] [IMAGE_NAME] [-- COMMAND ARG...])'
required: false
args:
description: 'The specific command with arguments (werf run [options] [IMAGE_NAME] [-- COMMAND ARG...])'
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
run:
name: Run
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run
uses: werf/actions/run@v1.2
with:
image: backend
args: rails server
kube-config-base64-data: ${{ secrets.KUBE_CONFIG_BASE64_DATA }}
env:
WERF_DOCKER_OPTIONS: "-d -p 3000:3000"