Skip to content

Commit e6e8c47

Browse files
committed
📝 手順書が警告どおりの事故を起こしうる形だったのを直す
見直しで、手順書自身が禁じている操作を実行できる形になっていた。 ## コードブロックを丸ごと貼ると、警告した事故が起きる 「coderdojo.jp に出る前に DojoMap を起動すると、ジョブは成功するのに地図に 出ない」と警告しながら、その下の 3 ステップは独立したコマンドの並びだった。 丸ごと貼り付けると、1 段目が時間切れで終わっても 2 段目の gh workflow run が そのまま走る。 前の段階が成功しなければ次に進まないよう && でつないだ。未掲載の名前で ワークフローが起動しないことを実際に確認している。 ## 同じ確認を 2 度説明していた 3 段目で鞍手を使って地図を確認した直後に、南城を使って同じ確認を説明して いた。後者は「どのクラブと突合したか」を見る別の用途なので、そう書き分け、 例の Dojo 名も節内で統一した。 ## 既存の誤字 「省略化」を「省略可」に直した (2 箇所)。 ## 手順一覧の係り先 「地図も先に更新する」だけでは何より先か読み取れないため、 「メールを送る前に」を補った。
1 parent 98ea453 commit e6e8c47

1 file changed

Lines changed: 26 additions & 24 deletions

File tree

doc/how_to_add_dojo.md

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
6. 下記「[データの読み方](#データの読み方申請内容と対応例)」を参考に、申請内容から新しい Dojo データを [`db/dojos.yml`](https://github.com/coderdojo-japan/coderdojo.jp/blob/main/db/dojos.yml) に追加する
2222
7. 下記「[統計システムへの追加](#統計システムへの追加)」を参考に、イベント管理サービスを [`db/dojo_event_services.yml`](https://github.com/coderdojo-japan/coderdojo.jp/blob/main/db/dojo_event_services.yml) に追加する
2323
8. 上記の作業結果をコミットし、Pull Request (PR) を送る
24-
9. 本番環境への反映を確認し、下記[DojoMap への反映](#dojomap-への反映)で地図も先に更新する
24+
9. 本番環境への反映を確認し、メールを送る前に下記[DojoMap への反映](#dojomap-への反映)で地図も更新する
2525
10. 下記「[掲載完了メールの送り方](#掲載完了メールの送り方)」で申請者に伝える
2626

2727
[» これまでの対応例 (PR) を見る](https://github.com/coderdojo-japan/coderdojo.jp/pulls?q=is:pr+"Add+CoderDojo")
@@ -51,7 +51,7 @@ Zen: https://zen.coderdojo.com/dojos/jp/okinawa-ken/okinawa-okinawa-prefecture/n
5151
```yaml
5252
- order: '472018'
5353
name: 那覇
54-
counter: 1 # 省略化。連名道場のときに使います (後述)
54+
counter: 1 # 省略可。連名道場のときに使います (後述)
5555
prefecture_id: 47
5656
logo: "/img/dojos/default.webp" # ロゴがあれば naha.webp として追加
5757
url: https://coderdojo-naha.doorkeeper.jp/
@@ -70,7 +70,7 @@ Zen: https://zen.coderdojo.com/dojos/jp/okinawa-ken/okinawa-okinawa-prefecture/n
7070
| `created_at` | **入力しない。** タスク実行時に自動で追加されます (詳細は後述) |
7171
| `order` | [全国地方公共団体コード](http://www.soumu.go.jp/denshijiti/code.html) (詳細は後述) |
7272
| `name` | Dojo名 |
73-
| `counter` | 省略化。[連名道場](https://github.com/coderdojo-japan/coderdojo.jp/issues/610)を登録する際に使います |
73+
| `counter` | 省略可。[連名道場](https://github.com/coderdojo-japan/coderdojo.jp/issues/610)を登録する際に使います |
7474
| `prefecture_id` | [db/seeds.rb](https://github.com/coderdojo-japan/coderdojo.jp/blob/main/db/seeds.rb) の県番号 |
7575
| `logo` | 省略可。[public/img/dojos](https://github.com/coderdojo-japan/coderdojo.jp/tree/main/public/img/dojos) にあるDojoロゴ画像パス |
7676
| `url` | 公式Webサイト (イベント管理ページも可) |
@@ -190,34 +190,36 @@ Pull Request 例: https://github.com/coderdojo-japan/coderdojo.jp/pull/274
190190
> **ジョブは成功するのに地図には出ません。** 成功したように見えるので気づけません。
191191

192192
```bash
193-
# 1. coderdojo.jp に出るまで待つ(Dojo 名は掲載したものに書き換える)
194-
for _ in $(seq 20); do
195-
curl -s https://coderdojo.jp/dojos.json | grep -q '"name":"鞍手"' && echo '掲載を確認' && break
196-
sleep 15
197-
done
198-
199-
# 2. DojoMap の日次ジョブを起動する
200-
gh workflow run scheduler_daily.yml --repo coderdojo-japan/map.coderdojo.jp --ref main
201-
202-
# 3. 地図に出るまで待つ(ジョブは 2〜3 分ほどで終わります)
203-
for _ in $(seq 20); do
204-
curl -s https://map.coderdojo.jp/dojos.json | grep -q '"name_japan":"鞍手"' && echo '地図を確認' && break
205-
sleep 20
206-
done
193+
DOJO=鞍手 # 掲載した Dojo 名に書き換える
194+
195+
# 出るまで待つ(見つかれば 0、時間切れなら 1 を返す)
196+
wait_until() { # $1: URL $2: 探す文字列 $3: 待機秒(最大 20 回)
197+
for _ in $(seq 20); do
198+
curl -s "$1" | grep -qF "$2" && return 0
199+
sleep "$3"
200+
done
201+
return 1
202+
}
203+
204+
wait_until https://coderdojo.jp/dojos.json "\"name\":\"$DOJO\"" 15 \
205+
&& gh workflow run scheduler_daily.yml --repo coderdojo-japan/map.coderdojo.jp --ref main \
206+
&& wait_until https://map.coderdojo.jp/dojos.json "\"name_japan\":\"$DOJO\"" 20 \
207+
&& echo "地図に出ました" \
208+
|| echo "途中で止まりました。下の切り分けを見てください"
207209
```
208210

209-
**打ち切り付きにしてあります。** 地図に出るかどうかは Clubs 側の登録にも依るため
210-
(下の切り分けを参照)、出ないまま待ち続けることがあるためです
211-
確認のメッセージが出ないまま終わったら、下の表で切り分けてください
211+
**`&&` でつないであります。** coderdojo.jp に出る前に DojoMap を起動してしまうと
212+
上の事故が起きるため、前の段階が終わらなければ次に進まない形にしています
213+
待ち時間にも上限があるので、出ないまま待ち続けることはありません
212214

213215
ブラウザから実行する場合は [Daily Update](https://github.com/coderdojo-japan/map.coderdojo.jp/actions/workflows/scheduler_daily.yml) の
214-
「Run workflow」を押してください。
216+
「Run workflow」を押してください。**その場合は先に coderdojo.jp 側を目視で確認してください。**
215217

216-
地図に載ったかは https://map.coderdojo.jp/dojos.json で確認できます
218+
どのクラブと突合したかまで見る場合は、次のように中身を確認します
217219

218220
```bash
219-
curl -s https://map.coderdojo.jp/dojos.json | ruby -rjson -e 'pp JSON.parse(STDIN.read).find { |x| x["name_japan"] == "南城" }'
220-
#=> {"global_club_id" => "b115e722-...", "name_japan" => "南城", "name_earth" => "CoderDojo南城", ...}
221+
curl -s https://map.coderdojo.jp/dojos.json | ruby -rjson -e 'pp JSON.parse(STDIN.read).find { |x| x["name_japan"] == "鞍手" }'
222+
#=> {"global_club_id" => "69fb131d-...", "name_japan" => "鞍手", "name_earth" => "CoderDojo鞍手", ...}
221223
```
222224

223225
出てこない場合は次のいずれかです。いずれも DojoMap 側では直せません。

0 commit comments

Comments
 (0)