forked from Azure/container-apps-deploy-action
-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
184 lines (183 loc) · 10.6 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
name: 'Azure Container Apps Build and Deploy'
description: |
'GitHub Action for building and deploying Azure Container Apps'
branding:
icon: "login.svg"
color: "blue"
inputs:
appSourcePath:
description: 'Absolute path on the GitHub runner of the source application code to be built.'
required: false
acrName:
description: 'The name of the Azure Container Registry that the runnable application image will be pushed to.'
required: false
acrUsername:
description: |
'The username used to authenticate push requests to the provided Azure Container Registry. If not provided, an
access token will be generated via "az acr login" and provided to "docker login" to authenticate the requests.'
required: false
acrPassword:
description: |
'The password used to authenticate push requests to the provided Azure Container Registry. If not provided, an
access token will be generated via "az acr login" and provided to "docker login" to authenticate the requests.'
required: false
registryUrl:
description: 'The base URL of the Container Registry that the runnable application image will be pushed to.'
required: false
registryUsername:
description: 'The username used to authenticate push requests to the provided Container Registry using the "docker login" action.'
required: false
registryPassword:
description: 'The password used to authenticate push requests to the provided Container Registry using the "docker login" action.'
required: false
azureCredentials:
description: |
'Azure credentials used by the `azure/login` action to authenticate Azure CLI requests if the user has not
previously authenticated in the workflow calling this action.'
required: false
imageToBuild:
description: |
'The custom name of the image that is to be built, pushed to the Container Registry and deployed to the Container App by this action.
Note: this image name should include the registry server; e.g., <registryUrl>/<repo>:<tag>. If this argument is
not provided, a default image name will be constructed in the form of
<acr-name>.azurecr.io/github-action/container-app:<github-run-id>.<github-run-attempt>.'
required: false
imageToDeploy:
description: |
'The custom name of an image that has already been pushed to the Container Registry and will be deployed to the Container App by this
action. Note: this image name should include the registry server; e.g., <registryUrl>/<repo>:<tag>. If this
argument is not provided, the value provided (or determined) for the "imageToBuild" argument will be used.'
required: false
dockerfilePath:
description: |
'Relative path to the Dockerfile in the provided application source that should be used to build the image that is
then pushed to the Container Registry and deployed to the Container App. If not provided, this action will check if there is a file
named "Dockerfile" in the provided application source and use that to build the image. Otherwise, the Oryx++
Builder will be used to create the image.'
required: false
containerAppName:
description: |
'The name of the Azure Container App that will be created or updated. If not provided, this value will be
gh-action-app-<github-run-id>-<github-run-attempt>.'
required: false
default: 'gh-action-app-${{ github.run_id }}-${{ github.run_attempt }}'
resourceGroup:
description: |
'The existing resource group that the Azure Container App will be created in. If not provided, this value will be
<container-app-name>-rg and its existence will first be checked before attempting to create it.'
required: false
containerAppEnvironment:
description: |
'The name of the Azure Container App environment to use with the application. If not provided, an existing
environment in the resource group of the Container App will be used, otherwise, an environment will be created in
the format <container-app-name>-env'
required: false
runtimeStack:
description: |
'The platform version stack that the application runs in when deployed to the Azure Container App. This should
be provided in the format <platform>:<version>. If not provided, this value is determined by Oryx based on the
contents of the provided application. Please view the following document for more information on the supported
runtime stacks for Oryx:
https://github.com/microsoft/Oryx/blob/main/doc/supportedRuntimeVersions.md'
required: false
builderStack:
description: |
'The stack (OS) that should be used to build the provided application source and produce the runnable application
image. You can provide a specific image tag for the stack, such as "debian-bullseye-20231107.2", or you can
provide a supported stack name, such as "debian-bookworm" or "debian-bullseye", and the latest supported image tag
for that stack will be used. If no stack is provided, this action will attempt to build the provided application
source with each supported stack until there's a successful build.'
required: false
buildArguments:
description: |
'A list of build arguments provided as KEY=VALUE pairings and are space-separated. If a Dockerfile has been
provided or is discovered in the application source, each build argument will be passed to the "docker build"
command via the --build-arg flag. If the Oryx++ builder is used to create a runnable application image, each
build argument will be passed to the "pack build" command via the --env flag.'
required: false
targetPort:
description: |
'The designated port for the application to run on. If no value is provided and the builder is used to build the
runnable application image, the target port will be set to 80 for Python applications and 8080 for all other
platform applications. If no value is provided when creating a Container App, the target port will be set to 80 by
default. Note: when using this action to update a Container App, the target port may be updated if not provided
based on changes to the ingress property.
required: false
location:
description: |
'The location that the Container App (and other created resources) will be deployed to. To view locations suitable
for creating the Container App in, please run the following: az provider show -n Microsoft.App --query "resourceTypes[?resourceType=='containerApps'].locations"'
required: false
environmentVariables:
description: |
'A list of environment variable(s) for the container. Space-separated values in 'key=value' format. Empty string
to clear existing values. Prefix value with 'secretref:' to reference a secret.'
required: false
ingress:
description: |
'Possible options: external, internal, disabled. If set to "external" (default value if not provided when creating
a Container App), the Container App will be visible from the internet or a VNET, depending on the app environment
endpoint configured. If set to "internal", the Container App will be visible from within the app environment only.
If set to "disabled", ingress will be disabled for this Container App and will not have an HTTP or TCP endpoint.'
required: false
yamlConfigPath:
description: |
'Full path (on the executing GitHub runner) to the YAML file detailing the configuration of the Container App.
The 'resourceGroup' property in the YAML file will not be used; the value for this either comes from the
'resourceGroup' argument provided to the action, or the default resource group name generated by the action.
Image and application source arguments (e.g., 'appSourcePath', 'imageToDeploy') will still be used to first build
and/or push an image that is used by the Container App; in this case, the provided YAML configuration file will
need to reference the image specified by 'imageToDeploy' (or 'imageToBuild', depending on your scenario). When
creating a new Container App, all properties listed in the file will be set when the Container App is created.
When updating an existing Container App, only the properties listed in the file will be updated on the Container
App. For more information on the structure of this YAML configuration file, please visit
https://aka.ms/azure-container-apps-yaml'
disableTelemetry:
description: |
'If set to "true", no telemetry will be collected by this GitHub Action. If set to "false", or if this argument is
not provided, telemetry will be sent to Microsoft about the Container App build and deploy scenario targeted by
this GitHub Action.'
required: false
default: false
command:
description: |
'Override default command of the docker container'
required: false
kafka:
description: |
'Name of kafka add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
mariadb:
description: |
'Name of mariadb add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
postgres:
description: |
'Name of postgres add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
milvus:
description: |
'Name of milvus add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
qdrant:
description: |
'Name of qdrant add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
redis:
description: |
'Name of redis add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
weaviate:
description: |
'Name of weaviate add-on service that will be created and bounded to the container.
Multiple add-on service of this type can be created by specifying a omma-separated or newline-separated list.'
required: false
runs:
using: "node20"
main: "dist/index.js"