nju33ノート一覧へパターンワークフローの.ymlには都度パターンが出現します。使える特殊な文字は以下のようなものがあります。***![と]?+**はすべてにマッチしますが/は跨ぎません。これは*と設定した時fooやbarはマッチしますが、foo/fooやbar/barにはマッチしません。あるワードの前後に適当な文字を付けると、適当な文字は必ず含まれるランダムな文字にマッチします。*-barやfoo-*はfoo-barにマッチします。****はすべてにマッチします。こちらは/にもマッチするのでfoo/fooやbar/barにもマッチします。こちらもランダムな文字と組み合わせて使えます。**/src/main.jsはpath/to/src/main.jsやa/b/c/src/main.jsなどにマッチします。使う表現は拡張子と使う方法です。**.jsや**.mdなどはpath/to/foo.jsやpath/to/readme.mdなど、適当なディレクトリにある.jsや.mdファイルにマッチします。!!は直前でマッチしたものの中から一部除外する為のパターンです。**.jsはすべての.jsがマッチしますが。この後に続けて!foo/src/main.jsを置けば、foo/src/main.js以外のすべてのリポジトリに含まれる.jsファイルがマッチします。][と]で囲んだ部分はある1文字についてのパターンを表現します。*ではすべての文字がマッチしていましたが、この表現にするとその文字をある程度絞り込めます。[abc]であればaかb、cのどれかになります。ひとつ挙げると[0123456789]は数値だけにマッチすることになります。上記のような0123...というのは続いた値です。このような場合は[0-9]と-を挟んで省略できます。これはアルファベットも同じで[a-z]や[A-Z]と書けます。これらを[0-9a-zA-Z]のように組み合わせることもできます。?直前の文字が「あっても無くても良い」ことを表現できます。*.jsx?というパターンの場合*.jsと*.jsxどちらにもマッチします。+直前の文字は必ず1つ以上続くことを表現できます。(無理やり感がありますが)[ademe]+.mdとすればreadme.mdやadem.mdなどにマッチします。他にこれをよく使うのはセマンティック・バージョニングのパターンなどです。このパターンはv[0-9].[0-9]+.[0-9]+のように書きます。こえでv1.23.681のような文字にマッチします。pull_requeston.pushイベントを使うと、そのリポジトリにpushした時にそのワークフローを走らせられます。on.pull_requestの場合はプルリクを上げた時だけです。使うには以下のような一行をワークフローファイルへ置くだけです。どちらかだけを使いたいなら配列じゃなくでも良いです。このon.pushやon.pull_requestは下に詳細設定を置くことがでます。「このブランチ、このタグがpushされた時だけ」のような設定ができます。これはブランチはbranchesまたはbranches-ignore、タグはtagsまたはtags-ignoreで設定できます。-ignoreが付いているものとそうでないものは同時に設定できません。一度含ませてから、一部だけ含ませないような書き方も!を頭に付けることで可能です。これは.gitignoreのような設定ファイルと同じです。ブランチブランチはデフォルトですべてのブランチが実行対象に含まれてます。以下のような設定があるとします。'!features/*-master'上記の設定上ではfeatures/**にマッチしない時とfeat/*-masterにマッチする(feat/foo-masterなど)時のみワークフローが走ります。これはmasterブランチなども対象になります。!はもちろんbranchesでも効きます。"!features/*-test"タグタグの場合はデフォルトではすべて対象外になってます。"*"とすることでできます。"v[0-9].[0-9]+.[0-9]+"この場合ではfeatures/*-testにはマッチしないfeatures/**にマッチするブランチでワークフローが走ります。ファイルフィルターon.pushの下にはpathsとpaths-ignoreというキーも置けます。これは「コミットにパターンにマッチするファイルがあった時だけ処理するよ」またはその逆のように設定できます。'**.md'上記のような設定にしておけばすべての**.md(リポジトリ上のすべての*.mdファイル)だけのコミットの時にはワークフローを走らせずに済みます。'**.js'このようにすれば**.jsの時だけ対象にできます。scheduleon.scheduleはある決められた時刻にワークフローを実行する為の仕組みです。このイベントによってワークフローが走る時対象になるブランチは、そのリポジトリのデフォルトブランチになります。その内容は最新のコミット時のものになります。設定するにはon.scheduleの下にcronキーを持つ連想配列を配列で置きます。クーロン構文で書く必要があります。配列ということは同時に複数の値を置くことができます。このような設定ではワークフローは5分毎と7分毎に実行されます。注意点として2020年1月時点ではcronの最小インターバルは5分と設定されてます。runs-onジョブ毎にどの環境で処理を実行するか指定するものとしてruns-onがあります。これが取りうる値は2020年1月現在以下の通りです。10.15例えば以下のようになります。ubuntu-latest複数の環境で実行ビルドマトリクスjobs.<job>.strategy.matrixを用いることで、1つのジョブステップを別々の環境で複数回実行できます。ようにするとubuntu-18.04とubuntu-16.04の2環境で検証できます。self-hostedruns-onでself-hostedを選択すると、自身のマシンでワークフローを実行させれます。その為には先に自身のマシンで環境構築が必要です。