Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate CircleCI 1.0 to 2.0 #76

Merged
merged 7 commits into from
Feb 18, 2019
Merged

Migrate CircleCI 1.0 to 2.0 #76

merged 7 commits into from
Feb 18, 2019

Conversation

nashcft
Copy link
Contributor

@nashcft nashcft commented Feb 16, 2019

CircleCI 2.0 対応です。
local::lib まわりをうまく扱えなくて po4a 0.52 のビルドができなかったためコンテナイメージに Ubuntu Bionic を使ってインストールするように方法変え、その影響で python3-pip openjdk も実行時にインストールしなければならなくなったのでビルド時間が長くなってしまっています。
今回の対応は綺麗なやり方とは言い難いのでもっとスマートな方法があれば知りたいです...

config.yml 内にコメントアウトが残っていますが、全体の動作確認が終わっていないのと後述するキャッシュの戦略を決めかねているためで、そこも含めたWIPという感じです。

Problems:

  • make translatepo4a が完走しない

TODO:

  • deploy job の動作確認
  • キャッシュをどうするか
    • redpen や jbake を今後更新する予定がなければずっとキャッシュするように書いてしまっても良いかも知れませんが、そうでなければ更新時に key が変わるような設定をしたいところです。でもレポジトリの中に使えそうなのが config.yml くらいで、それでいいのかなあという気持ちがあるので意見を聞きたいです。

@iku000888
Copy link
Contributor

おおありがとうございます!

  • redpenは個人的に導入するメリットを感じていない(i.e. 翻訳をしていてredpenに怒られた記憶がない)ので少しでも楽になるのであれば消して良いと思いました。
  • make testpo4a が完走しない

僕がspikeしてみた時も永久に時間かかっているなと感じていました。もう少し詳しく調べる必要がありそうですね。ローカルで再現できるか後でやってみたい(気持ち)です。

@ayato-p さん何かコメントありますか

@ayato-p
Copy link
Member

ayato-p commented Feb 16, 2019

@nashcft ありがとうございます。

@iku000888
redpenの要否に関しては、試験的に導入していたので消しても構わないです。
ただし、以前から細かい表記ゆれなどの指摘が散見されていて、時間が無駄になっているという問題は明らかにあったので、それについて何かしらの方法で対応する必要があります。
怒られた記憶がないのは設定をかなり絞っていたからですね。

とりあえず、問題があるっていうことを知らなかったので、僕も調べてみます。

- install jdk in test job for redpen
- use python image for deploy job and move pip step to it
  because ghp-import is used in `make publish`
@nashcft
Copy link
Contributor Author

nashcft commented Feb 17, 2019

まだちょっと試行錯誤の途中なのですが、現状について一旦まとめます

  • 問題の中心は make translate, というかそこで使われる po4a
    • まずすでに話題に挙げているように終了しないこと
      • 1.0で成功していた際のログと比較すると、ファイルの検査は全て行われているようなので、後処理まわりで hang している可能性がある
    • translatetest / publish の両方で実行されるので、po4a を両方の job で使えるようにする必要がある
      • これは色々やりようがあるので make translate が正常終了するようになってから考えればよい

ローカルで再現できるか後でやってみたい(気持ち)です。

CircleCI の実行環境を再現したいという意味であれば、公式からCLIツールが提供されています
https://circleci.com/docs/2.0/local-cli/

私はこれでローカルで確認しているのですが、

en/content/about/rationale.adoc:123: It seems that you are adding unindented content to an item.
The "standard" allows this, but you may still want to fix your document.

みたいなログが出きった後にCPUのファンが唸り出すみたいな挙動をします

@iku000888
Copy link
Contributor

記憶が正しければpo4aは新しいバージョンとの互換性が無いので0.52を固定で使う必要があります。
インストール済みのdockerイメージを作れるか今やってみてます

@iku000888
Copy link
Contributor

iku000888 commented Feb 17, 2019

ビルド実行中のSSHコンテナにログインしてmake testを実行してみたところ普通に完了しました。
特定のpo4a云々は原因でないようです。すみません 🙇‍♂️

@iku000888
Copy link
Contributor

@nashcft さん stderrを無視するようにしたら完走するようになりました。

こちらを組み込んで試してもらっても良いですか 🙏

@nashcft
Copy link
Contributor Author

nashcft commented Feb 17, 2019

@iku000888 さん

ありがとうございます 🙏
make translate が終わるようになったので deploy の動作確認まで進めました

残タスクは make publish の最後に git push するところで The authenticity of host 'github.com' can't be established. ってなって対話を要求されるところですね
git まわりはどうしてもローカルで確認できないので実際に circleci.com 上で動かす必要があるのですが、このブランチであれこれやっているとうるさいので https://github.com/nashcft/clojure-site-ja/tree/circleci_2.0_test で作業しています

@iku000888
Copy link
Contributor

@nashcft さん

deployment keyを設定した後、いくつか修正をし、こちらで動きました。 iku000888@7e6a6fe

デプロイできてる → https://iku000888.github.io/clojure-site-ja/

@nashcft さんの方でも動くかやってみていただければと 🙏

@iku000888
Copy link
Contributor

他に問題なければ最後のステップとしては @ayato-p さんに本家repoのdeploy keyを設定してもらって、そのfingerprint値を反映することですかね。

@nashcft
Copy link
Contributor Author

nashcft commented Feb 18, 2019

@iku000888 さん

こちらでも確認できました。ありがとうございます!

では本家のkeyの設定の後config.ymlに反映してpushします。
@ayato-p さん設定お願いします 🙏

@nashcft nashcft marked this pull request as ready for review February 18, 2019 00:44
@nashcft nashcft changed the title [WIP] Migrate CircleCI 1.0 to 2.0 Migrate CircleCI 1.0 to 2.0 Feb 18, 2019
@nashcft
Copy link
Contributor Author

nashcft commented Feb 18, 2019

これは別タスクとして考えているのですが、CI の job の中でパッケージを毎回インストールしているのしんどいかと思うので、実行時間の短縮とか環境の定義と job のプロセスの分離とかの目的でCI用の image を定義するのどうかなという案があります。

試しに docker image 作って (https://github.com/nashcft/docker-clojure-site-ja) 自分の fork で実行してみて publish まで成功しているのを確認したので、問題なさそうなら japan-clojurians の管理下に置いて使っていくのはどうでしょうか?

https://github.com/nashcft/clojure-site-ja/commit/535a0fff8a552c6d67c9d64699747d8be9191c57

@iku000888
Copy link
Contributor

@nashcft さん 個人的に専用イメージ導入は賛成ですが、おっしゃる通り今回のPRのスコープからは外す方が良いと思います。

#78 を建てたのでそちらでDockerイメージについての詳細はそちらでトラックしましょう。

@iku000888 iku000888 mentioned this pull request Feb 18, 2019
@ayato-p
Copy link
Member

ayato-p commented Feb 18, 2019

@nashcft ありがとうございました。
とりあえず、マージしてみます。

@ayato-p ayato-p merged commit 8a91094 into japan-clojurians:master Feb 18, 2019
@ayato-p
Copy link
Member

ayato-p commented Feb 18, 2019

あ、鍵をyamlに書かないといけないっていう話だったのか。。。
あとでやっておきます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants