windows command line nuget pack and push - sreeragravindran/references GitHub Wiki

@echo off
rem ********************************************************************************
rem Packages and publishes the NuGet packages.
rem ********************************************************************************
setlocal enabledelayedexpansion

:help_requested
if /i "%~1" == "-?"     call :usage & exit /b 0
if /i "%~1" == "--help" call :usage & exit /b 0

:check_args
if /i "%~1" == "" call :usage & exit /b 1

:configure
set publishFolder=%~1
set buildType=release

if /i "%~2" == "--debug" (
    set buildType=debug
    shift
)
if /i "%~2" == "--release" (
    set buildType=release
    shift
)

set root=%~dp0
set root=%root:~0,-1%

:check_folder
if not exist "%publishFolder%" (
    echo ERROR: Invalid publish folder '%publishFolder%'
    exit /b 1
)

if exist "%publishFolder%\*.nupkg" (
    echo ****************************************
    echo WARNING: The publish folder is not empty
    echo ****************************************
)


:for_all_packages
for /d %%d in (YourSolution*) do (
    if exist "%%d\*.nuspec" (
        echo Publishing '%%d'...
        pushd "%%d"
        ..\nuget.exe pack -Properties Configuration=release -Version <Version>
        if !errorlevel! neq 0 popd & exit /b !errorlevel!
        for %%p in (*.nupkg) do (
            ..\nuget.exe push "%%p" -Source "<nuget repo source> -ApiKey <api-key>             
        )
        popd
    )
)

:success
exit /b 0

:usage
    echo.
    echo USAGE: %~n0 ^<folder^> [--debug ^| --release]
    echo.
    echo e.g.   %~n0 D:\Work\Test\NuGet --release
    echo.
    echo Note: --release is the default.
    echo.
goto :eof
⚠️ **GitHub.com Fallback** ⚠️