【新機能】AWS CodeBuildが.NET Core 2.0をサポートしました

はじめに

今日ご紹介する新機能はこちら。

AWS CodeBuildはこれまで.NET Core 1.1をサポートしていました。今回のアップデートで、.NET Core 2.0のビルドをサポートするようになりました!

早速公式ドキュメントのサンプルを使って試してみたいと思います。

やってみた

サンプルコードの準備

まず、PC上で以下のようにファイルを3つ作成します。

.
├── HelloWorldSample.csproj
├── Program.cs
└── buildspec.yml

それぞれの内容は以下の通り。

$ cat buildspec.yml
version: 0.2

phases:
  build:
    commands:
      - dotnet restore
      - dotnet build
artifacts:
  files:
    - bin/Debug/netcoreapp2.0/*
$ cat HelloWorldSample.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
</Project>
$ cat Program.cs
using System;

namespace HelloWorldSample {
  public static class Program {
    public static void Main() {
      Console.WriteLine("Hello, World!");
    }
  }
}

この3つのファイルをzipで固めます。

$ zip -r ../SampleNetCore.zip *

そしてS3バケットにアップロードします。

Build projectの作成

CodeBuild管理画面で[Get started]ボタンをクリックします。

[Create your project]でプロジェクト名を適当に付けます。[Source]では先程アップロードしたS3バケット上のzipファイルを指定します。

[Environment]でビルド方法を選択します。[Operating system]で「Ubuntu」を指定します。[Runtime]と[Runtime version]で.NET core 2.0を指定します。

[Artifacts]でビルド結果の出力方法を選択します。今回はS3上に出力します。

その他はデフォルト値で、[Continue]ボタンをクリックします。

確認画面が表示されますので[Save]ボタンをクリックします。

Buildの実行

[Build projects]画面で、作成したProjectを指定し、[Start build]ボタンをクリックします。

[Start new build]画面で、[Show advanced options:をクリックして展開します。

[Artifacts packaging]で[Zip]を指定します。[Start build]ボタンをクリックします。

Build結果がSuccededとなることを確認します。

S3バケットを確認すると、Artifactが作成されていることが分かります。

zipファイルをダウンロードして展開すると、ちゃんとdllが作成されていることが分かります。

.
└── bin
    └── Debug
        └── netcoreapp2.0
            ├── HelloWorldSample.deps.json
            ├── HelloWorldSample.dll
            ├── HelloWorldSample.pdb
            ├── HelloWorldSample.runtimeconfig.dev.json
            └── HelloWorldSample.runtimeconfig.json

さいごに

今年リリースされた.NET Core 2.0は今後.NET開発の標準となることが予想されます。早々に機能が追加されたことは大変ありがたいですね。