Azure DevOps から Jenkins のパイプラインを実行してみた

Azure DevOps には、別途申請すれば無料利用可能な、Microsoft ホステッドのビルド用仮想マシンがあります。また、セフルホステッド用のエージェントプログラムを自前の仮想マシンにインストールすれば、仮想マシンの費用は別途ですが、Azure DevOps としては追加料金なしで利用可能です。それでも、どうしても Jenkins を使いたい場合、さてどうやってパイプラインを実行するのか不明だったので、実際に試してみました。

## 無料枠の Microsoft ホステッド時間とセルフホステッド数を確認画面

![azure-devops-jenkins-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/448c9081-cfc4-b4fc-1a99-e6af71ccfc54.png)

## 検証用のプログラム作成

```bash:bash
$ dotnet new console -o mnrd2j

$ cd mnrd2j

$ dotnet run
Hello, World!
```

## Jenkinsfile を作成

```bash:bash
$ cat <<EOF > Jenkinsfile
pipeline {
    agent any

    stages {
        stage('Run') {
            steps {
                echo 'Running the application'
                sh 'dotnet run'
            }
        }
    }
}
EOF
```

## Azure DevOps の Repos に Git Push

```bash:bash
$ dotnet new gitignore

$ git init

$ git add -A

$ git commit -m "first commit"

$ git branch -m main

$ git remote add origin https://mnrsdev@dev.azure.com/mnrsdev/mnrsdev/_git/mnrd2j

$ git push -u origin --all
```

## Jenkins にパイプランを作成

![azure-devops-jenkins-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/a1b0b2bf-6290-db7f-d30d-70c3b5ede34e.png)

![azure-devops-jenkins-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/6415d22a-d3b0-aad4-bbec-56243bf7ee56.png)

## 手動で Jenkins に作成したパイプランを実行

![azure-devops-jenkins-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/1160e653-53bc-918d-aadf-bb67e2b37e58.png)

![azure-devops-jenkins-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/c174d070-33f5-d1f5-c68d-cacf37c2244c.png)

## Azure DevOps に Web Hook を作成

![azure-devops-jenkins-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/4ca61f0e-9f05-2da1-2f4e-6bec9a1e957c.png)

![azure-devops-jenkins-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/13206c97-073e-874e-c830-7818993cd0d3.png)

![azure-devops-jenkins-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/370f9d03-84ea-0d6f-ea1d-3952f2d6565f.png)

![azure-devops-jenkins-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/f3b0bf5b-adf1-ed62-59e0-9902026b4938.png)

![azure-devops-jenkins-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/b71eae8f-8295-081b-ee2d-56260823056c.png)

## 検証用プログラムを変更

![azure-devops-jenkins-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/dd48aaeb-3640-123e-c9a8-c5c8e8ba00a4.png)

## Web Hook の履歴を確認

![azure-devops-jenkins-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/0d0656ee-7665-a028-46f4-777fd7ecf6ad.png)

![azure-devops-jenkins-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/34175144-8485-cb90-aea8-04aefb804d99.png)

## Jenkins のパイプランが自動実行された事を確認

![azure-devops-jenkins-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/679d4a96-15a1-2db9-a66c-5bb849bfbece.png)

![azure-devops-jenkins-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675885/ab2d6f06-f62c-4bc7-0007-2fcac12e6683.png)

## 参考

https://learn.microsoft.com/ja-jp/azure/devops/pipelines/licensing/concurrent-jobs?view=azure-devops&tabs=ms-hosted#how-much-do-parallel-jobs-cost

https://learn.microsoft.com/ja-jp/azure/devops/organizations/security/allow-list-ip-url?view=azure-devops&tabs=IP-V4#inbound-connections

https://www.jenkins.io/doc/book/pipeline/#declarative-pipeline-fundamentals