Given the highly customizable nature of the branch-deploy
Action, users may often find that they need to pass in a number of parameters into subsequent steps during their deployments. This Action provides a way to pass in parameters to the .deploy
command without any required structure or format.
Here are a few examples of how to pass in parameters to the .deploy
command and why they might be used.
Command:
.deploy to development | LOG_LEVEL=debug,CPU_CORES=4
Outputs:
params
=LOG_LEVEL=debug,CPU_CORES=4
parsed_params
=["LOG_LEVEL=debug,CPU_CORES=4"]
Why: A user might need to deploy to the development environment and tell subsequent workflow steps to use a LOG_LEVEL
of debug
and CPU_CORES
of 4
.
Command:
.deploy | something1 something2 something3
Outputs:
params
=something1 something2 something3
parsed_params
=["something1", "something2", "something3"]
Why: This example shows that the params
output is just a string that can be literally anything your heart desires. It is up to the user to parse the string and use it in subsequent steps.
Command:
.deploy | --cpu=2 --memory=4G --env=development --port=8080 --name=my-app -q my-queue
Outputs:
params
=--cpu=2 --memory=4G --env=development --port=8080 --name=my-app -q my-queue
parsed_params
={_: [], cpu: 2, memory: '4G', env: 'development', port: 8080, name: 'my-app', q: 'my-queue'}
Why: This example shows that by using structure within your params string like --key=value
, they can be automatically parsed into a JSON object and saved as the parsed_params
output. This can be useful for users that want to pass in a number of parameters to their deployment and have them automatically parsed and saved as a JSON object as an output of this Action. Having machine readable output can be quite useful for subsequent workflow steps.
The param_separator
input defaults to |
and will collect any text that is provided after this character and save it as a GitHub Actions output called params
. This output can then be used in subsequent steps.
This value can be configured to be any character (or string) that you want.
The params
and parsed_params
outputs can be accessed just like any other output from the branch-deploy
Action. Here is a quick example:
- name: branch-deploy
id: branch-deploy
uses: github/branch-deploy@vX.X.X
with:
trigger: .deploy
param_separator: "|"
- name: example
if: steps.branch-deploy.outputs.continue == 'true'
run: |
echo "params: ${{ steps.branch-deploy.outputs.params }}"
echo "parsed_params: ${{ steps.branch-deploy.outputs.parsed_params }}"
All parameters (both parsed and raw) can be found in the payload
of the actual deployment that gets created and stored on GitHub. You can read more about the deployment payload and its structure here.