+++ date = "2019-12-16" tags = ["github"] title = "github pagesでサブドメインのリポジトリにソースを載せない方法" slug = "ghpages" +++ 現在、hugoをgithub-actionsで自動ビルドとデプロイしているのですが、デプロイが、コミットを消すやつじゃないので困ってます。 デプロイすると、`${user}.github.io`のリポジトリの場合、masterにhtmlが置かれます。(privateなら見えないようにできる) しかし、この前、ちょっと裏技ぽいものを発見したのでメモ。 以下でmasterの内容がgh-pagesに反映されなかった。おそらく、githubのpage-buildが走ってないからだと思う。 ```yml:.github/workflows/deploy.yml name: github pages deploy on: page_build: jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 with: branch: 'master' run: git checkout master - uses: ad-m/github-push-action@master with: branch: 'master' force: true github_token: ${{ secrets.GITHUB_TOKEN }} run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" GIT_SEQUENCE_EDITOR="sed -ie '2 s/^pick /f /g'" git rebase -i --root ``` https://help.github.com/ja/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions# やりたいことは、masterのcommitをfixupしてcommit削減なんだけど、実際に実行された内容は、branch:srcの内容をmasterに`psuh -f`するみたいな感じになってる。つまり、srcがmasterにコピーされたのに、ページが表示されていました。 ただし、何度も連続でcommitして、このアクションが2回連続実行されたりするとページが消えてしまう危険があります。 おそらく、gh-pagesのbuildが走るのはworkflow中に一回で、連動している場合、同workflow内でmasterにpushされても`page_build`が走らないため、最新のmasterの内容がページに反映されていないんだと思う。もしくは、`on:page_build`のアクションには`page_build`は実行されないとか。 とはいえ、不安定な挙動を放置するわけにもいかないので、使わないかな。効果がcommit整理とhtmlソースをリポジトリに置かないことだけですし。