[ ] Confirm new or updated functionality must be documented in the documentation.
[ ] If adding a new tool, update the list of available tools on the documentation home page.
[ ] Merge any feature branches that are ready to dev.
[ ] Create a PR to merge the feature branch into dev.
[ ] Follow the normal PR process to merge the PR.
š Finalize release
[ ] Review the changelog to ensure it encapsulates all changes.
Move all released changes to an official numbered version section.
If there are committed changes in a feature branch that you want to mention, add them to an "Unreleased" section.
[ ] Update the version: <root>/src/scripts/Update-Version [-Major|Minor|Patch]
[ ] Build all toolkit templates and resolve any issues: <root>/src/scripts/Build-Toolkit
This step is optional, but can catch issues earlier. You can also add the -Build parameter to the publish command in the next step.
[ ] Ensure all tests pass: <root>/src/scripts/Test-PowerShell -Unit -Integration
[ ] Package all release files
[ ] Run Package-Toolkit -Build -PowerBI script.
[ ] For the Cost summary report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
ā ļø Power BI does not remember the sensitivity setting for Power BI projects so this needs to be done for each release. If not done, the report will not open for anyone outside of Microsoft.
[ ] Remove all but the following queries from Transform data: CostDetails, Prices.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
ā ļø DO NOT save the above changes back to the Power BI project files!
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Data ingestion report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
ā ļø Power BI does not remember the sensitivity setting for Power BI projects so this needs to be done for each release. If not done, the report will not open for anyone outside of Microsoft.
[ ] Remove all but the following queries from Transform data: CostDetails, Hubs*, Storage*.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
ā ļø DO NOT save the above changes back to the Power BI project files!
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Governance report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
ā ļø Power BI does not remember the sensitivity setting for Power BI projects so this needs to be done for each release. If not done, the report will not open for anyone outside of Microsoft.
[ ] Remove all but the following queries from Transform data: CostDetails and everything under Resource Graph.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
ā ļø DO NOT save the above changes back to the Power BI project files!
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Rate optimization report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
ā ļø Power BI does not remember the sensitivity setting for Power BI projects so this needs to be done for each release. If not done, the report will not open for anyone outside of Microsoft.
[ ] Remove all but the following queries from Transform data: CostDetails, InstanceSizeFlexibility, Prices, Reservation* and all Resource Graph queries.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
ā ļø DO NOT save the above changes back to the Power BI project files!
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Workload optimization report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
ā ļø Power BI does not remember the sensitivity setting for Power BI projects so this needs to be done for each release. If not done, the report will not open for anyone outside of Microsoft.
[ ] Remove all but the following queries from Transform data: CostDetails, Prices, AdvisorRecommendations, Disks, NetworkInterfaces, PublicIPAddresses, Resources, Subscriptions, VirtualMachines.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
ā ļø DO NOT save the above changes back to the Power BI project files!
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] Check the docs for broken links:
[ ] Create a personal fork of the main repo.
[ ] If you already have one, update it to the latest.
[ ] Enable GitHub pages in your fork to use the dev branch docs folder.
[ ] Verify the pages build and deployment action completes successfully.
[ ] Open a dead link checker (e.g., deadlinkchecker.com) and check https://{your-username}.github.io/finops-toolkit.
Ignore link/href errors for new pages that have not been released in the official main branch.
Ignore any Download errors for the new release or any new files that haven't been released in the official main branch.
Ignore the Full changelog error for the new release, which hasn't been released in the official main branch.
Ignore the 403 error for learn.finops.org.
Ignore any 429 errors from GitHub. These are caused due to all the contributor links that are checked.
[ ] Fix any broken links, push changes, and rerun the tool.
[ ] Submit PRs to publish bicep modules in the Bicep Registry.
[ ] Update your fork and local clone of the Bicep Registry.
Make sure you're in the main branch of the target repo when publishing a new template. If in another folder, the script will assume you're updating that branch and not create a new one.
Complete PR template requirements and set the name to FinOps toolkit v#.# ā scheduledactions.
Review the code that's changed in the PR, verify that the changelog covers everything, and update as needed.
If you make changes, re-publish without committing: <root>/src/scripts/Publish-Toolkit.ps1 "scheduledactions" -Build
Switch to the target repo folder and verify your changes were applied correctly.
Commit and push your changes.
Return to the PR URL and publish the PR.
[ ] Submit PRs to publish templates to the Azure Quickstart Templates repo.
[ ] Update your fork and local clone of the Azure Quickstart Templates.
Make sure you're in the master branch of the target repo when publishing a new template. If in another folder, the script will assume you're updating that branch and not create a new one.
The documentation site may take 5 minutes to update after the merge is committed. If not updated, look at GitHub actions to see if there are any failures.
Complete the following tasks to publish a monthly release.
šļø Monthly updates
<root>/src/scripts/Build-OpenData.ps1 -PowerShell -Test
<root>/src/scripts/Build-OpenData.ps1 -PowerShell -Test
<root>/src/scripts/Build-OpenData.ps1 -PowerShell -Test
<root>/src/scripts/Build-OpenData.ps1 -PowerShell -Test
az bicep upgrade
š Core features
dev
:<root>/src/scripts/Merge-DevBranch.ps1 *
<root>/src/scripts/Merge-DevBranch.ps1 features/<name>
<root>/src/scripts/Build-Toolkit.ps1
.<root>/src/scripts/Test-PowerShell.ps1 -Unit -Integration -Build
.dev
.dev
.š Finalize release
[ ] Review the changelog to ensure it encapsulates all changes.
[ ] Update the version:
<root>/src/scripts/Update-Version [-Major|Minor|Patch]
[ ] Build all toolkit templates and resolve any issues:
<root>/src/scripts/Build-Toolkit
[ ] Ensure all tests pass:
<root>/src/scripts/Test-PowerShell -Unit -Integration
[ ] Package all release files
[ ] Run
Package-Toolkit -Build -PowerBI
script.[ ] For the Cost summary report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
[ ] Remove all but the following queries from Transform data: CostDetails, Prices.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Data ingestion report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
[ ] Remove all but the following queries from Transform data: CostDetails, Hubs*, Storage*.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Governance report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
[ ] Remove all but the following queries from Transform data: CostDetails and everything under Resource Graph.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Rate optimization report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
[ ] Remove all but the following queries from Transform data: CostDetails, InstanceSizeFlexibility, Prices, Reservation* and all Resource Graph queries.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] For the Workload optimization report:
[ ] Save the file as a PBIX file to the release folder.
[ ] Change the sensitivity to Public. If the option is disabled, close the file and reopen it.
[ ] Remove all but the following queries from Transform data: CostDetails, Prices, AdvisorRecommendations, Disks, NetworkInterfaces, PublicIPAddresses, Resources, Subscriptions, VirtualMachines.
[ ] Remove the Populate missing prices parameter and its reference from the CostDetails query.
[ ] Remove the Advisor for disks and Compliance calculation calculated tables.
[ ] Verify each page has data.
[ ] Select the Get started page and save the PBIX again in the release folder.
[ ] Copy the first paragraph from the Get started page and export a template (PBIT file) in the release folder. Use the copied text for the description and add "Learn more at https://aka.ms/ftk/pbi/{report-name}" as a separate paragraph in the description.
[ ] Check the docs for broken links:
dev
branchdocs
folder.pages build and deployment
action completes successfully.https://{your-username}.github.io/finops-toolkit
.main
branch.main
branch.main
branch.š Publish release
<root>/src/scripts/Publish-Toolkit.ps1 "scheduledactions" -Commit
FinOps toolkit v#.# ā scheduledactions
.<root>/src/scripts/Publish-Toolkit.ps1 "scheduledactions" -Build
<root>/src/scripts/Publish-Toolkit.ps1 "finops-hub" -Commit
FinOps toolkit v#.# ā FinOps hub
.<root>/src/scripts/Publish-Toolkit.ps1 "finops-hub" -Build
<root>/src/scripts/Publish-Toolkit.ps1 "governance-workbook" -Commit
FinOps toolkit v#.# ā Governance workbook
.<root>/src/scripts/Publish-Toolkit.ps1 "governance-workbook" -Build
<root>/src/scripts/Publish-Toolkit.ps1 "optimization-workbook" -Commit
FinOps toolkit v#.# ā Optimization workbook
.<root>/src/scripts/Publish-Toolkit.ps1 "optimization-workbook" -Build
<root>/src/scripts/Merge-DevBranch.ps1 main
main
.Mmm yyyy (v#.#)
.Status: Released
.š Post-release clean-up
Toolkit / Should return all known releases
PowerShell integration test based on the latest version.<root>/src/scripts/Update-Version.ps1 -Minor -Label dev