-
Notifications
You must be signed in to change notification settings - Fork 4
/
947.txt
252 lines (182 loc) · 10.6 KB
/
947.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
[8] [DFN[CircleCI]] は、 [[CI]] サービス ([[Webアプリケーション]]) です。
[25] [[Linux]] と [[Mac OS X]] に対応しています。
* Heroku deploy 設定
[9] 1. リポジトリーを追加する
[10] 2. 設定 → 「Heroku Deployment」 → 「Step 2: Associate a Heroku SSH key with your account」
[11] 3. [CODE[Makefile]] に [[Heroku]] 用の書き換えを追加 (一例):
[FIG[
[PRE(code)[
create-commit-for-heroku:
git config --global user.email "dummy@test"
git config --global user.name "dummy"
git remote rm origin
rm -fr deps/pmtar/.git deps/pmpp/.git modules/*/.git
git add -f deps/pmtar/* #deps/pmpp/*
#rm -fr ./t_deps/modules
#git rm -r t_deps/modules
git rm .gitmodules
git rm modules/* --cached
git add -f modules/*/*
git commit -m "for heroku"
]PRE]
]FIG]
;; [12] [[submodule]] やビルド結果など、 [[CircleCI]] 側で用意して [[Heroku]]
側では [[pull]] するだけで良い状態にするための変更を加える。
[13] 4. [CODE[circle.yml]] (一例):
[FIG[
[PRE(code)[
dependencies:
override:
- make deps
test:
override:
- make test
deployment:
heroku:
branch: master
commands:
- "'''['''[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]''']''' || git fetch --unshallow"
- make create-commit-for-heroku
- git push git@heroku.com:[VAR[HEROKUAPPNAME]].git +`git rev-parse HEAD`:refs/heads/master
]PRE]
]FIG]
;; [14] [CODE[deployment:]] の部分がポイント。他は何でも良い。
* Web API から build を指示
[16]
[CITE[CircleCI API v1.1 Reference - CircleCI]] ([TIME[2017-06-10 05:03:08 +09:00]]) <https://circleci.com/docs/api/v1-reference/#new-build>
* 指定日時にジョブを実行
[34] [CITE@ja[ジョブのスケジューリング (ビルド用の cron) – CircleCI Japanese Support Center]]
([TIME[2020-01-11 11:00:23 +09:00]])
<https://support.circleci.com/hc/ja/articles/115015481128-%E3%82%B8%E3%83%A7%E3%83%96%E3%81%AE%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0-%E3%83%93%E3%83%AB%E3%83%89%E7%94%A8%E3%81%AE-cron->
[36]
他の [[cron]] っぽいものの実装と同じく、指定時刻に正確に実行されることはまずありません。
時間帯にもよるのかもしれませんが、
まず数分は遅れて開始されます。
(もしかすると有料のほうが優先的に実行されたりするのかもしれませんが。)
* メモ
[22] 最低$19/月。
まだ試していないが [[Travis CI]] や [[Wercker]] と違って [CODE[heroku]] コマンドを直接使えそう。
IRC 通知はあるが、失敗・復活が privmsg でそれ以外が notice という使い分けができない。(他の CI でもできないが。)
管理権限がないリポジトリは読み書き権限があっても登録できない。気づいたら勝手に fork していて(?)罠っぽい。
横に長い画面想定で作られていて使いにくい。特に設定ページ。それと一部フォームコントロールが奇抜なのを除けば今風の UI だけど悪くはない。
試用では 6 containers 利用できるが、一番安いプランでは 1 container しかない。二番目に安いプランでも 6 はない。
課金は user/organization 単位なので、自分のリポジトリと組織のリポジトリ両方で試したりすると両方の試用カウンターが勝手にスタートしてしまってもったいないw 罠としか思えないwww
deploy フェーズの排他制御みたいなのは特にないので、複数コミットのデプロイが同時動作することがある。
[TIME[2014-10-08]]
[1] [CITE@en-US[Continuous Integration and Deployment on CircleCI just got better: now it’s free. | The Circle Blog]]
( ([TIME[2014-11-20 05:45:53 +09:00]] 版))
<http://blog.circleci.com/continuous-integration-and-deployment-on-circleci-just-got-better-now-its-free/>
[5] 基本機能は無料化されました。
[2] [[GitHub]] に対応している。
[[BitBucket]] には[DEL[対応していない。]] その後対応しました。
[3] 公開リポジトリーの実行結果は公開される。
[4] 好きな [[Docker]] コマンドを使える。
[FIG(amazon)[
[[Circle CI]]
]FIG]
[6] 昔から [[UI]] は微妙ですが、同種サービス内ではましな方です。
昔より少しは改善されています。使っていれば慣れるというのもあります。
[7] 同種他サービスとは違って、やりたい操作がどこにあるのか想像付かないということはない。
[15] [CITE[CircleCI API Documentation - CircleCI]]
([TIME[2017-06-10 05:03:08 +09:00]])
<https://circleci.com/docs/api/>
[17] [CITE@en[Clearing the source cache? - Build Environment - CircleCI Community Discussion]]
( ([[]]著, [TIME[2017-06-13 23:34:32 +09:00]]))
<https://discuss.circleci.com/t/clearing-the-source-cache/2771/14>
[18]
[[Git]] の[[タグ]]や [[submodule]] の [[URL]] の変更など、一部の変更はキャッシュされてしまい、
反映されません。 現時点で [[UI]] から消去する方法がなく、サポートに問い合わせるしかないようです。
[TIME[2017-06-13T14:35:38.200Z]]
[19] [CITE@en[Pricing and Plan Information - CircleCI]]
([TIME[2017-09-30 08:29:11 +09:00]])
<https://circleci.com/pricing/>
[20] [CITE[Continuous Deployment with Heroku - CircleCI]]
([TIME[2017-09-29 11:16:08 +09:00]])
<https://circleci.com/docs/1.0/continuous-deployment-with-heroku/>
[21] [CITE[Configuring CircleCI - CircleCI]]
([TIME[2017-09-29 11:16:08 +09:00]])
<https://circleci.com/docs/1.0/configuration/>
[23] GitHub organization に対応する CircleCI 側の管理権限は、
GitHub 側で管理者になっているユーザーに与えられます。
[TIME[2017-12-01T08:41:16.600Z]]
[24] 請求情報は [[Web API]]
https://circleci.com/api/v1.1/organization/hub/{org}/invoices
から取得できます。管理権限のあるユーザーのアクセストークンがあれば取得できます。
[26] workflow 微妙だなー。複雑で使いにくい。
[27] [CITE@en[Caching Docker images in Workflows - CircleCI 2.0 - CircleCI Community Discussion]]
([TIME[2018-02-03 16:53:44 +09:00]])
<https://discuss.circleci.com/t/caching-docker-images-in-workflows/16507/2>
[28] [CITE[Parameterized Builds - CircleCI]]
([TIME[2018-02-24 07:21:29 +09:00]])
<https://circleci.com/docs/1.0/parameterized-builds/>
[29] [CITE[Running Jobs With the API - CircleCI]]
([TIME[2018-02-24 07:21:29 +09:00]])
<https://circleci.com/docs/2.0/api-job-trigger/>
[30] [CITE@en[CircleCI 1.0 End of Life on August 31, 2018]]
([TIME[2018-03-01 10:04:53 +09:00]])
<https://circleci.com/blog/sunsetting-1-0/>
[31] [CITE@en[Sunsetting CircleCI 1.0 - CircleCI]]
([TIME[2018-03-01 10:04:54 +09:00]])
<https://circleci.com/sunset1-0/>
[32] 実行環境を新しくするのは大変結構。しかしなぜ[[利用者]]に完全非互換な変更を強要するのか。
古い設定ファイルも自動変換して実行するが動作結果は保証されない、
くらいの緩やかな移行計画を立てられないものか。
突然期限を区切ってこういうことを言ってくるから、[[クラウド事業者]]は信用できない。
[33]
設定ファイルも UI も、 2.0 になって面倒になったなあ。 1.0 より柔軟性は上がっているのだけど、
1.0 では簡単にできたことが複雑になっている。ほとんどの用途において改悪でしかないと思うんだが。
[TIME[2018-08-18T12:12:48.800Z]]
[35]
設定ファイルが間違っていると、
Jobs のリストを見ても何も実行されていなくエラーに気づかないことがある。
Workflows
を見るとエラーが出ていたりする。
(とてもわかりにくい。)
[TIME[2020-01-11T08:04:35.900Z]]
[37]
どんどん UI が複雑で理解不能になっていくなあ。今思い返すと 1.0 の頃が一番わかりやすかった。
[38]
強制的に新 UI に切り替えられたみたい?
ジョブの実行順序が日付順にならなくて変な順序になっていて、
使い物にならない。。。
[TIME[2020-08-19T00:55:35.200Z]]
[39]
実行時間の長い古いジョブより実行時間の短い新しいジョブの方が先に出てくるようになったから、
現在実行中のジョブ一覧として機能しなくなったのが原因?
[40]
Pipeline は実行中なのに Workflow は未実行になっていたり (何も動いていないことになってる)、
表示が怪しいことが多い。
システムを必要以上に複雑化したから、
おかしな不具合が出まくるようになったんやで。
[41]
Pipeline はジョブが追加されてすぐに実行中に変わるから、
実行時間 = ジョブ追加からの時間で、
実際に何かを実行してる時間ではない。
実際になにかするのは Workflow のほうだけれども、
そちらの実行時間は表示されないから、
その待ち時間は何もしていないのに延々実行時間だけが進んでいく虚無になる。
本当の実行時間は個別に奥深くのページを開いていかないとわからない。
[42]
そんなわけなので「RUNNING」の表示は本当の実行中と、何もしていない待機中を含んでいるのがとてもわかりにくい。
昔は待機中は別の表示だったんだが。
[43]
そろそろ
[[GitHub Actions]]
への移行も検討していいのでは?
[44]
前は実行中 (未完了) のジョブでも再実行 (ジョブをコピー)
できたのに、
今はできなくなった。
失敗が確定して後処理中 (まだ実行完了していない) に再実行予約できなくなって不便だ。
[45]
どれが実行中でどれが未実行かさっぱりわからなくて草
[46]
実行完了前のジョブを再試行したいときは、
キャンセルしたら再試行ボタンが有効になるので推し放題という裏技w
一度実行開始されてしまうとキャンセルしづらくなる (その時点で中断されてしまうし、
artifacts にアクセスできなくなってしまう)
ので、実行開始前に中止して再試行しておくべきというバッドノウハウもいいところ。
[47]
Parallel job のいくつかが失敗、いくつかが成功、いくつかが実行中のとき、
失敗したものしか表示されなくなった。以前は実行中のものも表示されていたはず。
わかりにくくなった。