/gradle-pdbindex-plugin

Gradle plugin to run PDB indexing on debug files

Primary LanguageGroovyApache License 2.0Apache-2.0

Gradle PdbIndex Plugin Build status Build Status

This plugin aims at working things around PDBs, mainly source indexing.

Below tasks are provided by the plugin:

sourceLink

Sample usage:

buildscript {
    repositories {
      mavenCentral()
    }

    dependencies {
        classpath "com.ullink.gradle:gradle-pdbindex-plugin:0.9"
    }
}

apply plugin:'pdbindex'

// this task will execute SourceLink on the generated asembly, for PDB indexing
sourceLinkIndexing {
  // directory where SourceLink.exe can be found
  // Note that you may use gradle nuget plugin together with a nuget install task to download it
  // You may also add it to your project nuget dependencies, and reference it from there
  sourcelinkDir = "${sourcelinkNugetInstall.outputDirectory}/SourceLink/tools"

  // project (e.g. csproj) to pass to SourceLink, defaults to pdbindex.mainProject if not set
  projectFile = msbuild.mainProject?.projectFile

  // git viewer raw URL, use '{0}' placeholder for GIT commit (SHA1) and '%var2%' for file path
  // Note that because of SRCSRV limitations, the url may not contain non-valid-windows-path characters (e.g. '?' won't work)
  url = "http://my-git-server/${project.name}/%var2%/raw/{0}"

  // some other defaults, overwrite if needed, look for the param meaning in SourceLink
  verifyGit = false
  verifyPdb = true
  repo = project.rootDir
}

See also

Gradle Msbuild plugin - Allows to build VS projects & solutions.

Gradle NuGet plugin - Allows to restore NuGet packages prior to building the projects with this plugin, and to pack&push nuget packages.

Gradle NUnit plugin - Allows to execute NUnit tests from CI (used with this plugin to build the projects prior to UT execution)

Gradle OpenCover plugin - Allows to execute the UTs through OpenCover for coverage reports.

You can see all these plugins in use on ILRepack project (build.gradle).

License

All these plugins are licensed under the Apache License, Version 2.0 with no warranty (expressed or implied) for any purpose.