{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/2022-09-06_github-actions_schedule_utc/",
    "result": {"data":{"site":{"siteMetadata":{"title":"365"}},"markdownRemark":{"id":"37cefc8d-db3f-5b0c-b799-34dee1d39ea0","excerpt":"タイムゾーン周りで混乱したので自分用メモ、UTC なので日本で 21 と書いても 21 時には実行されない ドキュメントにも UTC だと書いてる You can schedule a workflow to run at specific UTC times using POSIX cron syntax…","html":"<p>タイムゾーン周りで混乱したので自分用メモ、UTC なので日本で 21 と書いても 21 時には実行されない<br>\n<a href=\"https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule\">ドキュメント</a>にも UTC だと書いてる</p>\n<blockquote>\n<p>You can schedule a workflow to run at specific UTC times using POSIX cron syntax.</p>\n</blockquote>\n<p>日本時間で実行するためには９時間マイナスにする必要がある<br>\n21 時に動かしたいなら 12 と書く必要がある<br>\nタイムゾーン周りは一度ハマると抜け出しにくい</p>\n<hr>\n<p>以下は実際に動かして確認した内容<br>\nというのもスケジュール指定を誤って何度も PR を出してしまったから反省の意味を込めて１から確認をした</p>\n<h2>サクッと Debian イメージで試してみる</h2>\n<p>後々 GitHub Actions で動かす用で date コマンドで出力する</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">$ docker pull debian\n$ docker run --name debian -it debian /bin/bash\n# date &quot;+%Y/%m/%d %H:%M:%S&quot;\n2022/09/05 12:40:20\n# TZ=JST-9 date &quot;+%Y/%m/%d %H:%M:%S&quot;\n2022/09/05 21:40:51</code></pre></div>\n<h2>GitHub Actions で動かしてみる</h2>\n<p>下記 Workflow を作成して動かしてみた</p>\n<div class=\"gatsby-highlight\" data-language=\"yml\"><pre class=\"language-yml\"><code class=\"language-yml\"><span class=\"token punctuation\">---</span>\n<span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Check Schedule Cron\n\n<span class=\"token key atrule\">on</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">workflow_dispatch</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">schedule</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">cron</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'*/15 * * * *'</span>\n\n<span class=\"token key atrule\">jobs</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">build</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> echo\n    <span class=\"token key atrule\">runs-on</span><span class=\"token punctuation\">:</span> ubuntu<span class=\"token punctuation\">-</span>latest\n    <span class=\"token key atrule\">steps</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> echo \"check schedule cron\"\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> date \"+%Y/%m/%d %H<span class=\"token punctuation\">:</span>%M<span class=\"token punctuation\">:</span>%S\"\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> TZ=JST<span class=\"token punctuation\">-</span>9 date \"+%Y/%m/%d %H<span class=\"token punctuation\">:</span>%M<span class=\"token punctuation\">:</span>%S\"</code></pre></div>\n<p>こんな感じで出力を確認できた</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">Run echo &quot;check schedule cron&quot;\n  echo &quot;check schedule cron&quot;\n  shell: /usr/bin/bash -e {0}\ncheck schedule cron\n\nRun date &quot;+%Y/%m/%d %H:%M:%S&quot;\n  date &quot;+%Y/%m/%d %H:%M:%S&quot;\n  shell: /usr/bin/bash -e {0}\n2022/09/05 17:22:55\n\nRun TZ=JST-9 date &quot;+%Y/%m/%d %H:%M:%S&quot;\n  TZ=JST-9 date &quot;+%Y/%m/%d %H:%M:%S&quot;\n  shell: /usr/bin/bash -e {0}\n2022/09/06 02:22:55</code></pre></div>\n<h2>JST &#x3C;-> UTC</h2>\n<p>完全に自分用<br>\n困ったらこの表をみる</p>\n<table>\n<thead>\n<tr>\n<th>JST</th>\n<th>UTC</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2022/09/06 00:00:00</td>\n<td>2022/09/05 15:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 01:00:00</td>\n<td>2022/09/05 16:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 02:00:00</td>\n<td>2022/09/05 17:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 03:00:00</td>\n<td>2022/09/05 18:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 04:00:00</td>\n<td>2022/09/05 19:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 05:00:00</td>\n<td>2022/09/05 20:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 06:00:00</td>\n<td>2022/09/05 21:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 07:00:00</td>\n<td>2022/09/05 22:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 08:00:00</td>\n<td>2022/09/05 23:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 09:00:00</td>\n<td>2022/09/06 00:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 10:00:00</td>\n<td>2022/09/06 01:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 11:00:00</td>\n<td>2022/09/06 02:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 12:00:00</td>\n<td>2022/09/06 03:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 13:00:00</td>\n<td>2022/09/06 04:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 14:00:00</td>\n<td>2022/09/06 05:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 15:00:00</td>\n<td>2022/09/06 06:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 16:00:00</td>\n<td>2022/09/06 07:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 17:00:00</td>\n<td>2022/09/06 08:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 18:00:00</td>\n<td>2022/09/06 09:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 19:00:00</td>\n<td>2022/09/06 10:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 20:00:00</td>\n<td>2022/09/06 11:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 21:00:00</td>\n<td>2022/09/06 12:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 22:00:00</td>\n<td>2022/09/06 13:00:00</td>\n</tr>\n<tr>\n<td>2022/09/06 23:00:00</td>\n<td>2022/09/06 14:00:00</td>\n</tr>\n</tbody>\n</table>\n<h2>余談</h2>\n<p>TimeZone を指定できるようにして欲しい Discussion があったので↑押した</p>\n<p><a href=\"https://github.com/community/community/discussions/13454\">https://github.com/community/community/discussions/13454</a></p>\n<h2>参考</h2>\n<ul>\n<li><a href=\"https://obel.hatenablog.jp/entry/20200108/1578429000\">GitHub Actions で cron を設定する方法 - 約束の地</a></li>\n</ul>","frontmatter":{"title":"GitHub Actions の cron で指定できるスケジュールのタイムゾーンはUTC","date":"2022/09/06","description":"タイムゾーン周りで混乱したので自分用メモ、UTCなので 21 と書いても日本時間の 21 時には実行されない"}},"previous":{"fields":{"slug":"/2022-09-02_ansible_interpreter_warning/"},"frontmatter":{"title":"Ansible 実行時に warning が出力されるので対応する"}},"next":{"fields":{"slug":"/2022-09-16_lefthook_run/"},"frontmatter":{"title":"Git hooks の Lefthook を使ってみる"}}},"pageContext":{"id":"37cefc8d-db3f-5b0c-b799-34dee1d39ea0","previousPostId":"2d387ddf-767f-5b8e-be89-2b28d14911bd","nextPostId":"6728a4a8-8572-5b36-820d-f9ee527fd5ca"}},
    "staticQueryHashes": ["2841359383","3257411868"]}