Update resources and add staging info
|
@ -18,7 +18,7 @@ jobs:
|
|||
with:
|
||||
csproj: src/MobileBlazor/mauiapp/NetPodsMauiBlazor.csproj
|
||||
root_path: src/MobileBlazor/mauiapp/
|
||||
encrypted_keystore_path: android-keystore-test.jks.gpg
|
||||
encrypted_keystore_path: deploy/Android/android-keystore-test.jks.gpg
|
||||
keystore_path: android-keystore-test.keystore
|
||||
secrets:
|
||||
android_keystore_gpg_pass: ${{secrets.ANDROID_KEYSTORE_GPG_PASSWORD}}
|
||||
|
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
with:
|
||||
csproj: src/Mobile/Microsoft.NetConf2021.Maui.csproj
|
||||
root_path: src/Mobile/
|
||||
encrypted_keystore_path: android-keystore-test.jks.gpg
|
||||
encrypted_keystore_path: deploy/Android/android-keystore-test.jks.gpg
|
||||
keystore_path: android-keystore-test.keystore
|
||||
secrets:
|
||||
android_keystore_gpg_pass: ${{secrets.ANDROID_KEYSTORE_GPG_PASSWORD}}
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
# Microsoft Open Source Code of Conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
||||
|
||||
Resources:
|
||||
|
||||
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
|
||||
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
|
||||
- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
|
10
README.md
|
@ -25,12 +25,12 @@ In addition, we created an Approval App using [Microsoft Power Apps](https://doc
|
|||
|
||||
You can browse a [live running version of the .NET Podcasts app](https://dotnetpodcasts.azurewebsites.net/) powered by ASP.NET Core and Blazor.
|
||||
|
||||
![Logo](./docs/net-podcasts.png)
|
||||
![Logo](./docs/images/net-podcasts.png)
|
||||
|
||||
|
||||
## Application Architecture Diagram
|
||||
|
||||
![.NET Podcast Application Diagram](docs/arch_diagram_podcast.png)
|
||||
![.NET Podcast Application Diagram](./docs/images/arch_diagram_podcast.png)
|
||||
|
||||
## Repositories
|
||||
|
||||
|
@ -47,7 +47,7 @@ Additionally, we build an application using [Microsoft Power Apps](https://docs.
|
|||
|
||||
## Full Deployment with GitHub Actions
|
||||
|
||||
`dotnet-podcasts` repo is configured to deploy all services and websites automatically to Azure using GitHub Actions. [Follow the detailed guidelines](Deploy-websites-services.md) to setup GitHub Actions on your fork.
|
||||
`dotnet-podcasts` repo is configured to deploy all services and websites automatically to Azure using GitHub Actions. [Follow the detailed guidelines](docs/deploy-websites-services.md) to setup GitHub Actions on your fork.
|
||||
|
||||
## Local Deployment Quickstart
|
||||
|
||||
|
@ -74,7 +74,7 @@ The apps are configured to speak to `localhost` on the correct ports for each se
|
|||
|
||||
Ensure that you have the following services running in Docker (podcast.api, listentogether.hub, podcast.updater.worker, podcast.db, storage):
|
||||
|
||||
![Configured Docker services](docs/docker/docker-app-config.png)
|
||||
![Configured Docker services](docs/images/docker-app-config.png)
|
||||
|
||||
### Backend Services
|
||||
|
||||
|
@ -82,7 +82,7 @@ Open the [Services solution](src/Services) and pick a service to run locally suc
|
|||
|
||||
Ensure that the following services are running in Docker, note that you only need the `podcast.db` and `storage`:
|
||||
|
||||
![Configured Docker services](docs/docker/docker-services-config.png)
|
||||
![Configured Docker services](docs/images/docker-services-config.png)
|
||||
|
||||
## Local Deployment with Visual Studio
|
||||
|
||||
|
|
16
SUPPORT.md
|
@ -1,13 +1,3 @@
|
|||
# TODO: The maintainer of this repo has not yet edited this file
|
||||
|
||||
**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
|
||||
|
||||
- **No CSS support:** Fill out this template with information about how to file issues and get help.
|
||||
- **Yes CSS support:** Fill out an intake form at [aka.ms/spot](https://aka.ms/spot). CSS will work with/help you to determine next steps. More details also available at [aka.ms/onboardsupport](https://aka.ms/onboardsupport).
|
||||
- **Not sure?** Fill out a SPOT intake as though the answer were "Yes". CSS will help you decide.
|
||||
|
||||
*Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
|
||||
|
||||
# Support
|
||||
|
||||
## How to file issues and get help
|
||||
|
@ -16,10 +6,6 @@ This project uses GitHub Issues to track bugs and feature requests. Please searc
|
|||
issues before filing new issues to avoid duplicates. For new issues, file your bug or
|
||||
feature request as a new Issue.
|
||||
|
||||
For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
|
||||
FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
|
||||
CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
|
||||
|
||||
## Microsoft Support Policy
|
||||
|
||||
Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
|
||||
Support for this sample app is limited to the resources listed above.
|
||||
|
|
|
@ -18,7 +18,7 @@ Learn more about it with [Microsoft Learn - Introduction to Azure](https://docs.
|
|||
|
||||
To understand the dotnet-podcasts architecture better, see the diagram below.
|
||||
|
||||
![.NET Podcast Application Diagram](docs/arch_diagram_podcast.png)
|
||||
![.NET Podcast Application Diagram](images/arch_diagram_podcast.png)
|
||||
|
||||
- The backend services `Podcasts.API`, `Podcasts.Ingestion` and `Podcast.Updater` are deployed to [Azure Container Apps (Preview)](https://docs.microsoft.com/azure/container-apps/overview). [Azure Container Registry](https://docs.microsoft.com/azure/container-registry/) is used to store the docker images securely and Log Analytics Workspace is configured automatically to monitor telemetry.
|
||||
- Web Apps including ASP.NET Core Website, Listen Together SignalR hub and the Blazor Web App are deployed to Azure App Service (Linux).
|
||||
|
@ -86,15 +86,15 @@ To connect GitHub Actions, you will create a secret named `AZURE_CREDENTIALS` th
|
|||
|
||||
1. Open your GitHub repository and go to **Settings**.
|
||||
|
||||
![Select Settings in the navigation](docs/github-repo-settings.png)
|
||||
![Select Settings in the navigation](images/github-repo-settings.png)
|
||||
|
||||
1. Under **Security** Select **Secrets** -> **Actions** and then **New repository secret**.
|
||||
|
||||
![Choose to add a secret](docs/select-secrets.png)
|
||||
![Choose to add a secret](images/select-secrets.png)
|
||||
|
||||
1. Paste in your JSON object for your service principal with the name `AZURE_CREDENTIALS`.
|
||||
|
||||
![Add a secret in GitHub](docs/azure-secret-add.png)
|
||||
![Add a secret in GitHub](images/azure-secret-add.png)
|
||||
|
||||
1. Save by selecting **Add secret**.
|
||||
|
||||
|
@ -119,7 +119,7 @@ Go ahead and add the following GitHub secrets. Some of the values need to be uni
|
|||
|
||||
Once configured correctly, you should be having 13 secrets. Here's our list for reference:
|
||||
|
||||
![Configured GitHub Secrets](docs/gh-configured-secrets.png)
|
||||
![Configured GitHub Secrets](images/gh-configured-secrets.png)
|
||||
|
||||
That's it! You're all set. Now, let's run the configured Workflows, one by one, to deploy the Websites and Backend services. Be cognizant of pricing tiers for different services. You may want to adjust your App Service plan and database tiers to control costs.
|
||||
|
||||
|
@ -127,7 +127,7 @@ That's it! You're all set. Now, let's run the configured Workflows, one by one,
|
|||
|
||||
Go to the GitHub actions tab, and enable the workflows.
|
||||
|
||||
![Enable workflows in GitHub](docs/Enable-Workflow.png)
|
||||
![Enable workflows in GitHub](images/Enable-Workflow.png)
|
||||
|
||||
## Run the Podcast API CICD first
|
||||
|
||||
|
@ -151,18 +151,22 @@ Then run the web action with:
|
|||
|
||||
Once all the runs are complete, you'll see something like this under the Actions tab.
|
||||
|
||||
![Al workflow runs](docs/all-workflow-runs.png)
|
||||
![Al workflow runs](images/all-workflow-runs.png)
|
||||
|
||||
That's it! Now, Navigate to you https://`WEBAPP_NAME`.azurewebsites.net/ to watch the podcast app in action!
|
||||
|
||||
The GitHub workflow is also configured to deploy these apps only if the source within specific folders such as `src/Services/Podcasts/` is changed. So now, if you make some changes to the code, build locally, and then commit changes to see the GitHub workflow kickstart. Need any ideas for code change? You'll notice an empty `GlobalUsings.cs` in the `Podcasts.API` project. Go ahead refactor the code and move your global namespaces there.
|
||||
|
||||
## Staging Environment
|
||||
|
||||
In addition to the main CI/CD pipeline that creates and publishes the podcast app to Azure, you can also enable a full staging environment that gets run and deployed on pull requests. If you do nothing all PRs will push to your main resources, but if you setup an Environment named staging in your repos settings you can create the same GitHub Secrets outlined. The only difference being a different name such as appendng staging onto the end of every resource. Once these secrets are setup when you make a PR these new secrets will be used deploying to a new Azure Resource Group with new resources.
|
||||
|
||||
Happy Deployments!
|
||||
|
||||
---
|
||||
## Azure Container Apps Demo
|
||||
|
||||
To run the Azure Container Apps demo that we showcased at .NET Conf, checkout the [Azure Container Apps](docs/demos/azurecontainerapps).
|
||||
To run the Azure Container Apps demo that we showcased at .NET Conf, checkout the [Azure Container Apps](images/demos/azurecontainerapps).
|
||||
|
||||
## Individual Deployment Guides and Configurations
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 977 KiB After Width: | Height: | Size: 977 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |