Build and publish a new application version to ECR if necessary and return the version tag to use in deployments.
graph LR
START((Start))
release_app[[Release App]]
get_deployed_version[[Get Deployed Version]]
select_version{Select Version}
END((End))
START --> app_changed{App Changed?}
app_changed -->|Yes| release_app
app_changed -->|No| get_deployed_version
release_app -->|new version| select_version
get_deployed_version -->|current version| select_version
select_version -->|version| END
click release_app callback "release-app.md"
click get_deployed_version callback "release-get_deployed_version.md"
| name | type | description | default |
|---|---|---|---|
infra-changed |
boolean |
Infrastructure was modified | -- |
app-changed |
boolean |
App code was modified | -- |
publish-envs |
json string | The environments to publish to, needs to be a json array with names and roles, e.g. [{name: "Staging", role: "arn:aws:iam::account:role/role-name"} |
[ |
image-name |
string |
The name of the image to publish | ${{ vars.IMAGE_NAME }} |
task-name |
string |
The name of the ECS task | ${{ vars.IMAGE_NAME }} |
aws-region |
string |
The AWS region to deploy to | ${{ vars.AWS_REGION }} |
aws-role-arn |
string |
The ARN of the AWS role to assume to retrieve the ECS task information | ${{vars.AWS_ROLE_PROD}} |
run-label |
string |
The run label to use for the actions | ubuntu-latest |
| name | description |
|---|---|
version |
The published version tag to use in deployments |
| Permission | Level |
|---|---|
contents |
write |
id-token |
write |
packages |
write |
IMAGE_NAME(only ifinputs.image-nameorinputs.task-nameis not set)AWS_REGION(only ifinputs.aws-regionis not set)AWS_ROLE_PROD(only ifinputs.aws-role-arnis not set)
RELEASE_PATGITHUB_TOKEN