Discover Azure preset for Nitro!
Preset: azure
(switch to this preset)
Azure Static Web Apps are designed to be deployed continuously in a GitHub Actions workflow. By default, Nitro will detect this deployment environment and enable the azure
preset.
You can invoke a development environment to preview before deploying.
NITRO_PRESET=azure yarn buildnpx @azure/static-web-apps-cli start .output/public --api-location .output/server
When you link your GitHub repository to Azure Static Web Apps, a workflow file is added to the repository.
When you are asked to select your framework, select custom and provide the following information:
Input | Value |
---|---|
app_location | '/' |
api_location | '.output/server' |
output_location | '.output/public' |
If you miss this step, you can always find the build configuration section in your workflow and update the build configuration:
# .github/workflows/azure-static-web-apps-<RANDOM_NAME>.yml
###### Repository/Build Configurations ######
app_location: '/'
api_location: '.output/server'
output_location: '.output/public'
###### End of Repository/Build Configurations ######
That's it! Now Azure Static Web Apps will automatically deploy your Nitro-powered application on push.
If you are using runtimeConfig, you will likely want to configure the corresponding environment variables on Azure.
Preset: azure-functions
Note: If you encounter any issues, please ensure you're using a Node.js 14+ runtime. You can find more information about how to set the Node version in the Azure docs.
Install Azure Functions Core Tools if you want to test locally.
You can invoke a development environment from the serverless directory.
NITRO_PRESET=azure-functions yarn buildcd .outputfunc start
You can now visit http://localhost:7071/
in your browser and browse your site running locally on Azure Functions.
To deploy, just run the following command:
# To publish the bundled zip fileaz functionapp deployment source config-zip -g <resource-group> -n <app-name> --src dist/deploy.zip# Alternatively you can publish from sourcecd dist && func azure functionapp publish --javascript <app-name>
First, obtain your Azure Functions Publish Profile and add it as a secret to your GitHub repository settings following these instructions.
Then create the following file as a workflow:
# .github/workflows/azure.yml
name: azure
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
node: [ 14 ]
steps:
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: Checkout
uses: actions/checkout@master
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-azure
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: yarn
- name: Build
run: npm run build
env:
NITRO_PRESET: azure-functions
- name: 'Deploy to Azure Functions'
uses: Azure/functions-action@v1
with:
app-name: <your-app-name>
package: .output/deploy.zip
publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
Consider turning on immutable packages to support running your app from the zip file. This can speed up cold starts.