Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pbi-tools/pbi-tools
Power BI DevOps & Source Control Tool
https://github.com/pbi-tools/pbi-tools
dataops devops pbix power-bi source-control
Last synced: 30 days ago
JSON representation
Power BI DevOps & Source Control Tool
- Host: GitHub
- URL: https://github.com/pbi-tools/pbi-tools
- Owner: pbi-tools
- License: agpl-3.0
- Created: 2020-05-31T16:55:24.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-05T17:16:25.000Z (about 1 month ago)
- Last Synced: 2024-11-05T18:27:57.729Z (about 1 month ago)
- Topics: dataops, devops, pbix, power-bi, source-control
- Language: C#
- Homepage: https://pbi.tools/cli
- Size: 15.5 MB
- Stars: 322
- Watchers: 23
- Forks: 60
- Open Issues: 153
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- jimsghstars - pbi-tools/pbi-tools - Power BI DevOps & Source Control Tool (C# #)
README
# pbi-tools
`pbi-tools` is a command-line tool bringing source-control features to Power BI. It works alongside Power BI Desktop and enables mature enterprise workflows for Power BI projects.
An example project is available here:
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/pbi-tools/pbi-tools)](https://github.com/pbi-tools/pbi-tools/releases/latest)
[![Twitter Follow](https://img.shields.io/twitter/follow/mthierba)](https://twitter.com/mthierba) [![Join the chat at https://gitter.im/pbi-tools/general](https://badges.gitter.im/pbi-tools/general.svg)](https://gitter.im/pbi-tools/general?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)- Twitter Hashtag: [#pbitools](https://twitter.com/search?q=%23pbitools&src=typed_query)
## User Notes
- See
## Developer Notes
### Build System
- All build targets are implemented using [FAKE](https://fake.build/).
- Dependencies are managed using [Paket](https://fsprojects.github.io/Paket/).
- Main entry point for all build tasks is `.\build.cmd`.
- The [fake-cli](https://fake.build/fake-commandline.html) tool is installed as a [local .NET Core Tool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-local-tool), see [.config\dotnet-tools.json](./.config/dotnet-tools.json). The `build.cmd` script handles the tool installation.### Prerequisites
- Visual Studio 2022 17.2 or later (for MSBuild dependencies), incl C# 11 Preview
- .Net 4.7.2 Targeting Pack
- .Net 8.0 SDK
- Power BI Desktop x64 (Must be installed in default location for local development: `C:\Program Files\Microsoft Power BI Desktop\`)### List Build Targets
dotnet fake build --list
### Versioning
The project strictly adheres to [SemVer v2](https://semver.org/) for release versioning. The build system uses the first entry in [RELEASE_NOTES.md](./RELEASE_NOTES.md) to inject version numbers into build artifacts.
### Diagnostics
- Log output can be controlled using the environment variable `PBITOOLS_LogLevel`.
- Allowed values are:
- Verbose
- Debug
- Information
- Warning
- Error
- Fatal
- The default is ***Information***, which is also effective when an unknown/invalid option has been specified.### Build
.\build.cmd Build
### Run Tests
.\build.cmd Test
### Run All Targets (Build, Publish, Test, UsageDocs, Pack)
.\build.cmd Pack
### Run only the specified build target
.\build.cmd UsageDocs -s
dotnet fake build -s -t SmokeTest### Install Dependencies
dotnet paket install
_That is generally not needed as the `build.cmd` script takes care of fetching dependencies. However, it could be useful to run this manually on a fresh clone or after making changes in the `paket.dependencies` file._
### Update Specific Dependency to latest version (ex: AMO)
dotnet paket update Microsoft.AnalysisServices
dotnet paket update Microsoft.AnalysisServices.AdomdClient### Updating All Dependencies (NuGet)
dotnet paket update
dotnet paket update -g Fake-Build### Find outdated dependencies
dotnet paket outdated -g Main
### Invoke Build script directly
dotnet fake {...}
dotnet fake -t Build
dotnet fake --version### Extract embedded sample PBIX with local build version and using default settings
.\pbi-tools.local.cmd extract '.\data\Samples\Adventure Works DW 2020.pbix'
### Extract embedded sample PBIX with local build version and 'Raw' serialization mode, into custom output folder
.\pbi-tools.local.cmd extract '.\data\Samples\Adventure Works DW 2020.pbix' -extractFolder '.\data\Samples\Adventure Works DW 2020 - Raw' -modelSerialization Raw
### Enable Debug logging (PowerShell)
$env:PBITOOLS_LogLevel = "Debug"
### Fast local build (no clean)
.\build.cmd Publish -s
.\build.cmd Pack -s## Git Submodules
### Clone with submodules
git clone --recurse-submodules https://github.com/pbi-tools/pbi-tools.git
### Init & Update
git submodule update --init
### Pulling in Upstream Changes
git submodule update --remote
### Clone specific single branch into named folder, with submodules
git clone -b Release/1.0.0-beta.9 --single-branch --recurse-submodules https://github.com/pbi-tools/pbi-tools.git ./1.0.0-beta.9