【Jenkins + JUnit + Eclipse + Git・GitHub】コピペでできるCI/CDツールによるテストの実行

# はじめに
本記事はCI/CDツールを導入してみたいけどやり方がわからない方向けにとりあえずJenkinsを導入してテストの自動実行を行う方法を伝えるために作成しております。

# 前提条件
- GitHubの管理下にJavaプロジェクトが存在する
- JUnitを利用したテストケースがかけている
- awsを使ってec2インスタンスを作成することができる

よくわからない人は以下のサイトを参考にしていただけるとよいかと思います

https://qiita.com/KomoriSohto/items/3a7712d4c2a57755f27c

https://qiita.com/KomoriSohto/items/ef6fc4e0afcdac9cf0eb



# 目次

1. [Jenkinsの導入と実行](#jenkinsの導入と実行)
1. [参考文献](#参考文献)

# Jenkinsの導入と実行

### EC２インスタンスの作成

AWSでEC2インスタンスを作成します(AMI:Amazon Linux 2023、セキュリティグループでポート番号8080、80、443、22の接続を許可します)
以降の作業はすべて作成したAmazon Linux 2023上で行ってください

### Gitの導入

以下のコマンドを実行

```
sudo yum install git
```

### Javaのインストール

以下のコマンドでJavaのインストール
```
sudo yum install java-11-amazon-corretto-headless
```

### Jenkinstのインストールと初期設定

以下のコマンドでJenkinsのインストール
```
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
```
```
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
```

以下のコマンドを入力
```
sudo vi /etc/yum.repos.d/jenkins.repo
```

jenkins.repoの内容を以下のとおり変更
```
[jenkins]
name=Jenkins-stable
baseurl=https://pkg.jenkins.io/redhat-stable
gpgcheck=1
```

以下のコマンドを順に実行
```
sudo yum upgrade
```
```
sudo yum install -y jenkins
```

以下のコマンドでJenkinsを起動
```
sudo systemctl start jenkins
```

http://[パブリック IPv4 アドレス]:8080にアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/120bdd61-a825-8ab6-8a7e-7b4172e35641.png)

以下のコマンドでパスワードを確認してコピー
```
 sudo less /var/lib/jenkins/secrets/initialAdminPassword
 ```

Install suggested pluginsをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/ca7d7aed-aec0-9b81-a1cc-5dd71dd30d2c.png)

必要事項を入力→Save and Continueをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/508fbb70-4b1c-ccb8-f627-fc0ad9b672ae.png)

URLは初期状態のままSave and Finishをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/c2528376-82c0-e8fe-9252-4976e6baa1e8.png)

Start using Jenkinsをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/57f715ab-7e38-025f-c658-eaacce3304df.png)

### 自動化するタスクを登録

Manage Jenkinsをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/596294c3-d90f-b796-fb01-5da6c5e8d9b3.png)

Toolsをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/9bf10dce-a0c7-f238-b4c2-38bd9bd528d3.png)

Add JDKを以下の通り入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/9f3404c5-4fb6-6be7-69b6-f85f95748b23.png)

Git Installationsを以下の通り入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/d5b1d877-0fcf-ad5e-19c6-38cf435b4769.png)

Add Mavenを以下の通り入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/9c2c57ec-ccd8-9b07-c4fb-aea5aadfc5a2.png)

Saveをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/fbc892c4-207f-f4cb-afad-0ed923682edb.png)

TOP画面からCreate a jobをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/a94d0ced-8fd1-cd10-e93a-05398a587883.png)

name入力Freestyle projectクリック→OKクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/eb836107-e0da-ca78-8dc3-2f73be8b9a50.png)

パブリックリポジトリのURLを入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/f886b9f5-ae40-28aa-512c-e2535964fbff.png)

Add→Jenkinsをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/732b4126-f9c7-f38c-02a7-bd64980a589d.png)

ユーザ名・パスワードを入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/871c9dc2-19c7-d9fd-25ae-84c4a25d5c49.png)

Credentialsで先ほど作成した情報を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/7edafa4c-876d-14a2-26c5-a480eee7dcb8.png)

Build Stepsを以下の通り入力


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/f5224611-d089-4c80-8522-31075b38fa16.png)

This project is parameterizedにチェックを入れてString Parameterを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/d74038c6-20c1-c155-77c4-28d0ab1ec9a1.png)


Saveをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/bdd92a66-742a-568f-f1f0-1a95800b6774.png)

### テストを自動で実行する設定

作成したユーザを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/e205471f-01f8-f3e9-128e-80e836823893.png)

トークン名を入力してGenerateをクリック→トークンをコピーして保存

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/d174db71-4e81-9947-79fb-b2ded136b847.png)

GitHubにアクセス→Settings

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/cffe2b1f-8b99-55e7-531f-4e2e8c8942cb.png)

http://[Jenkinsのユーザー名]:[JenkinsのAPIトークン]@[サーバのIPアドレス:ポート]/job/[Jenkinsのジョブの名前]/buildWithParameters?token=[JenkinsのAPIトークンの名前]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/5ef6fb5d-f2d9-92e6-e347-6fafa8156c82.png)

# 参考文献

本記事は以下のサイトを参考に作成しました

https://peloproject.com/%E3%80%90jenkins%E3%80%91windows%E3%81%ABjenkins%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/


https://medium.com/wingarc/%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%A9%E3%81%86%E3%81%A7%E3%81%97%E3%82%87%E3%81%86-c9026849596a

https://yass800.com/ec2-jenkins/