【続き】git pushをトリガーにGithub actionsでbuildとdeployする
昨日の不明点
不明点だった、
- このスクリプト
(.github/workflow/<..>.yml)
のデバッグの仕方 - 「gh-pagesブランチにデプロイ」とあるが、別のgithub pagesリポジトリにデプロイできないのか?
- github pagesリポジトリでサブディレクトリで階層が別れていることに対応
このうち、2、3が判明した。
「gh-pagesブランチにデプロイ」とあるが、別のgithub pagesリポジトリにデプロイできないのか?
対象リポジトリのgithub・setting・pagesでgithub-pageの対象にするブランチを決めることが出来る。このブランチを「gh-pagesブランチ」に設定ということであった。
つまり、必ずgh-pagesブランチ ということではなく、任意である。
github pagesリポジトリでサブディレクトリで階層が別れていることに対応
actionsのyamlスクリプトの run節で可能である。また、uses節で指定するスクリプトの引数に存在すれば可能である。
actionsで利用するdockerコンテナは おおよそubuntu等 linux系 を選ぶだろう、慣れてるからね。そこに構築する(されている)コマンド群は、手元のコマンド群と似たようなものにするだろう、なので、可能である。
新たな課題
ymlスクリプトのデバッグは、printfデバッグの方法を調べるだけなので、課題を纏めてみる。
したいことは、
- ローカル のソースリポジトリで、成果物を ローカル のgithub.ioリポジトリを生成先に指定して、ビルド
- ローカル のgithub.ioリポジトリでgit push
の2点。
説明中「 ローカル 」部分が「actions上のdockerコンテナ」に置き換わる。
「actions上のdockerコンテナ」上には、ソースリポジトリとgithub.ioリポジトリをcloneするのだな。ここまでできればruns節で``bundle exec…`と記述すればよいだろう。
次に「actions上のdockerコンテナ」上でリモート(github上)のgithub.ioリポジトリにpushするのだな。
「actions上のdockerコンテナ」にローカルのgit(秘密鍵:~/.sshディレクトリ)+bundlerの環境を作れば出来るのか…
必要なファイル群を選択してコピーするのか…めんどくさいなぁ
参考にしているyamlファイルを眺めていると gitコマンドやbundler,jekyll(つまりrubyも) は
- actions/checkout@2
- actions/setup-ruby@1
をuses節で指定するだけのようである…それほど面倒くさくないかも
煮詰まったのでキーワード「github-pages」を纏めてみることにした
github-pagesについて
このキーワードで2系統
- Githubが提供している「pages」機能
- Github「pages」機能を便利に使うためのRuby Gemの名称
過去に、このGemをインストールしていて、インストールした理由を完全に忘れていて、解釈をごちゃ混ぜにしていた^^;)
「pages」で想定している運用方法があって、それを Gem github-pages は容易にするように設計されている。
ここで採ったgithub.ioでは「pages」の設定が存在しているが、これもまた、過去に設定した際の使い方を忘れている。
実は「pages」を利用しなくて良いのでは… 再度「Github pages」で検索
Githubの「pages」のドキュメントの冒頭に「GitHub Pages サンプル集」リンクがあって、何の気なしにクリックして、一覧ページに移動。Jekyllをクリックして、やはり、なんとなく「.github/workflows/docs.yml」と辿ってみると…ズバリの答えが出てきてしまった…自分が採っているgithub.ioと同じ運用方法でdocsを生成している。スクリプトで使ってるコマンドやその実行順序がスンナリと解釈できるの。問題を感じない。
説明の各所に出てきたCNAMEの使い方はreactのgh-pagesブランチを見たらなんか、判ったかも。って思った。
次は、ここを読まないと