🔖

TeamCity触ってみた

2023/12/23に公開

概要

ci/cdに関してちょっと調べたくなった。

経緯

github actionsを用いてのcdなどはちょこっと整備したりしているが、ci/cdツールは今思えば全く使ったことがなかったから気になった、めんどくさがりなので楽したいから気になってたので、今回はTeamCityなるものを触る。

JetBrains製のci/cdツールらしい。
https://www.jetbrains.com/teamcity/

TeamCityかGithub Actionsどっちがいいか考察しているページなどもあり。
https://jmcglock.substack.com/p/teamcity-vs-github-actions

前提

そもそもCI/CDとは

「Continuous Integration/Continuous Delivery」の略であり、日本語では継続的インティグレーション/継続的デリバリーと呼ばれている。
CI/CDは以下の4つのフェーズに分かれており、
CIにて高速にSource, Build, Testを回していき、CDにて各環境に自動でDeployしていく。

  • Sourceフェーズ
    • ソースがデグレなく管理される
    • ユーザーにとって可読性が担保される状態で管理される
  • Buildフェーズ
    • ソフトウェアを実行可能な状態にパッケージング
  • Testフェーズ
    • 安全な状態であることを担保するためのテスト実行
  • Deployフェーズ
    • テスト済のリソースをデプロイ

デモ

https://www.jetbrains.com/ja-jp/teamcity/tutorials/general/running-command-line-scripts/
のチュートリアルを実施してみる。

内容としては、

まずはteamcityに登録した後は、create projectを選択、デフォルトのFrom a repository URLから公開gitリポジトリを貼る。

acccess tokenとかは入力を押さずにproceedを押すと、TeamCityがリポジトリに接続して、Projectをデフォルト設定で作成してくれる。

すると、以下のようにTeamCityがビルドステップを自動検出してくれるのだが、今回はコマンドラインスクリプトを実行するために、configure build steps manually を選択して、手動ビルドステップの構成を編集しましょう。

以下のようにjavaソースをコンパイルさせ、テスト済のjarファイルをcopyさせます。

awsのアカウントの認証方法の箇所でアクセスキーを作成してから、その情報をParameterに保存します。
specのところでType: Passwordにして管理画面上から確認できないようにしましょう。

やってみたらAWS_SECRET_ACCE_KEY忘れてた。

 Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY
11:24:19   Process exited with code 255
11:24:19   Process exited with code 255 (Step: Command Line)
11:24:19   Step Command Line failed

以下のように成功した結果が表示されると、

自動でjarファイルがs3に保存される。

最後に

今回やったチュートリアルはteam cityの中でも最初の最初のチュートリアルだと思うのでこれからもちょくちょくやっていきたい。
UIも綺麗で設定もやりやすいが、このチュートリアルでエラーになった際の検索がERRORで引っかからないからそこだけjarを固めているログを遡る必要があったので面倒やった笑

備考

ソフトウェア開発だけでなく、テレビ業界とかもci/cd化できたら最高ですね。
ラヴィットスタッフ達が健やかな一年を過ごせることを祈ります。

参考文献

https://www.stylez.co.jp/columns/flow_of_cicd_implementation_using_aws/

https://www.jetbrains.com/ja-jp/teamcity/tutorials/general/running-command-line-scripts/

https://jmcglock.substack.com/p/teamcity-vs-github-actions

Discussion