2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CI/CD】UI5プロジェクトのパイプラインを構築するまで ~環境構築編~

Last updated at Posted at 2020-05-28

##きっかけ
UI5プロジェクトではGitを使ってバージョンを管理しますが、たとえば「デプロイはmasterブランチから」というようなルールがあったときに間違えずに運用できるのだろうか?という疑問がありました。
Gitについて学ぶ中で「特定のブランチにプッシュされたらデプロイする」流れを自動化できそうだということがわかり、CI/CDの具体的な実現方法を調べ始めました。

##Project Piperについて
SAPのCI/CDについて調べていくと、Project Piperというものがあることを知りました。Jenkinsを使ってCI/CDパイプラインを作るのを手助けしてくれるツールの集合体のようです。Project Piperでは以下のものを提供しています。
Project "Piper" User Documentationより

  • Ready-madeなCDパイプラインのセット
  • パイプラインのステップで使えるライブラリ
  • LinuxとGitHub Actionのためのコマンドラインユーティリティ
  • CI/CD環境を構築するためのDockerイメージのセット

「Piperを使ってCI/CD環境を構築してみよう」というのが最初の考えでした。

##その前に・・・
JenkinsもDockerもLinuxも触ったことがなかったので、DockerとJenkinsについて学ぶところからスタートしました。

①DockerとLinux
[Udemy] Linuxコマンドから始めるDocker ~ BE A FIRST PENGUIN AND GROW AS WHALE
Linuxの基礎から解説してくれたので助かりました。VirtualBoxの使い方もわかってよかったです。

②Jenkins
[Udemy] Learn DevOps: CI/CD with Jenkins using Pipelines and Docker
色々なテクニックを紹介してくれましたが、上級者向けのようで私には難しかったです。
基本的な使い方はJenkins User Documentation で学びました。

##環境構築
###①Linux環境を用意
Ubuntu: 18.04 (EC2を利用)
最初はWindowsマシン上のVirtualBoxにUbuntuをインストールしていましたが、メモリが足りなかったためEC2に変更しました。

###②Dockerのインストール
以下の手順を参考に、Dockerをインストールします。
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

###③Cx Serverのインストール
Cx ServerはJenkinsの起動、停止やライフサイクル管理を行ってくれるツールです。
Piperを利用するにあたりCx Serverをインストールすることが推奨されているので、以下の手順を参考にインストールします。
https://github.com/SAP/devops-docker-cx-server/blob/master/docs/operations/cx-server-operations-guide.md

###④Jenkinsの初期設定
以下のコマンドでJenkinsを起動します。

./cx-server start

以下を参考に、adminのパスワードを変更します。
https://github.com/SAP/devops-docker-cx-server/blob/master/cx-server-companion/life-cycle-scripts/CX-SERVER-SECURITY.md

##Getting Startedをやってみるが、うまくいかず
以下のページを参考に、Getting Startedプロジェクトをやってみました。
https://sap.github.io/jenkins-library/guidedtour/

prepareステージは正常終了しましたが、buildがいつまでたっても終わりません。
image.png

最終的に、ディスクスペースが足りないというエラーになってしまいました。(ボリュームを30G→60Gに増やしても変わらず)
image.png

調べてみると、buildで作成されたと思われるdata.zipというファイルのサイズが21Gにもなっていました。以下のissueから、モジュールのpathをルート(.)にしていると無限ループになってしまうらしいことがわかりました。
https://github.com/SAP/cloud-mta-build-tool/issues/696

_schema-version: 2.1.0
ID: com.sap.piper.node.hello.world
version: 1.0.0
description: A Hello World sample application
provider: SAP Sample generator
modules:
  - name: piper.node.hello.world
    type: nodejs
    path: .

image.png

##結論:Cloudアプリはわからない
Getting Startedの例がMTAアプリだったのですが、MTAの開発手法というものを私はそもそもよく知りません。よくわからないものをパイプラインにしても理解できないので、Getting Startedはここで諦めました。

##次回:UI5のパイプラインを構築してみる
もともとやりたかったのがUI5のパイプラインなので、そちらを進めることにしました。PiperにもFioriアプリケーションをビルドしてABAPシステムにデプロイするシナリオが用意されているのですが、私にはまだ難解に思えました。そこで、自分が理解できるレベルから始めようということで、まずはPiperを使わずにSAPUI5アプリのパイプラインを作ってみることにしました。

これがまた結構大変だったのですが、学びも多かったので次回の記事に書きたいと思います。

##参考
SAP Help Portal

Blog

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?