Codefresh is a CI/CD platform that engineers actually love to use. The Codefresh pipeline runner GitHub action will trigger an existing Codefresh pipeline from a GitHub action.
It is based on the Codefresh CLI which can execute Codefresh pipelines remotely (using an API key for authentication). The Codefresh CLI is already available as a public Docker image, so creating a GitHub action with it is a trivial process.
Make sure that you have
- a Argo workflow is installed
- a Codefresh account with one or more existing pipelines ready
- a Codefresh API token that will be used as a secret in the Argo workflow
The GitHub workflow is placed on the push event and therefore starts whenever a Git commit happens. The Workflow has a single action that starts the Codefresh pipeline runner.
The pipeline runner is a Docker image with the Codefresh CLI. It uses the Codefresh API token to authenticate to Codefresh and then calls a an existing pipeline via its trigger.
The result is that all the details from the Git push (i.e. the GIT hash) are transferred to the Codefresh pipeline that gets triggered remotely
argo submit -n argo steps.yaml -p 'CF_API_KEY=****' -p 'PIPELINE_NAME=****'
- A secret with name CF_API_KEYand value your Codefresh API token ( https://codefresh.io/docs/docs/integrations/codefresh-api/#authentication-instructions )
- An environment variable called PIPELINE_NAMEwith a value of<project_name>/<pipeline_name>
- An optional environment variable called TRIGGER_NAMEwith trigger name attached to this pipeline. See the triggers section for more information
- An optional environment variable called CF_BRANCHwith branch name .
The action will report if the pipeline execution was successful. For example, if your pipeline has unit tests that fail, by default, it will report the action failed. The logs from the pipeline will be streamed into the Argo workflow console.