name: nuget-build-and-compare description: "Pack a .nuspec file into a .nupkg." inputs: name: description: "The name of the package." required: true input: description: "The json input which will be converted into yaml." required: true defaultVersion: description: "Version of the .nupkg file." required: true default: 1.0.0 outputDirectory: description: "Directory for the output .nupkg." required: true url: description: "Url of the GitHub server instance." required: true default: ${{ github.server_url }} organization: description: "Organization to search." required: true default: ${{ github.repository_owner }} username: description: "Username for the nuget repository to search." required: true default: ${{ github.actor }} password: description: "Password or ApiKey of the nuget repository to search." required: true default: ${{ github.token }} outputs: nupkg: description: "The generated output .nupkg file." value: ${{ steps.package.outputs.nupkg }} nupkgName: description: "The generated output .nupkg file's name." value: ${{ steps.package.outputs.nupkgName }} hasChanged: description: "Whether or not the .nupkg files match." value: ${{ steps.compare.outputs.success != 'true' }} runs: using: "composite" steps: - name: "Get the next version of the package." uses: act/common/nuget/nuget-get-next-branched-version@master id: nuget with: name: ${{ inputs.name }} defaultVersion: ${{ inputs.defaultVersion }} url: ${{ inputs.url }} organization: ${{ inputs.organization }} apiToken: ${{ inputs.password }} - name: "Get yaml from json." id: convert uses: act/common/yq/yq-convert@master with: from: json to: yaml input: ${{ inputs.input }} - name: "Build .nupkg." id: package uses: act/common/tpl/tpl-to-nupkg@master with: input: ${{ steps.convert.outputs.result }} version: ${{ steps.nuget.outputs.nextVersion }} outputDirectory: ${{ inputs.outputDirectory }} - name: "Compare .nupkg to remote .nupkg." if: ${{ steps.nuget.outputs.latestVersion }} id: compare uses: act/common/nuget/nuget-compare-version@master with: lhs: ${{ steps.package.outputs.nupkg }} version: ${{ steps.nuget.outputs.latestVersion }} name: ${{ inputs.name }} username: ${{ inputs.username }} password: ${{ inputs.password }} url: ${{ inputs.url }}/_registry/nuget/${{ inputs.organization }}/index.json