Jenkinsを使用してdotnetコマンドでWebアプリのビルドと発行をしてFTPSを使ってデプロイする使用例:
1、ジョブを作成する:
新規プロジェクトの作成から、「フリースタイル・プロジェクトのビルド」を選択し「OK」ボタンを押す。
2、(任意、別方法あり)ワークスペースを指定する:
Generalの高度な設定を押し、カスタムワークスペースを任意のワークスペースに変更する。(指定したカスタムワークスペースにソース等を取ってくるため、作業の経緯を追いやすくなる)

3、ソースコードを取得する(バージョン管理ソフトから):
ソースコード管理でソースコードのバージョン管理ソフトを指定し、接続のための情報を入力する。(今回はGit、他大体のバージョン管理ソフトはプラグインをインストールすれば表示される)

4、ビルドを行う:
ビルド手順の追加から「Windowsバッチコマンドの実行」を選択し、下記コマンドを実行し、ソリューションの依存関係の解決(NuGet復元など)とリビルドを行う。
dotnet restore sample.sln dotnet build sample.sln -c Release --no-incremental

*Tips:dotnet buildの–no-incrementalでリビルド
5、テストを実行する:
ビルド手順の追加から「Windowsバッチコマンドの実行」を選択し、下記コマンドを実行し、テストプロジェクトのテストを実行する。
dotnet test Sample.Test

6、マイグレーションを実行する(EF Core使用時のみ、必要時のみ):
ビルド手順の追加から「Windowsバッチコマンドの実行」を選択し、下記コマンドを実行し、データマイグレーションを実行する。
dotnet ef database update sample.csproj

*注意事項:appsettings.Development.jsonの方が採用される
7、アプリケーションを発行する:
ビルド手順の追加から「Windowsバッチコマンドの実行」を選択し、下記コマンドを実行し、アプリケーションの発行を実行する。
*予め発行のFolderProfileが必要
dotnet publish sample\sample.csproj -c Release -p:PublishProfile=FolderProfile

8、FTPSでデプロイする:
*PowerShellにてFTPSを実行するため、下記のPSファイルを用意する、またはpowerShellプラグインを用意して直接実行する。
ftps.ps1
try
{
# Load WinSCP .NET assembly
Add-Type -Path 'C:\Program Files (x86)\WinSCP\WinSCPnet.dll'
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Ftp
FtpSecure = [WinSCP.FtpSecure]::Explicit
HostName = "ホスト名"
UserName = "ユーザ名"
Password = "パスワード"
GiveUpSecurityAndAcceptAnyTlsHostCertificate =$True
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Force binary mode transfer
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$removeResult =
$session.RemoveFiles("FTP先フォルダ/*")
$removeResult.Check()
# Directoryの作成
$transferResult =
$session.PutFiles("送り元フォルダ\", "FTP先フォルダ", $False, $transferOptions)
$transferResult.Check()
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}
ビルド手順の追加から「Windowsバッチコマンドの実行」を選択し、下記コマンドを実行し、上のpsファイルを実行する。
powershell -File ftps.ps1