Releases: Azure/functions-action
Release v1.4.1
Two deployment IDs were created through GitHub Actions, one with manifest file and other without. So, this fix will only create one deployment ID moving forward with manifest file and status.
Releasing v1.4.0
Support for new AppKind Kubeapp
Release v1.3.2
- Remove constraints and allow deployment to function apps with dotnet-isolated runtime. (thanks @JamieMagee for the PR #74)
- Fix a check on slot deployment when using publish-profile. We will now emit proper error messages if the publish-profile does not contain slot credentials. (thanks @TimoWilhelm for the PR #71)
- Fix respect-funcignore to properly ignore files or folders that start with dot (e.g. '.venv'). (thanks @mamidenn for the PR #68)
- Improve error messages to be more declarative and provide next-step suggestions to address deployment issues.
Accept Kudu build parameters
Feature scm-do-build-during-deployment
This will enable build action from Kudu and temporarily change the SCM_DO_BUILD_DURING_DEPLOYMENT setting during the deployment. (To learn more, please visit Kudu repo).
To bypass this and use the existing settings from your function app, please set this to an empty string.
To enable remote build action for your deployment in Kudu, please set scm-do-build-during-deployment and enable-oryx-build both to true.
By default, GitHub Action respects the packages resolved in GitHub workflow, disabling the redundant build action from Kudu endpoint. This field is set to false by default.
Feature enable-oryx-build
Use Oryx Build from Kudu when the package is deployed onto the function app. This will temporarily change the ENABLE_ORYX_BUILD setting during the deployment. This is commonly used in Python function apps and is only available for Linux functions. (To learn more, please visit Oryx repo and Azure Functions Remote Build).
To bypass this and use the existing settings from your function app, please set this to an empty string.
To enable remote build for your Python function app, please set scm-do-build-during-deployment and enable-oryx-build both to true.
By default, GitHub Action respects the packages resolved in GitHub workflow, disabling the redundant build action from Kudu endpoint. This field is set to false by default.
Use Remote Build for Python function app instead of workflow.yml resolved dependencies:
# Comment out 'Resolve Project Dependencies Using Pip' section as it is no longer needed.
# Python package resolution will be completely handled by remote build
# - name: 'Resolve Project Dependencies Using Pip'
# shell: bash
# run: |
# python -m pip install --upgrade pip
# pip install -r requirements.txt --target=".python_packages/lib/site-packages"
#
# Set scm-do-build-during-deployment and enable-oryx-build to 'true' in GitHub Action
# to ensure remote build is enabled for this deployment
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@dev
id: fa
with:
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
package: '.'
publish-profile: ${{ secrets.LINUX_PYTHON_DED_ENABLE_RB }}
scm-do-build-during-deployment: true
enable-oryx-build: true
Miscellaneous
- Fix an issue where slot-name check is case sensitive. (#50)
Accept respect-pom-xml and respect-funcignore paramter
Accept respect-pom-xml and respect-funcignore paramter
Feature respect-pom-xml
The respect-pom-xml is specifically for Java function app. By setting respect-pom-xml to true, it allows the GitHub Action to look up the Java local artifact by parsing the pom.xml file. This means user will no longer need to bind Java function pom.xml functionAppName to an existing Azure function app.
Java function app workflow.yml example:
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
publish-profile: '${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}'
package: '.' # No longer require ./${{ env.POM_XML_DIRECTORY }}/target/azure-functions/${{ env.POM_FUNCTIONAPP_NAME }}
respect-pom-xml: true # Turn on the feature by setting 'respect-pom-xml' to true (default: false)
Feature respect-funcignore
The respect-funcignore is available for all function projects containing .funcignore file. By setting respect-funcignore to true, the GitHub Action will remove the files/folders defined in .funcignore from the final artifact. (thanks: @petyunchik)
Enable .funcignore parsing workflow.yml example:
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
publish-profile: '${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}'
package: '.'
respect-funcignore: true # Turn on .funcignore parser and ignore files from artifact (default: false)
Miscellaneous
- Fix UserAgent header when calling SCM endpoint
- Accept custom function runtime (thanks @jordanfinners)
Fix RBAC credential issue
Support New Publish Profile Format
- Add a support to the new Publish Profile format. The new publish profile moved the
.scm
link in the MSDeploy section. In this version of GitHub Action, it will compose the scm url based on the .publish. url. - Accept
production
as aslot-name
value, which will deploy the function app to the main site.
Upgrade Action Dependencies
Upgrade GitHub Action Cores from 1.2.0 to 1.2.6
Enable Linux Premium and Linux Java deployment for RBAC
Fixes
- Enable Linux Premium and Linux Java deployment for RBAC
- Developer using SCM credentials will not be affected
- Bump lodash from 4.17.15 to 4.17.19 for a security vulnerability patch
Fix deployment stuck in function app spin up check
Improvements
Remove function app spin up check which possibly causes deployment stuck. #32