shippableとAWSを使ってARM64アーキテクチャでCIが出来る環境を作ってみたので備忘録として書いておきます。
CI用のマシンについて
shippableではARMのCIをサポートしています。
ただし、On DemandではなくBYONノードとしてのみライセンスが購入できます。
そのため、CI用のマシンを別途用意する必要があります。
問い合わせれば無料版を払い出してくれるようです。
Click on the Contact Us link and let us know if you want to run builds on 32-bit or 64-bit Arm machines, and whether your repositories are public or private. Accordingly, a Shippable Admin will add the requested license for your subscription.
現在、shippableがサポートしているARMのCI用マシンはUbuntu 16.0.4です。
ここでは、CI用のマシンをAWSのARM版のAMI(Ubuntu)で用意してshippableと連携してみます。
AWSでARM版のEC2を用意
ここでは、以下のAMIを使ってインスタンスを起動しておきます。
shippableの設定
shippableでは、1アカウント1つのPLANまで無償で使えます。
そのため、ARM + x86_64を同時に使おうとすると有償になります。
なのでここでは、標準で設定されているOn Demandのx86_64(Ubuntu)を削除してARMを使うようにします。
PLANの設定
SUBSCRIPTIONS
で登録したアカウントを選択し 歯車
をクリックし Billing
を開きます。
鉛筆マーク
をクリックします。
Add new SKU
をクリックします。
以下のように選択します。
Type | Architecture | Operating System |
---|---|---|
BYON | aarch64 | Ubuntu_16.04 |
標準であったPLANの ゴミ箱マーク
をクリックして削除し Enable unlimited private repo builds
のチェックを外し Save(画像ではUpgradeになってる)
をクリックして保存します。
次に Node Pool
にCI用の Node
を追加します。
歯車
をクリックして Node Pools
を選択します。
既に作成されている Node Pool
をクリックします。
画面右上の +(プラス)
をクリックします。
以下を入力します。
項目 | パラメーター |
---|---|
Docker Version | 18.03 |
Name | shippableのNODESで表示する任意の名前 |
IP Address | EC2へSSHできるグローバルIPアドレス |
SSH Access Script
の Copy
をクリックしてEC2のUbuntuで実行しておきます。
問題なくスクリプトが実行できたら SSH Accept Script Complete
にチェックを入れて Initialize
をクリックします。
問題なく登録できればノードのステータスが Processing
になります。
初期処理が問題なく完了すればステータスが Success
になります。
これで、準備完了です。
GitHubのリポジトリを登録してCIを走らせてみましょう :)