Giter Club home page Giter Club logo

pbi-tools's Introduction

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: https://github.com/pbi-tools/adventureworksdw2020-pbix

GitHub release (latest by date) Twitter Follow

User Notes

Developer Notes

Build System

  • All build targets are implemented using FAKE.
  • Dependencies are managed using Paket.
  • Main entry point for all build tasks is .\build.cmd.
  • The fake-cli tool is installed as a local .NET Core Tool, see .config\dotnet-tools.json. That's why a .Net Core 3.x SDK is required to build the project. The build.cmd script handles the tool installation.

Prerequisites

  • Visual Studio 2019 or later (for MSBuild dependencies)
  • .Net 4.7.2 Targeting Pack
  • .Net 6.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 for release versioning. The build system uses the first entry in 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.retail.amd64
dotnet paket update Microsoft.AnalysisServices.AdomdClient.retail.amd64

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

Pulling in Upstream Changes

git submodule update --remote

pbi-tools's People

Contributors

mthierba avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.