UNPKG

@microsoft/m365agentstoolkit-cli

Version:
307 lines (302 loc) 12.8 kB
# yaml-language-server: $schema=https://aka.ms/teams-toolkit/1.0.0/yaml.schema.json # Visit https://aka.ms/teamsfx-v5.0-guide for details on this file # Visit https://aka.ms/teamsfx-actions for details on actions version: 1.0.0 projectId: {{projectId}} environmentFolderPath: ./ {{~environmentFolder}} # Triggered when 'teamsfx provision' is executed provision: {{#if activePlugins.fx-resource-aad-app-for-teams}} # Creates a new Microsoft Entra app to authenticate users if # the environment variable that stores clientId is empty - uses: aadApp/create with: # Note: when you run aadApp/update, the Microsoft Entra app name will be updated # based on the definition in manifest. If you don't want to change the # name, make sure the name in Microsoft Entra manifest is the same with the name # defined here. name: {{aadAppName}} # If the value is false, the action will not generate client secret for you generateClientSecret: true # Authenticate users with a Microsoft work or school account in your # organization's Microsoft Entra tenant (for example, single tenant). signInAudience: "AzureADMyOrg" # Write the information of created resources into environment file for the # specified environment variable(s). writeToEnvironmentFile: clientId: AAD_APP_CLIENT_ID # Environment variable that starts with `SECRET_` will be stored to the # .env.{envName}.user environment file clientSecret: SECRET_AAD_APP_CLIENT_SECRET objectId: AAD_APP_OBJECT_ID tenantId: AAD_APP_TENANT_ID authority: AAD_APP_OAUTH_AUTHORITY authorityHost: AAD_APP_OAUTH_AUTHORITY_HOST {{/if}} # Creates a Teams app - uses: teamsApp/create with: # Teams app name name: {{teamsAppName}} # Write the information of created resources into environment file for # the specified environment variable(s). writeToEnvironmentFile: teamsAppId: TEAMS_APP_ID {{#if activePlugins.fx-resource-bot}} # Create or reuse an existing Microsoft Entra application for bot. - uses: botAadApp/create with: # The Microsoft Entra application's display name name: {{appName}}bt$\{{RESOURCE_SUFFIX}} writeToEnvironmentFile: # The Microsoft Entra application's client id created for bot. botId: BOT_ID # The Microsoft Entra application's client secret created for bot. botPassword: SECRET_BOT_PASSWORD {{/if}} - uses: arm/deploy # Deploy given ARM templates parallelly. with: # AZURE_SUBSCRIPTION_ID is a built-in environment variable, # if its value is empty, TeamsFx will prompt you to select a subscription. # Referencing other environment variables with empty values # will skip the subscription selection prompt. subscriptionId: $\{{AZURE_SUBSCRIPTION_ID}} # AZURE_RESOURCE_GROUP_NAME is a built-in environment variable, # if its value is empty, TeamsFx will prompt you to select or create one # resource group. # Referencing other environment variables with empty values # will skip the resource group selection prompt. resourceGroupName: $\{{AZURE_RESOURCE_GROUP_NAME}} templates: - path: ./templates/azure/main.bicep # Relative path to this file # Relative path to this yaml file. # Placeholders will be replaced with corresponding environment # variable before ARM deployment. parameters: ./templates/azure/azure.parameters.$\{{TEAMSFX_ENV}}.json # Required when deploying ARM template deploymentName: teams_toolkit_deployment # Microsoft 365 Agents Toolkit will download this Bicep CLI version from GitHub. If you remove this config, it will use the Bicep CLI in your system's PATH. bicepCliVersion: v0.4.613 {{#if activePlugins.fx-resource-frontend-hosting}} - uses: azureStorage/enableStaticWebsite with: storageResourceId: $\{{ {{~placeholderMappings.[state.fx-resource-frontend-hosting.storageResourceId]~}} }} indexPage: index.html errorPage: error.html {{/if}} {{#if activePlugins.fx-resource-aad-app-for-teams}} # Apply the Microsoft Entra manifest to an existing Microsoft Entra app. Will use the object id in # manifest file to determine which Microsoft Entra app to update. - uses: aadApp/update with: # Relative path to this file. Environment variables in manifest will # be replaced before apply to Microsoft Entra app manifestPath: ./aad.manifest.json outputFilePath : ./build/aad.manifest.$\{{TEAMSFX_ENV}}.json {{/if}} # Validate using manifest schema - uses: teamsApp/validateManifest with: # Path to manifest template manifestPath: ./appPackage/manifest.json # Build Teams app package with latest env value - uses: teamsApp/zipAppPackage with: # Path to manifest template manifestPath: ./appPackage/manifest.json outputZipPath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip outputJsonPath: ./build/appPackage/manifest.$\{{TEAMSFX_ENV}}.json # Validate app package using validation rules - uses: teamsApp/validateAppPackage with: # Relative path to this file. This is the path for built zip file. appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip # Apply the Teams app manifest to an existing Teams app in # Teams Developer Portal. # Will use the app id in manifest file to determine which Teams app to update. - uses: teamsApp/update with: # Relative path to this file. This is the path for built zip file. appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip {{#if isM365}} # Extend your Teams app to Outlook and the Microsoft 365 app - uses: teamsApp/extendToM365 with: # Relative path to the build app package. appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip # Write the information of created resources into environment file for # the specified environment variable(s). writeToEnvironmentFile: titleId: M365_TITLE_ID appId: M365_APP_ID {{/if}} # Triggered when 'teamsfx deploy' is executed deploy: {{#if activePlugins.fx-resource-frontend-hosting}} # Run npm command - uses: cli/runNpmCommand name: install tab dependencies with: workingDirectory: tabs args: install # Run npm command - uses: cli/runNpmCommand name: build tab app {{#if activePlugins.fx-resource-aad-app-for-teams}} env: REACT_APP_CLIENT_ID: $\{{AAD_APP_CLIENT_ID}} REACT_APP_START_LOGIN_PAGE_URL: $\{{ {{~placeholderMappings.[state.fx-resource-frontend-hosting.endpoint]~}} }}/auth-start.html {{#if activePlugins.fx-resource-function}} REACT_APP_FUNC_ENDPOINT: $\{{ {{~placeholderMappings.[state.fx-resource-function.functionEndpoint]~}} }} REACT_APP_FUNC_NAME: {{defaultFunctionName}} {{/if}} {{/if}} with: workingDirectory: tabs args: run build --if-present # Deploy bits to Azure Storage Static Website - uses: azureStorage/deploy with: workingDirectory: tabs # Deploy base folder. This folder includes manifest files for Microsoft Entra app and Teams app that should be ignored using the ignoreFile. artifactFolder: build # The resource id of the cloud resource to be deployed to. # This key will be generated by arm/deploy action automatically. # You can replace it with your existing Azure Resource id # or add it to your environment variable file. resourceId: $\{{ {{~placeholderMappings.[state.fx-resource-frontend-hosting.storageResourceId]~}} }} {{/if}} {{#if activePlugins.fx-resource-bot}} {{#if isFunctionBot}} - uses: cli/runNpmCommand name: install bot dependencies with: workingDirectory: bot args: install {{#if isTypescript}} - uses: cli/runNpmCommand name: build bot app with: workingDirectory: bot args: run build --if-present {{/if}} # Deploy your application to Azure Functions using the zip deploy feature. # For additional details, see at https://aka.ms/zip-deploy-to-azure-functions - uses: azureFunctions/zipDeploy with: workingDirectory: bot # Deploy base folder artifactFolder: . # Ignore file location, leave blank will ignore nothing ignoreFile: .funcignore # The resource id of the cloud resource to be deployed to. # This key will be generated by arm/deploy action automatically. # You can replace it with your existing Azure Resource id # or add it to your environment variable file. resourceId: $\{{ {{~botResourceId~}} }} {{else}} # Run npm command - uses: cli/runNpmCommand name: install bot dependencies with: workingDirectory: bot args: install {{#if isTypescript}} # Run npm command - uses: cli/runNpmCommand name: build bot app with: workingDirectory: bot args: run build --if-present {{/if}} # Deploy your application to Azure App Service using the zip deploy feature. # For additional details, refer to https://aka.ms/zip-deploy-to-app-services. - uses: azureAppService/zipDeploy with: workingDirectory: bot # Deploy base folder. artifactFolder: . # The resource id of the cloud resource to be deployed to. # This key will be generated by arm/deploy action automatically. # You can replace it with your existing Azure Resource id # or add it to your environment variable file. resourceId: $\{{ {{~botResourceId~}} }} {{/if}} {{/if}} {{#if activePlugins.fx-resource-function}} # Install development tool(s) - uses: devTool/install with: dotnet: true # Write the information of installed development tool(s) into environment # file for the specified environment variable(s). writeToEnvironmentFile: dotnetPath: DOTNET_PATH - uses: cli/runNpmCommand name: install api dependencies with: workingDirectory: api args: install - uses: cli/runDotnetCommand with: workingDirectory: api args: build extensions.csproj -o bin --ignore-failed-sources execPath: $\{{ {{~dotnetPath~}} }} # Use dotnet installed by devTool/install action {{#if isTypescript}} - uses: cli/runNpmCommand name: build api app with: workingDirectory: api args: run build --if-present {{/if}} # Deploy your application to Azure Functions using the zip deploy feature. # For additional details, see at https://aka.ms/zip-deploy-to-azure-functions - uses: azureFunctions/zipDeploy with: workingDirectory: api # Deploy base folder artifactFolder: . # Ignore file location, leave blank will ignore nothing ignoreFile: .funcignore # The resource id of the cloud resource to be deployed to. # This key will be generated by arm/deploy action automatically. # You can replace it with your existing Azure Resource id # or add it to your environment variable file. resourceId: $\{{ {{~placeholderMappings.[state.fx-resource-function.functionAppResourceId]~}} }} {{/if}} # Triggered when 'teamsfx publish' is executed publish: # Validate using manifest schema - uses: teamsApp/validateManifest with: # Path to manifest template manifestPath: ./appPackage/manifest.json # Build Teams app package with latest env value - uses: teamsApp/zipAppPackage with: # Path to manifest template manifestPath: ./appPackage/manifest.json outputZipPath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip outputJsonPath: ./build/appPackage/manifest.$\{{TEAMSFX_ENV}}.json # Validate app package using validation rules - uses: teamsApp/validateAppPackage with: # Relative path to this file. This is the path for built zip file. appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip # Apply the Teams app manifest to an existing Teams app in # Teams Developer Portal. # Will use the app id in manifest file to determine which Teams app to update. - uses: teamsApp/update with: # Relative path to this file. This is the path for built zip file. appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip # Publish the app to # Teams Admin Center (https://admin.teams.microsoft.com/policies/manage-apps) # for review and approval - uses: teamsApp/publishAppPackage with: appPackagePath: ./build/appPackage/appPackage.$\{{TEAMSFX_ENV}}.zip # Write the information of created resources into environment file for # the specified environment variable(s). writeToEnvironmentFile: publishedAppId: TEAMS_APP_PUBLISHED_APP_ID