1
0
hugo/content/blog/2019-12-16-ghpages.md
2024-04-23 22:21:26 +09:00

52 lines
2.4 KiB
Markdown

+++
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ソースをリポジトリに置かないことだけですし。