Compare commits

..

No commits in common. "main" and "v3.8.0" have entirely different histories.
main ... v3.8.0

43 changed files with 10183 additions and 5182 deletions

View File

@ -0,0 +1,36 @@
---
name: User Support
about: Questions for this Action
title: 'sample_title'
labels: support
assignees: peaceiris
---
<!-- Note that an issue which does not follow the template will be closed silently. -->
### Check list before opening this issue
- [ ] I read the latest README
- I checked [Available Options](https://github.com/peaceiris/actions-gh-pages#options)
- I followed [Tips and FAQ](https://github.com/peaceiris/actions-gh-pages#tips-and-faq)
- I tried [Workflow Examples](https://github.com/peaceiris/actions-gh-pages#examples)
- I read the latest GitHub Actions official documentation and learned the basic spec and concepts
### Describe your question
<!-- A clear and concise description of what the question is. -->
### Link to your contents
<!--
- Link to your public repository here
- Link to your workflow here
-->
### Screenshots
<!-- If applicable, add screenshots to help explain your question. -->
### Additional context
<!-- Add any other context about the problem here. -->

View File

@ -1,52 +0,0 @@
name: User Support
description: Questions for this action
title: "support: "
labels: support
assignees: peaceiris
body:
- type: markdown
attributes:
value:
Please note we will close your issue without comment if you do not fill out the issue checklist below and provide ALL the requested information.
- type: checkboxes
attributes:
label: Checklist
description: Checklist before creating an issue.
options:
- label: "I am using the latest version of this action."
required: true
- label: "I have read the latest README and followed the instructions."
required: true
- label: "I have read the latest GitHub Actions official documentation and learned the basic spec and concepts."
required: true
- type: textarea
attributes:
label: Describe your question
description: A clear and concise description of what the question is.
validations:
required: true
- type: textarea
attributes:
label: Relevant links
description:
Links to your public repository, YAML config file, and YAML workflow file.
Please use [a permanent link](https://docs.github.com/en/github/managing-files-in-a-repository/managing-files-on-github/getting-permanent-links-to-files), not a default branch.
render: markdown
value: |
Public repository:
YAML config:
YAML workflow:
validations:
required: true
- type: textarea
attributes:
label: Relevant log output
description: Copy and paste any relevant log output here.
validations:
required: false
- type: textarea
attributes:
label: Additional context.
description: Write any other context about the question here.
validations:
required: false

44
.github/ISSUE_TEMPLATE/2_bug_report.md vendored Normal file
View File

@ -0,0 +1,44 @@
---
name: Bug Report
about: First, use the User Support Issue Template
title: 'sample_title'
labels: bug
assignees: peaceiris
---
<!-- Note that an issue which does not follow the template will be closed silently. -->
### Describe the bug
<!-- A clear and concise description of what the bug is. -->
### To Reproduce
<!--
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
-->
### Expected behavior
<!-- A clear and concise description of what you expected to happen. -->
### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->
### Your YAML file
<!--
- A link to your repository
- A link to your YAML file
-->
### Additional context
<!-- Add any other context about the problem here. -->

View File

@ -1,52 +0,0 @@
name: Bug Report
description: Try the User Support Issue Template first.
title: 'bug: '
labels: bug
assignees: peaceiris
body:
- type: markdown
attributes:
value:
Please note we will close your issue without comment if you do not fill out the issue checklist below and provide ALL the requested information.
- type: checkboxes
attributes:
label: Checklist
description: Checklist before creating an issue.
options:
- label: "I am using the latest version of this action."
required: true
- label: "I have read the latest README and followed the instructions."
required: true
- label: "I have read the latest GitHub Actions official documentation and learned the basic spec and concepts."
required: true
- type: textarea
attributes:
label: "Describe the bug"
description: "A clear and concise description of what the bug is."
validations:
required: true
- type: textarea
attributes:
label: Relevant links
description:
Links to your public repository, YAML config file, and YAML workflow file.
Please use [a permanent link](https://docs.github.com/en/github/managing-files-in-a-repository/managing-files-on-github/getting-permanent-links-to-files), not a default branch.
render: markdown
value: |
Public repository:
YAML config:
YAML workflow:
validations:
required: true
- type: textarea
attributes:
label: Relevant log output
description: Copy and paste any relevant log output here.
validations:
required: false
- type: textarea
attributes:
label: Additional context.
description: Write any other context about the question here.
validations:
required: false

26
.github/ISSUE_TEMPLATE/3_proposal.md vendored Normal file
View File

@ -0,0 +1,26 @@
---
name: Proposal
about: Suggest an idea for this project
title: 'sample_title'
labels: proposal
assignees: peaceiris
---
<!-- Note that an issue which does not follow the template will be closed silently. -->
### Is your feature request related to a problem? Please describe
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
### Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. -->
### Describe alternatives you've considered
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
### Additional context
<!-- Add any other context or screenshots about the feature request here. -->

View File

@ -1,45 +0,0 @@
name: Proposal
description: Suggest an idea for this project
title: 'proposal: '
labels: proposal
assignees: peaceiris
body:
- type: markdown
attributes:
value:
Please note we will close your issue without comment if you do not fill out the issue checklist below and provide ALL the requested information.
- type: checkboxes
attributes:
label: Checklist
description: Checklist before creating an issue.
options:
- label: "I am using the latest version of this action."
required: true
- label: "I have read the latest README and followed the instructions."
required: true
- label: "I have read the latest GitHub Actions official documentation and learned the basic spec and concepts."
required: true
- type: textarea
attributes:
label: "Describe your proposal"
description: "A clear and concise description of what the proposal is."
validations:
required: true
- type: textarea
attributes:
label: "Describe the solution you'd like"
description: "A clear and concise description of what you want to happen."
validations:
required: true
- type: textarea
attributes:
label: "Describe alternatives you've considered"
description: "A clear and concise description of any alternative solutions or features you've considered."
validations:
required: false
- type: textarea
attributes:
label: "Additional context"
description: "Add any other context or screenshots about the feature request here."
validations:
required: false

View File

@ -1,14 +1,11 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discussions
url: https://github.com/peaceiris/actions-gh-pages/discussions
about: Ask casual questions or share your story about the GitHub Pages Action.
- name: GitHub Actions - GitHub Support Community Forum - name: GitHub Actions - GitHub Support Community Forum
url: https://github.community/c/code-to-cloud/github-actions/41 url: https://github.community/c/code-to-cloud/github-actions/41
about: Please ask questions about GitHub Actions here. about: Please ask questions about GitHub Actions here.
- name: GitHub Pages Documentation - name: GitHub Pages Documentation
url: https://docs.github.com/en/pages url: https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages
about: GitHub Pages official documentation here. about: GitHub Pages official documentaion here.
- name: GitHub Actions Documentation - name: GitHub Actions Documentation
url: https://docs.github.com/en/actions url: https://docs.github.com/en/free-pro-team@latest/actions
about: GitHub Actions official documentation here. about: GitHub Actions official documentation here.

23
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,23 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: '11:00'
timezone: Japan
labels:
- dependencies
allow:
- dependency-type: "production"
commit-message:
prefix: deps
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
labels:
- "CI/CD"
commit-message:
prefix: ci

View File

@ -1,36 +0,0 @@
labels:
- name: resolved
labeled:
issue:
body: |
This issue has been **LOCKED** because of it being resolved!
The issue has been fixed and is therefore considered resolved.
If you still encounter this or it has changed, open a new issue instead of responding to solved ones.
action: close
locking: lock
lock_reason: resolved
- name: inactive
labeled:
issue:
body: |
This issue has been marked as inactive.
If you still encounter this or it has changed, add a comment to provide further information.
- name: stale
labeled:
issue:
body: |
This issue has been **LOCKED** because of it being old.
If you still encounter this or it has changed, open a new issue.
action: close
locking: lock
lock_reason: resolved
- name: duplicate
labeled:
issue:
body: |
This issue has been closed because of duplication.
action: close
locking: lock
lock_reason: resolved

2
.github/labeler.yml vendored
View File

@ -1,4 +1,4 @@
cicd: CI/CD:
- .github/workflows/* - .github/workflows/*
dependencies: dependencies:

View File

@ -8,17 +8,17 @@ on:
jobs: jobs:
CodeQL-Build: CodeQL-Build:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v3 uses: github/codeql-action/init@v1
with: with:
languages: javascript languages: javascript
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v3 uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3 uses: github/codeql-action/analyze@v1

View File

@ -1,16 +0,0 @@
# Source repository: https://github.com/actions/dependency-review-action
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
name: 'Dependency Review'
on:
pull_request:
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/dependency-review-action@v4

38
.github/workflows/dev-image.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: 'Dev Image CI'
on:
workflow_dispatch:
schedule:
- cron: '11 11 * * *'
push:
branches:
- main
paths:
- '.github/workflows/dev-image.yml'
- '.dockerignore'
- '.nvmrc'
- 'Dockerfile'
- 'Makefile'
- 'docker-compose.yml'
pull_request:
paths:
- '.github/workflows/dev-image.yml'
- '.dockerignore'
- '.nvmrc'
- 'Dockerfile'
- 'Makefile'
- 'docker-compose.yml'
jobs:
dev-image-test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Login to Packages
run: echo '${{ secrets.GITHUB_TOKEN }}' | docker login 'docker.pkg.github.com' -u 'peaceiris' --password-stdin
- run: docker-compose pull --quiet
if: github.event_name == 'pull_request'
- run: make build
- run: docker images
- run: docker-compose push
if: github.ref == 'refs/heads/main' && github.event.repository.fork == false

View File

@ -1,27 +0,0 @@
name: Label Commenter
on:
issues:
types:
- labeled
- unlabeled
pull_request_target:
types:
- labeled
- unlabeled
permissions:
contents: read
issues: write
pull-requests: write
jobs:
comment:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Label Commenter
uses: peaceiris/actions-label-commenter@v1
env:
RUNNER_DEBUG: 1

View File

@ -1,22 +1,13 @@
name: "Pull Request Labeler" name: "Pull Request Labeler"
# https://github.com/actions/labeler
on: on:
pull_request_target: - pull_request_target
jobs: jobs:
triage: triage:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
timeout-minutes: 1
permissions: {}
steps: steps:
# https://github.com/peaceiris/actions-github-app-token - uses: actions/labeler@v3
- uses: peaceiris/actions-github-app-token@v1.1.6
id: app
with: with:
app_id: ${{ secrets.GH_APP_ID }} repo-token: "${{ secrets.GH_PAT }}"
private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}
# https://github.com/actions/labeler
- uses: actions/labeler@v4
with:
repo-token: "${{ steps.app.outputs.token }}"

View File

@ -4,7 +4,7 @@ on: page_build
jobs: jobs:
pages-status-check: pages-status-check:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
steps: steps:
- name: check status - name: check status
run: | run: |

View File

@ -7,7 +7,7 @@ on:
jobs: jobs:
purge: purge:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
steps: steps:
- run: > - run: >

View File

@ -7,10 +7,10 @@ on:
jobs: jobs:
release: release:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
# https://github.com/peaceiris/workflows/blob/main/create-release-npm/action.yml # https://github.com/peaceiris/workflows/blob/main/create-release-npm/action.yml
- uses: peaceiris/workflows/create-release-npm@v0.20.1 - uses: peaceiris/workflows/create-release-npm@v0.8.1
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -10,28 +10,35 @@ on:
paths-ignore: paths-ignore:
- '*.md' - '*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
jobs: jobs:
test: test:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: os:
- 'ubuntu-22.04'
- 'ubuntu-20.04' - 'ubuntu-20.04'
- 'ubuntu-latest' - 'ubuntu-18.04'
- 'ubuntu-16.04'
- 'macos-latest' - 'macos-latest'
- 'windows-latest' - 'windows-latest'
permissions:
contents: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- uses: peaceiris/workflows/setup-node@v0.20.1 - name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "${GITHUB_CONTEXT}"
- name: Read .nvmrc
run: echo "::set-output name=NVMRC::$(cat .nvmrc)"
id: nvm
- name: Setup Node
uses: actions/setup-node@v2.1.5
with: with:
node-version-file: ".nvmrc" node-version: '${{ steps.nvm.outputs.NVMRC }}'
- run: npm i -g npm
- name: Dump version - name: Dump version
run: | run: |
@ -42,7 +49,7 @@ jobs:
- run: npm ci --ignore-scripts - run: npm ci --ignore-scripts
- name: npm audit - name: npm audit
if: startsWith(matrix.os, 'ubuntu-22.04') if: startsWith(matrix.os, 'ubuntu-18.04')
run: | run: |
npm audit > ./audit.log || true npm audit > ./audit.log || true
if ! [ "$(cat ./audit.log | wc -l)" = 1 ]; then if ! [ "$(cat ./audit.log | wc -l)" = 1 ]; then
@ -51,46 +58,46 @@ jobs:
rm ./audit.log rm ./audit.log
- name: Run prettier - name: Run prettier
if: startsWith(matrix.os, 'ubuntu-22.04') if: startsWith(matrix.os, 'ubuntu-18.04')
run: npm run format:check run: npm run format:check
- name: Run eslint - name: Run eslint
if: startsWith(matrix.os, 'ubuntu-22.04') if: startsWith(matrix.os, 'ubuntu-18.04')
run: npm run lint run: npm run lint
- run: npm test - run: npm test
- name: Upload test coverage as artifact - name: Upload test coverage as artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v2
with: with:
name: coverage-${{ matrix.os }} name: coverage-${{ matrix.os }}
path: coverage path: coverage
- uses: codecov/codecov-action@v4 - uses: codecov/codecov-action@v1.3.1
- name: Run ncc - name: Run ncc
run: npm run build run: npm run build
- name: Remove lint-staged husky - name: Remove lint-staged husky
if: ${{ github.ref == 'refs/heads/main' }} if: github.ref == 'refs/heads/main'
run: | run: |
npm uninstall lint-staged husky npm uninstall lint-staged husky
git checkout package-lock.json package.json git checkout package-lock.json package.json
- name: Setup mdBook - name: Setup mdBook
if: ${{ github.ref == 'refs/heads/main' }} if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-mdbook@v1.2.0 uses: peaceiris/actions-mdbook@v1.1.14
with: with:
mdbook-version: '0.4.5' mdbook-version: '0.4.5'
- name: Build site - name: Build site
if: ${{ github.ref == 'refs/heads/main' }} if: github.ref == 'refs/heads/main'
working-directory: ./test_projects/mdbook working-directory: ./test_projects/mdbook
run: mdbook build run: mdbook build
- name: Deploy - name: Deploy
if: | if: |
startsWith(matrix.os, 'ubuntu-latest') && startsWith(matrix.os, 'ubuntu-18.04') &&
github.ref == 'refs/heads/main' && github.event.repository.fork == false github.ref == 'refs/heads/main' && github.event.repository.fork == false
uses: ./ uses: ./
with: with:
@ -107,6 +114,24 @@ jobs:
# commit_message: ${{ github.event.head_commit.message }} # commit_message: ${{ github.event.head_commit.message }}
cname: 'actions-gh-pages.peaceiris.com' cname: 'actions-gh-pages.peaceiris.com'
- name: Deploy
if: |
startsWith(matrix.os, 'ubuntu-16.04') &&
github.ref == 'refs/heads/main' && github.event.repository.fork == false
uses: ./
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
# github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages-ubuntu-16.04
publish_dir: ./test_projects/mdbook/book
# external_repository: ''
allow_empty_commit: true
keep_files: true
force_orphan: true
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
full_commit_message: ${{ github.event.head_commit.message }}
- name: Deploy - name: Deploy
if: | if: |
startsWith(matrix.os, 'macos') && startsWith(matrix.os, 'macos') &&
@ -162,21 +187,3 @@ jobs:
user_name: 'github-actions[bot]' user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com' user_email: 'github-actions[bot]@users.noreply.github.com'
# commit_message: ${{ github.event.head_commit.message }} # commit_message: ${{ github.event.head_commit.message }}
- name: Deploy
if: |
startsWith(matrix.os, 'ubuntu-22.04') &&
github.ref == 'refs/heads/main' && github.event.repository.fork == false
uses: ./
with:
# deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages-ubuntu-22.04
publish_dir: ./test_projects/mdbook/book
# external_repository: ''
allow_empty_commit: true
# keep_files: true
# force_orphan: true
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
# commit_message: ${{ github.event.head_commit.message }}

View File

@ -2,16 +2,17 @@ name: Update major tag
on: on:
release: release:
types: [released] types: [published]
jobs: jobs:
update: update:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
timeout-minutes: 1
steps: steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- name: Update major tag - name: Update major tag
if: github.event.release.prerelease == false
run: | run: |
git config user.name "${GITHUB_ACTOR}" git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"

View File

@ -1,2 +1,2 @@
npm install npm ci
git remote prune origin git remote prune origin

2
.nvmrc
View File

@ -1 +1 @@
20.11.1 12.21.0

1
.vscode/.gitignore vendored
View File

@ -1 +0,0 @@
*.log

View File

@ -2,218 +2,6 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
# [4.0.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.9.3...v4.0.0) (2024-04-08)
### build
* node 20.11.1 ([5049354](https://github.com/peaceiris/actions-gh-pages/commit/5049354438ced05ab8a5da89ef20fd8efff107c7))
### chore
* bump node16 to node20 (#1067) ([4eb285e](https://github.com/peaceiris/actions-gh-pages/commit/4eb285e828117bca26638192c3ed309c622e7bad)), closes [#1067](https://github.com/peaceiris/actions-gh-pages/issues/1067)
* downgrade engines.npm to 8.0.0 ([87231bc](https://github.com/peaceiris/actions-gh-pages/commit/87231bc03a428df52f90a00b3b9e6bef82f7daf9))
### ci
* pin node-version to 18 (#981) ([65ebf11](https://github.com/peaceiris/actions-gh-pages/commit/65ebf11929c082120c54719c87069f0827d2084c)), closes [#981](https://github.com/peaceiris/actions-gh-pages/issues/981)
### docs
* add Release Strategy ([67f80d9](https://github.com/peaceiris/actions-gh-pages/commit/67f80d94a1668353e4733223685dcb84340c44b5))
* fix link to Nuxt github-pages (#980) ([88b4d2a](https://github.com/peaceiris/actions-gh-pages/commit/88b4d2aa927893f8976712406df9928468be3c88)), closes [#980](https://github.com/peaceiris/actions-gh-pages/issues/980)
* remove braces in if conditions (#920) ([0fbd122](https://github.com/peaceiris/actions-gh-pages/commit/0fbd12244217a1fa04396b8a52d911a436893771)), closes [#920](https://github.com/peaceiris/actions-gh-pages/issues/920)
## [3.9.3](https://github.com/peaceiris/actions-gh-pages/compare/v3.9.2...v3.9.3) (2023-03-30)
### docs
* fix typo, bump hugo version (#851) ([884a022](https://github.com/peaceiris/actions-gh-pages/commit/884a0224fd48faeb3bde89519e9d612d0585a679)), closes [#851](https://github.com/peaceiris/actions-gh-pages/issues/851)
### fix
* fix error handling (#841) ([32e33dc](https://github.com/peaceiris/actions-gh-pages/commit/32e33dcd3ae1d0cf56ac5a88267de6cbf0359353)), closes [#841](https://github.com/peaceiris/actions-gh-pages/issues/841)
* update known_hosts (#871) ([31c15f0](https://github.com/peaceiris/actions-gh-pages/commit/31c15f03292ac100ae41a50fd3055e00d1b11a32)), closes [#871](https://github.com/peaceiris/actions-gh-pages/issues/871)
## [3.9.2](https://github.com/peaceiris/actions-gh-pages/compare/v3.9.1...v3.9.2) (2023-01-17)
### chore
* rename cicd ([32c9288](https://github.com/peaceiris/actions-gh-pages/commit/32c9288f553bbcbf66869cf553c82754431faf03))
* replace npm ci with install ([9839780](https://github.com/peaceiris/actions-gh-pages/commit/983978086a87d25a1ff678aa1ef4c2acc413784a))
### ci
* add github-actions npm ([5e5dc6d](https://github.com/peaceiris/actions-gh-pages/commit/5e5dc6d02eeb18001e0a7af6d6fcbabd4fd9e2b7))
* enable automerge ([dd7d778](https://github.com/peaceiris/actions-gh-pages/commit/dd7d77895818fd15ebecf20b6bf76028d377e1b6))
* remove dependabot ([7af79a8](https://github.com/peaceiris/actions-gh-pages/commit/7af79a873e9c2b6c37690db94012342fdb90914a))
* remove enabledManagers ([cba22ba](https://github.com/peaceiris/actions-gh-pages/commit/cba22ba760f1c7e62c9ae43167ea68ca9de56506))
* use peaceiris/workflows/setup-node 0.19.1 (#818) ([416f539](https://github.com/peaceiris/actions-gh-pages/commit/416f539fb4263ec46f9bbee251e87cfeae9f85ff)), closes [#818](https://github.com/peaceiris/actions-gh-pages/issues/818)
### deps
* apply npm audit fix (#809) ([e3aa46d](https://github.com/peaceiris/actions-gh-pages/commit/e3aa46d23bbf7f669a6d92c15dda089b2edf4959)), closes [#809](https://github.com/peaceiris/actions-gh-pages/issues/809)
## [3.9.1](https://github.com/peaceiris/actions-gh-pages/compare/v3.9.0...v3.9.1) (2023-01-05)
### chore
* change cicd label name ([1808965](https://github.com/peaceiris/actions-gh-pages/commit/180896524151a5634ff5815a72c59467fc27c874))
### ci
* add Renovate config (#802) ([072d16c](https://github.com/peaceiris/actions-gh-pages/commit/072d16c439270cd3a36c3e0977ccbe10f2b2bc55)), closes [#802](https://github.com/peaceiris/actions-gh-pages/issues/802)
* bump actions/dependency-review-action from 2 to 3 (#799) ([e3b45f2](https://github.com/peaceiris/actions-gh-pages/commit/e3b45f27007dc55bcdd52f01e38af6f61576ec7f)), closes [#799](https://github.com/peaceiris/actions-gh-pages/issues/799)
* bump peaceiris/actions-github-app-token from 1.1.4 to 1.1.5 (#798) ([a5f971f](https://github.com/peaceiris/actions-gh-pages/commit/a5f971f112fd50b6dd28469f23be2618b1ea87e7)), closes [#798](https://github.com/peaceiris/actions-gh-pages/issues/798)
* bump peaceiris/actions-mdbook from 1.1.14 to 1.2.0 (#793) ([9af6a68](https://github.com/peaceiris/actions-gh-pages/commit/9af6a68dde7720af8fd55364c2c637ca5922a879)), closes [#793](https://github.com/peaceiris/actions-gh-pages/issues/793)
* bump peaceiris/workflows from 0.17.1 to 0.17.2 (#794) ([087a759](https://github.com/peaceiris/actions-gh-pages/commit/087a759f907a127fdee23c8994321ff96f7d9430)), closes [#794](https://github.com/peaceiris/actions-gh-pages/issues/794)
* bump peaceiris/workflows from 0.17.2 to 0.18.1 (#806) ([f94667a](https://github.com/peaceiris/actions-gh-pages/commit/f94667a25cd2716a8a046111457e4b17c8c28407)), closes [#806](https://github.com/peaceiris/actions-gh-pages/issues/806)
### deps
* bump @actions/github from 5.0.1 to 5.1.1 (#785) ([679dbf0](https://github.com/peaceiris/actions-gh-pages/commit/679dbf02f69022f8c402975fdefe41ddb31516cd)), closes [#785](https://github.com/peaceiris/actions-gh-pages/issues/785)
* bump @actions/glob from 0.2.1 to 0.3.0 (#735) ([25b12e2](https://github.com/peaceiris/actions-gh-pages/commit/25b12e2a24490dbc96aa0d5201e94b1b4cca7fb0)), closes [#735](https://github.com/peaceiris/actions-gh-pages/issues/735)
* bump minimatch from 3.0.4 to 3.1.2 (#807) ([2f463a5](https://github.com/peaceiris/actions-gh-pages/commit/2f463a5ad59a66a5a83e0f072f6d556898e6cc9e)), closes [#807](https://github.com/peaceiris/actions-gh-pages/issues/807)
### docs
* replace deprecated set-output (#800) ([7166f2c](https://github.com/peaceiris/actions-gh-pages/commit/7166f2caa423717780ff24040f0163cbe511c18c)), closes [#800](https://github.com/peaceiris/actions-gh-pages/issues/800)
# [3.9.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.8.0...v3.9.0) (2022-10-23)
### chore
* add duplicate ([402af2b](https://github.com/peaceiris/actions-gh-pages/commit/402af2bd613bf17a0f737722b22787423732ebb8))
* Convert templates to YAML issue forms ([ecd92e3](https://github.com/peaceiris/actions-gh-pages/commit/ecd92e3bae20b0f2c3ea11ce7b30b25840eabd4e))
* Disable Bug Report ([55635e9](https://github.com/peaceiris/actions-gh-pages/commit/55635e91933d51b0d6c3a575897a7b5a3704f386))
* Fix prettier (#633) ([fde6b18](https://github.com/peaceiris/actions-gh-pages/commit/fde6b1864d7ae561229e5dc3e55ef29322b35c48)), closes [#633](https://github.com/peaceiris/actions-gh-pages/issues/633)
* fix title ([b5022f9](https://github.com/peaceiris/actions-gh-pages/commit/b5022f987516e69c177b0b457fb5514ea10d2a67))
* Fix workflow name ([e91a189](https://github.com/peaceiris/actions-gh-pages/commit/e91a189d4cb8222e581d2871ef437880f2333b9b))
* fix year ([f2ac8b6](https://github.com/peaceiris/actions-gh-pages/commit/f2ac8b62c4b599b6654590f0b7a1161703fc91b4))
* improve Check list ([6a30129](https://github.com/peaceiris/actions-gh-pages/commit/6a30129b5b88d0a390c34ed3629d6cf573bbbb1f))
* Improve checklist ([69f1241](https://github.com/peaceiris/actions-gh-pages/commit/69f124149567d87a17c55cae5abe231ce44ce07e))
* Set required to false ([d7ab6de](https://github.com/peaceiris/actions-gh-pages/commit/d7ab6dea490c8d393a652c34d5f44e2d0708914d))
* Set required to false ([e8cba38](https://github.com/peaceiris/actions-gh-pages/commit/e8cba386c2fbcf55a8eeca1302315b6b41bb7fe9))
* update year from 2020 to 2022 ([f1f4f15](https://github.com/peaceiris/actions-gh-pages/commit/f1f4f153975a491040d838fda56646f9edafc879))
### ci
* add actions/dependency-review-action ([3cc0a55](https://github.com/peaceiris/actions-gh-pages/commit/3cc0a55ff58aefa21874876c91f4f2ffb6103453))
* Add concurrency ([edb4f3e](https://github.com/peaceiris/actions-gh-pages/commit/edb4f3effe03cbd1386d11970f751c732c9a26c3))
* bump actions/checkout from 2 to 2.3.4 (#610) ([3102151](https://github.com/peaceiris/actions-gh-pages/commit/3102151215f6d7a76df4018f0af0a9699ed3f336)), closes [#610](https://github.com/peaceiris/actions-gh-pages/issues/610)
* bump actions/checkout from 2.3.4 to 2.3.5 (#664) ([b19f8b8](https://github.com/peaceiris/actions-gh-pages/commit/b19f8b8110dcb0217ae6e766038e0866e939324a)), closes [#664](https://github.com/peaceiris/actions-gh-pages/issues/664)
* bump actions/checkout from 2.3.5 to 2.4.0 (#668) ([d3d121d](https://github.com/peaceiris/actions-gh-pages/commit/d3d121d59436b77f95d88db13058d9752f43bc92)), closes [#668](https://github.com/peaceiris/actions-gh-pages/issues/668)
* bump actions/checkout from 2.4.0 to 3 (#715) ([c921422](https://github.com/peaceiris/actions-gh-pages/commit/c921422e3791023a8dd39566a129863ff42e8c39)), closes [#715](https://github.com/peaceiris/actions-gh-pages/issues/715)
* bump actions/dependency-review-action from 1 to 2 (#762) ([1304921](https://github.com/peaceiris/actions-gh-pages/commit/1304921c60d95a91f76f5fea0ce500280f4a6702)), closes [#762](https://github.com/peaceiris/actions-gh-pages/issues/762)
* bump actions/labeler from 3 to 4 (#716) ([7954f3d](https://github.com/peaceiris/actions-gh-pages/commit/7954f3d89e7814f3c77e0a9707d8de64fa600d5a)), closes [#716](https://github.com/peaceiris/actions-gh-pages/issues/716)
* bump actions/setup-node from 2.1.5 to 2.2.0 (#626) ([3edcc53](https://github.com/peaceiris/actions-gh-pages/commit/3edcc53d62040dee889598eda219c09c8062ef79)), closes [#626](https://github.com/peaceiris/actions-gh-pages/issues/626)
* bump actions/setup-node from 2.2.0 to 2.3.0 (#632) ([69191bf](https://github.com/peaceiris/actions-gh-pages/commit/69191bfb1c07687489d4ff7f67a14fb86f84fd2f)), closes [#632](https://github.com/peaceiris/actions-gh-pages/issues/632)
* bump actions/setup-node from 2.3.0 to 2.3.1 (#636) ([d5e7428](https://github.com/peaceiris/actions-gh-pages/commit/d5e742835946ed1f76c9c8b90c85cac1b034aca0)), closes [#636](https://github.com/peaceiris/actions-gh-pages/issues/636)
* bump actions/setup-node from 2.3.1 to 2.3.2 (#637) ([4a55c45](https://github.com/peaceiris/actions-gh-pages/commit/4a55c4533bc63bcf8bc0388e5b77b55dace1c4df)), closes [#637](https://github.com/peaceiris/actions-gh-pages/issues/637)
* bump actions/setup-node from 2.3.2 to 2.4.0 (#639) ([288fd14](https://github.com/peaceiris/actions-gh-pages/commit/288fd146896a5e9bca7819627bfca4858c4f61e7)), closes [#639](https://github.com/peaceiris/actions-gh-pages/issues/639)
* bump actions/setup-node from 2.4.0 to 2.4.1 (#656) ([52f1a50](https://github.com/peaceiris/actions-gh-pages/commit/52f1a5023a0458aead16313edf670ba9bbf9a543)), closes [#656](https://github.com/peaceiris/actions-gh-pages/issues/656)
* bump actions/setup-node from 2.4.1 to 2.5.0 (#673) ([88eb3e4](https://github.com/peaceiris/actions-gh-pages/commit/88eb3e4384e4b20352f7a2e9261af42478cbc4f1)), closes [#673](https://github.com/peaceiris/actions-gh-pages/issues/673)
* bump actions/setup-node from 2.5.0 to 2.5.1 (#689) ([127e2d7](https://github.com/peaceiris/actions-gh-pages/commit/127e2d7a36a613d271c3724758462936d9ed28f1)), closes [#689](https://github.com/peaceiris/actions-gh-pages/issues/689)
* bump actions/setup-node from 2.5.1 to 3 (#713) ([c188bee](https://github.com/peaceiris/actions-gh-pages/commit/c188bee6f9a10aa5cdd8f736310d7184685b7294)), closes [#713](https://github.com/peaceiris/actions-gh-pages/issues/713)
* bump actions/upload-artifact from 2 to 3 (#732) ([fb2c292](https://github.com/peaceiris/actions-gh-pages/commit/fb2c292cba55a2fbfcf55daec80ead70af7a5cab)), closes [#732](https://github.com/peaceiris/actions-gh-pages/issues/732)
* bump codecov/codecov-action from 1.5.0 to 1.5.2 (#622) ([3087a34](https://github.com/peaceiris/actions-gh-pages/commit/3087a3437ec05a3aa32755d702e39988df5f050c)), closes [#622](https://github.com/peaceiris/actions-gh-pages/issues/622)
* bump codecov/codecov-action from 1.5.2 to 2.0.1 (#631) ([90e01d5](https://github.com/peaceiris/actions-gh-pages/commit/90e01d5ddd49e6acc3c5dbbc8fc5ca44d5e94c18)), closes [#631](https://github.com/peaceiris/actions-gh-pages/issues/631)
* bump codecov/codecov-action from 2.0.1 to 2.0.2 (#634) ([d4b79ae](https://github.com/peaceiris/actions-gh-pages/commit/d4b79aef1f0c91d1f3ff0d56f9381f0a641250bd)), closes [#634](https://github.com/peaceiris/actions-gh-pages/issues/634)
* bump codecov/codecov-action from 2.0.2 to 2.0.3 (#646) ([e363e57](https://github.com/peaceiris/actions-gh-pages/commit/e363e5795952b51cd27dbe2d68db69292fd55fc6)), closes [#646](https://github.com/peaceiris/actions-gh-pages/issues/646)
* bump codecov/codecov-action from 2.0.3 to 2.1.0 (#655) ([40515c6](https://github.com/peaceiris/actions-gh-pages/commit/40515c605bdba1b1c5abd35066424bb2b4cfd846)), closes [#655](https://github.com/peaceiris/actions-gh-pages/issues/655)
* bump codecov/codecov-action from 2.1.0 to 3 (#729) ([1226087](https://github.com/peaceiris/actions-gh-pages/commit/12260875478175738e8a4e11917dcb2849b3ff23)), closes [#729](https://github.com/peaceiris/actions-gh-pages/issues/729)
* bump codecov/codecov-action from v1.3.1 to v1.3.2 (#594) ([1d0fa1a](https://github.com/peaceiris/actions-gh-pages/commit/1d0fa1a6443b47197e1446b8282191253a196530)), closes [#594](https://github.com/peaceiris/actions-gh-pages/issues/594)
* bump codecov/codecov-action from v1.3.2 to v1.4.0 (#602) ([b4ccfe8](https://github.com/peaceiris/actions-gh-pages/commit/b4ccfe80a698a88dbbef5d3d8a6dcc4adc422f18)), closes [#602](https://github.com/peaceiris/actions-gh-pages/issues/602)
* bump codecov/codecov-action from v1.4.0 to v1.4.1 (#604) ([e2a2646](https://github.com/peaceiris/actions-gh-pages/commit/e2a264646bcff750b77fc6689694f32cae152aa2)), closes [#604](https://github.com/peaceiris/actions-gh-pages/issues/604)
* bump codecov/codecov-action from v1.4.1 to v1.5.0 (#607) ([a22219e](https://github.com/peaceiris/actions-gh-pages/commit/a22219e8e4d436ca0c8fc5a596ef4fdb7f97558a)), closes [#607](https://github.com/peaceiris/actions-gh-pages/issues/607)
* bump github/codeql-action from 1 to 2 (#739) ([cf3948a](https://github.com/peaceiris/actions-gh-pages/commit/cf3948a236ac5ad9e3f5df020549e65351a99405)), closes [#739](https://github.com/peaceiris/actions-gh-pages/issues/739)
* bump peaceiris/workflows from 0.10.0 to 0.11.0 (#659) ([40737e1](https://github.com/peaceiris/actions-gh-pages/commit/40737e192d8ba20d11cb5e49ef4927a6bc67afd7)), closes [#659](https://github.com/peaceiris/actions-gh-pages/issues/659)
* bump peaceiris/workflows from 0.11.0 to 0.12.0 (#733) ([8a7e1fb](https://github.com/peaceiris/actions-gh-pages/commit/8a7e1fb6f4e3a35650f6e4d1d6b6e4229c790c4e)), closes [#733](https://github.com/peaceiris/actions-gh-pages/issues/733)
* bump peaceiris/workflows from 0.12.0 to 0.13.0 (#734) ([d4f052f](https://github.com/peaceiris/actions-gh-pages/commit/d4f052f1e85947a8cd4ac8833732054ff679e836)), closes [#734](https://github.com/peaceiris/actions-gh-pages/issues/734)
* bump peaceiris/workflows from 0.13.0 to 0.14.1 (#737) ([a762c3e](https://github.com/peaceiris/actions-gh-pages/commit/a762c3ec5466ae6e139e8043c62e09821ae2a3b6)), closes [#737](https://github.com/peaceiris/actions-gh-pages/issues/737)
* bump peaceiris/workflows from 0.14.1 to 0.15.0 (#751) ([da39891](https://github.com/peaceiris/actions-gh-pages/commit/da398914f7ffa06319c73b35e7d0e60283e1786f)), closes [#751](https://github.com/peaceiris/actions-gh-pages/issues/751)
* bump peaceiris/workflows from 0.15.0 to 0.16.0 (#766) ([05d272d](https://github.com/peaceiris/actions-gh-pages/commit/05d272de6c06158771c3e91ba690aaaabc0c416f)), closes [#766](https://github.com/peaceiris/actions-gh-pages/issues/766)
* bump peaceiris/workflows from 0.16.0 to 0.17.1 (#789) ([2c04d6b](https://github.com/peaceiris/actions-gh-pages/commit/2c04d6b59558dd2c0d7336b3a26ab87eb56cad7b)), closes [#789](https://github.com/peaceiris/actions-gh-pages/issues/789)
* bump peaceiris/workflows from 0.8.1 to 0.10.0 (#648) ([d936c20](https://github.com/peaceiris/actions-gh-pages/commit/d936c202377d434c7b787da447a5a043b6da5735)), closes [#648](https://github.com/peaceiris/actions-gh-pages/issues/648)
* Change trigger from published to released ([8f8bc46](https://github.com/peaceiris/actions-gh-pages/commit/8f8bc4611ef68a977630fc082434ff8f70fdb0b8))
* Drop ubuntu-16.04 (#606) ([b8eb1ae](https://github.com/peaceiris/actions-gh-pages/commit/b8eb1aeda400e0971c07694c7b453878ceb0ade9)), closes [#606](https://github.com/peaceiris/actions-gh-pages/issues/606)
* drop ubuntu-18.04, add 22.04, latest (#776) ([2eea5d7](https://github.com/peaceiris/actions-gh-pages/commit/2eea5d7a12ebcecf9d96a638de7649164fafddeb)), closes [#776](https://github.com/peaceiris/actions-gh-pages/issues/776)
* Improve step filters (#629) ([063f7de](https://github.com/peaceiris/actions-gh-pages/commit/063f7de6c4a7b149041a1d6a125a4827088fec76)), closes [#629](https://github.com/peaceiris/actions-gh-pages/issues/629)
* Install actions-label-commenter" ([c618621](https://github.com/peaceiris/actions-gh-pages/commit/c618621f202f2c120cbe3c57dd88742d723d317a))
* update contact_links ([183add1](https://github.com/peaceiris/actions-gh-pages/commit/183add1cc50764f1b3e36a73b14aa5b872fb55c4))
* use actions-github-app-token ([2bef62f](https://github.com/peaceiris/actions-gh-pages/commit/2bef62f8180c000cd3b5bf97e30f4cdde119adfb))
### deps
* bump @actions/core from 1.2.6 to 1.2.7 (#600) ([2d4d4fc](https://github.com/peaceiris/actions-gh-pages/commit/2d4d4fccc0e5d896442917c9849e18d9f20fa281)), closes [#600](https://github.com/peaceiris/actions-gh-pages/issues/600)
* bump @actions/core from 1.2.7 to 1.5.0 (#645) ([eb802f3](https://github.com/peaceiris/actions-gh-pages/commit/eb802f35cef88815ea66bf8a1d814c17b76a4f9b)), closes [#645](https://github.com/peaceiris/actions-gh-pages/issues/645)
* bump @actions/core from 1.5.0 to 1.6.0 (#657) ([150e20f](https://github.com/peaceiris/actions-gh-pages/commit/150e20f82d11c22282e9f1e2a5cc359d2f82dbf8)), closes [#657](https://github.com/peaceiris/actions-gh-pages/issues/657)
* bump @actions/exec from 1.0.4 to 1.1.0 (#618) ([4af0044](https://github.com/peaceiris/actions-gh-pages/commit/4af0044e5e4653b89affac033e933686da069ba4)), closes [#618](https://github.com/peaceiris/actions-gh-pages/issues/618)
* bump @actions/exec from 1.1.0 to 1.1.1 (#720) ([2fa2322](https://github.com/peaceiris/actions-gh-pages/commit/2fa23228a53288d3f0ca14e75fc96b8a57c69cd7)), closes [#720](https://github.com/peaceiris/actions-gh-pages/issues/720)
* bump @actions/github from 4.0.0 to 5.0.0 (#612) ([f29aeb9](https://github.com/peaceiris/actions-gh-pages/commit/f29aeb91b3a56926b6d8446b979dd7efd18469e3)), closes [#612](https://github.com/peaceiris/actions-gh-pages/issues/612)
* bump @actions/github from 5.0.0 to 5.0.1 (#728) ([46202b8](https://github.com/peaceiris/actions-gh-pages/commit/46202b81182827d66f204f83b88dbcca631ee7a7)), closes [#728](https://github.com/peaceiris/actions-gh-pages/issues/728)
* bump @actions/glob from 0.1.1 to 0.2.0 (#620) ([f34f14a](https://github.com/peaceiris/actions-gh-pages/commit/f34f14adb0e1a50b3983571105e6ac38f0d30e88)), closes [#620](https://github.com/peaceiris/actions-gh-pages/issues/620)
* bump @actions/glob from 0.2.0 to 0.2.1 (#721) ([c006717](https://github.com/peaceiris/actions-gh-pages/commit/c006717cf0bd938969390db21de9e6e3bcb288c0)), closes [#721](https://github.com/peaceiris/actions-gh-pages/issues/721)
* bump @actions/io from 1.0.2 to 1.1.0 (#593) ([95ad034](https://github.com/peaceiris/actions-gh-pages/commit/95ad0343aae5b0a6a544c821536c60debaede606)), closes [#593](https://github.com/peaceiris/actions-gh-pages/issues/593)
* bump @actions/io from 1.1.0 to 1.1.1 (#619) ([2c9f853](https://github.com/peaceiris/actions-gh-pages/commit/2c9f8534d24589a01ba8864bf6f00650b9bf6367)), closes [#619](https://github.com/peaceiris/actions-gh-pages/issues/619)
* bump @actions/io from 1.1.1 to 1.1.2 (#722) ([2b83a4b](https://github.com/peaceiris/actions-gh-pages/commit/2b83a4b24b0a7aee7d10ff3c5c86e441a0cd1909)), closes [#722](https://github.com/peaceiris/actions-gh-pages/issues/722)
* bump @types/shelljs from 0.8.8 to 0.8.9 (#654) ([7ea9100](https://github.com/peaceiris/actions-gh-pages/commit/7ea91005e5963e68314f681d72b17fde3e8a131a)), closes [#654](https://github.com/peaceiris/actions-gh-pages/issues/654)
* bump @types/shelljs from 0.8.9 to 0.8.11 (#693) ([2e09f80](https://github.com/peaceiris/actions-gh-pages/commit/2e09f809f83350b8a3d4f26dbb0e2e0721199225)), closes [#693](https://github.com/peaceiris/actions-gh-pages/issues/693)
* bump minimist from 1.2.5 to 1.2.6 (#726) ([4403b8b](https://github.com/peaceiris/actions-gh-pages/commit/4403b8b8f3d8f441c442ae9b93fe5fba9f5c1968)), closes [#726](https://github.com/peaceiris/actions-gh-pages/issues/726)
* Bump node from 12.21.0 to 12.22.0 (#592) ([2decf4e](https://github.com/peaceiris/actions-gh-pages/commit/2decf4e752abab9095efc5ace22a0e92ae2e6fec)), closes [#592](https://github.com/peaceiris/actions-gh-pages/issues/592)
* Bump node from 12.22.0 to 12.22.1 (#601) ([193a76d](https://github.com/peaceiris/actions-gh-pages/commit/193a76dc629a50d7a2f52eb4ae85500a8a1d641a)), closes [#601](https://github.com/peaceiris/actions-gh-pages/issues/601)
* bump node from 12.22.1 to 12.22.2 (#628) ([f321f46](https://github.com/peaceiris/actions-gh-pages/commit/f321f46f65cf03a32305f8edab39c422a083f089)), closes [#628](https://github.com/peaceiris/actions-gh-pages/issues/628)
* Bump node from 12.22.4 to 12.22.6 (#652) ([be584e1](https://github.com/peaceiris/actions-gh-pages/commit/be584e1ad2567ce506171434857bedb2a6c1183a)), closes [#652](https://github.com/peaceiris/actions-gh-pages/issues/652)
* bump shelljs from 0.8.4 to 0.8.5 (#692) ([892ca34](https://github.com/peaceiris/actions-gh-pages/commit/892ca34305f901f196fde386b4177b54c249bfd9)), closes [#692](https://github.com/peaceiris/actions-gh-pages/issues/692)
* node 12.22.4 ([9181540](https://github.com/peaceiris/actions-gh-pages/commit/918154021f5dbde7bba6c5accf8cea1a1ce5ece2))
### docs
* Add CNAME details for newbies ([3d71e70](https://github.com/peaceiris/actions-gh-pages/commit/3d71e70db9f003fea342bde483a7c4a1978804ac))
* Add concurrency ([7e7d7df](https://github.com/peaceiris/actions-gh-pages/commit/7e7d7dff413c6f698439a11a1e581badf4507604))
* add Custom GitHub Actions Workflows beta ([b4af807](https://github.com/peaceiris/actions-gh-pages/commit/b4af807921596bdad79592b406d0d743aae9e30e))
* Add GitHub documentation references to permissions (#754) ([ac45008](https://github.com/peaceiris/actions-gh-pages/commit/ac45008338dab8bf0c3efa91605acffc8565729c)), closes [#754](https://github.com/peaceiris/actions-gh-pages/issues/754)
* add note GitHub official Action ([765cf11](https://github.com/peaceiris/actions-gh-pages/commit/765cf1194eb2c30092c7ba39dec8ee0dba3565b9))
* add permissions contents write (#753) ([414c92c](https://github.com/peaceiris/actions-gh-pages/commit/414c92c5ff594b380dd8df46dffbb34e3dd2343f)), closes [#753](https://github.com/peaceiris/actions-gh-pages/issues/753)
* Add pull_request event ([b1a4f27](https://github.com/peaceiris/actions-gh-pages/commit/b1a4f2701cec741ce67e3f9fdaf22eeaa58725f0))
* add rustdoc hint (#764) ([97637bf](https://github.com/peaceiris/actions-gh-pages/commit/97637bffb09a6ef46a66b47207df5a18e3e7afc0)), closes [#764](https://github.com/peaceiris/actions-gh-pages/issues/764)
* bump hugo-version to 0.101.0 (#779) ([e1448a7](https://github.com/peaceiris/actions-gh-pages/commit/e1448a73ca97cd0b1a6f894340080366c5e8509a)), closes [#779](https://github.com/peaceiris/actions-gh-pages/issues/779)
* Bump node from 12 to 14 ([e831faa](https://github.com/peaceiris/actions-gh-pages/commit/e831faae0e7153297107fb95e60d98b2a819eb63))
* Enable GitHub native ToC ([35c9643](https://github.com/peaceiris/actions-gh-pages/commit/35c9643c9552c1974ba5c86b5e4591eb60c044e4))
* fix level of title heading ([0e59680](https://github.com/peaceiris/actions-gh-pages/commit/0e596805b1ea4181aa361304efd73a2ebe8ec0ac))
* Fix redirected links ([9856f8c](https://github.com/peaceiris/actions-gh-pages/commit/9856f8c8f8c271cb4e132cc172ec3870c6278733))
* Improve custom branch clarity (#761) ([da72d05](https://github.com/peaceiris/actions-gh-pages/commit/da72d057b991a0e351714b28bcd2608fbbd5c09e)), closes [#761](https://github.com/peaceiris/actions-gh-pages/issues/761)
* Improve title ([cdd482a](https://github.com/peaceiris/actions-gh-pages/commit/cdd482ae85fc1e250ec3d13bab58f92f3491e316))
* Improve usage of concurrency ([913377f](https://github.com/peaceiris/actions-gh-pages/commit/913377f0522aec60032df5ba927834804c2cdddf))
* Remove github/personal-website (#653) ([57d746c](https://github.com/peaceiris/actions-gh-pages/commit/57d746cd244c5fb4124fd2d456f3c3450b4240e1)), closes [#653](https://github.com/peaceiris/actions-gh-pages/issues/653)
* Uncomment GHES section ([9641296](https://github.com/peaceiris/actions-gh-pages/commit/9641296c3dbe7196c23d64a90cd7e6fba18247d1))
* update description of disable_nojekyll ([a43024e](https://github.com/peaceiris/actions-gh-pages/commit/a43024e6c04d9bd62101961dbf0b8f986512eb3b))
* Update enable_jekyll description (#661) ([834306b](https://github.com/peaceiris/actions-gh-pages/commit/834306ba279944a8bd2c22a6c19cb6a5efdf474c)), closes [#661](https://github.com/peaceiris/actions-gh-pages/issues/661) [#660](https://github.com/peaceiris/actions-gh-pages/issues/660)
* Update redirected links ([84ef946](https://github.com/peaceiris/actions-gh-pages/commit/84ef94646075cd5dcd26237cf4df2b7087195eaf))
* Use ubuntu-20.04 ([a99b730](https://github.com/peaceiris/actions-gh-pages/commit/a99b730d288bec72710ba0c4f16630083be912a7))
### feat
* bump node12 to node16 (#791) ([44a2b44](https://github.com/peaceiris/actions-gh-pages/commit/44a2b4403c2488c309307085bcdaab19fb8c7ea6)), closes [#791](https://github.com/peaceiris/actions-gh-pages/issues/791)
### fix
* Improve if syntax ([f7a748b](https://github.com/peaceiris/actions-gh-pages/commit/f7a748bfc91daeaf53c8be14d1a8a4fb9c67c417))
# [3.8.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.3...v3.8.0) (2021-03-25) # [3.8.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.3...v3.8.0) (2021-03-25)

56
Dockerfile Normal file
View File

@ -0,0 +1,56 @@
FROM ubuntu:18.04
SHELL ["/bin/bash", "-l", "-c"]
RUN apt-get update && \
apt-get install -y --no-install-recommends software-properties-common gnupg && \
add-apt-repository ppa:git-core/ppa && \
apt-get update && \
apt-get install -y --no-install-recommends \
git \
curl \
wget \
ssh \
vim && \
apt-get autoclean && \
apt-get clean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
RUN git --version && \
git config --global init.defaultBranch main && \
git config --global init.defaultBranch
WORKDIR /node
ARG NODE_VERSION
RUN curl -o nodejs.deb "https://deb.nodesource.com/node_${NODE_VERSION%%.*}.x/pool/main/n/nodejs/nodejs_${NODE_VERSION}-1nodesource1_amd64.deb" && \
apt-get update && \
apt-get install -y --no-install-recommends ./nodejs.deb && \
npm config set user 0 && \
npm config set unsafe-perm true && \
npm i -g npm && \
curl -sL https://deb.nodesource.com/test | bash - && \
npm cache clean --force && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /node
WORKDIR /repo
ENV DEBIAN_FRONTEND="noninteractive"
ENV LANG="C.UTF-8"
ENV CI="true"
ENV ImageVersion="20200717.1"
ENV GITHUB_SERVER_URL="https://github.com"
ENV GITHUB_API_URL="https://api.github.com"
ENV GITHUB_GRAPHQL_URL="https://api.github.com/graphql"
ENV GITHUB_REPOSITORY_OWNER="peaceiris"
ENV GITHUB_ACTIONS="true"
ENV GITHUB_ACTOR="peaceiris"
ENV GITHUB_REPOSITORY="actions/pages"
ENV RUNNER_OS="Linux"
ENV RUNNER_TOOL_CACHE="/opt/hostedtoolcache"
ENV RUNNER_USER="runner"
ENV RUNNER_TEMP="/home/runner/work/_temp"
ENV RUNNER_WORKSPACE="/home/runner/work/pages"
CMD [ "bash" ]

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2019 Shohei Ueda (peaceiris) Copyright (c) 2020 Shohei Ueda (peaceiris)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

10
Makefile Normal file
View File

@ -0,0 +1,10 @@
IMAGE_NAME := docker.pkg.github.com/peaceiris/actions-gh-pages/dev:latest
NODE_VERSION := $(shell cat ./.nvmrc)
.PHONY: build
build:
docker-compose build --build-arg NODE_VERSION=$(NODE_VERSION)
.PHONY: run
run:
docker-compose run --rm dev bash

444
README.md
View File

@ -1,8 +1,5 @@
<h2 align="center"> ## GitHub Actions for GitHub Pages
GitHub Pages Action
</h2>
<div align="center">
<img width="400" alt="GitHub Actions for deploying to GitHub Pages with Static Site Generators" src="./images/ogp.svg"> <img width="400" alt="GitHub Actions for deploying to GitHub Pages with Static Site Generators" src="./images/ogp.svg">
[![license](https://img.shields.io/github/license/peaceiris/actions-gh-pages.svg)](https://github.com/peaceiris/actions-gh-pages/blob/main/LICENSE) [![license](https://img.shields.io/github/license/peaceiris/actions-gh-pages.svg)](https://github.com/peaceiris/actions-gh-pages/blob/main/LICENSE)
@ -12,25 +9,16 @@ GitHub Pages Action
![Code Scanning](https://github.com/peaceiris/actions-gh-pages/workflows/Code%20Scanning/badge.svg?event=push) ![Code Scanning](https://github.com/peaceiris/actions-gh-pages/workflows/Code%20Scanning/badge.svg?event=push)
[![CodeFactor](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages/badge)](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages) [![CodeFactor](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages/badge)](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages)
</div>
> [!NOTE]
>
> See also the GitHub official GitHub Pages Action first.
>
> - [GitHub Pages now uses Actions by default | The GitHub Blog](https://github.blog/2022-08-10-github-pages-now-uses-actions-by-default/)
> - [GitHub Pages: Custom GitHub Actions Workflows (beta) | GitHub Changelog](https://github.blog/changelog/2022-07-27-github-pages-custom-github-actions-workflows-beta/)
This is a **GitHub Action** to deploy your static files to **GitHub Pages**. This is a **GitHub Action** to deploy your static files to **GitHub Pages**.
This deploy action can be combined simply and freely with [Static Site Generators]. (Hugo, MkDocs, Gatsby, mdBook, Next, Nuxt, and so on.) This deploy action can be combined simply and freely with [Static Site Generators]. (Hugo, MkDocs, Gatsby, mdBook, Next, Nuxt, and so on.)
[Static Site Generators]: https://jamstack.org/generators/ [Static Site Generators]: https://www.staticgen.com/
The next example step will deploy `./public` directory to the remote `gh-pages` branch. The next example step will deploy `./public` directory to the remote `gh-pages` branch.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -41,9 +29,7 @@ Note that the `GITHUB_TOKEN` is **NOT** a personal access token.
A GitHub Actions runner automatically creates a `GITHUB_TOKEN` secret to authenticate in your workflow. A GitHub Actions runner automatically creates a `GITHUB_TOKEN` secret to authenticate in your workflow.
So, you can start to deploy immediately without any configuration. So, you can start to deploy immediately without any configuration.
### Supported Tokens
## Supported Tokens
Three tokens are supported. Three tokens are supported.
@ -57,31 +43,25 @@ Notes: Actually, the `GITHUB_TOKEN` works for deploying to GitHub Pages but it h
For the first deployment, we need to select the `gh-pages` branch or another branch on the repository settings tab. For the first deployment, we need to select the `gh-pages` branch or another branch on the repository settings tab.
See [First Deployment with `GITHUB_TOKEN`](#%EF%B8%8F-first-deployment-with-github_token) See [First Deployment with `GITHUB_TOKEN`](#%EF%B8%8F-first-deployment-with-github_token)
### Supported Platforms
## Supported Platforms
All Actions runners: Linux (Ubuntu), macOS, and Windows are supported. All Actions runners: Linux (Ubuntu), macOS, and Windows are supported.
| runs-on | `github_token` | `deploy_key` | `personal_token` | | runs-on | `github_token` | `deploy_key` | `personal_token` |
|---|:---:|:---:|:---:| |---|:---:|:---:|:---:|
| ubuntu-22.04 | ✅️ | ✅️ | ✅️ |
| ubuntu-20.04 | ✅️ | ✅️ | ✅️ | | ubuntu-20.04 | ✅️ | ✅️ | ✅️ |
| ubuntu-latest | ✅️ | ✅️ | ✅️ | | ubuntu-18.04 | ✅️ | ✅️ | ✅️ |
| ubuntu-16.04 | ✅️ | ✅️ | ✅️ |
| macos-latest | ✅️ | ✅️ | ✅️ | | macos-latest | ✅️ | ✅️ | ✅️ |
| windows-latest | ✅️ | (2) | ✅️ | | windows-latest | ✅️ | (2) | ✅️ |
2. WIP, See [Issue #87](https://github.com/peaceiris/actions-gh-pages/issues/87) 2. WIP, See [Issue #87](https://github.com/peaceiris/actions-gh-pages/issues/87)
<!-- ### GitHub Enterprise Server Support
## GitHub Enterprise Server Support
✅️ GitHub Enterprise Server is supported above `2.22.6`. ✅️ GitHub Enterprise Server is supported above `2.22.6`.
Note that the `GITHUB_TOKEN` that is created by the runner might not inherently have push/publish privileges on GHES. You might need to create/request a technical user with write permissions to your target repository. Note that the `GITHUB_TOKEN` that is created by the runner might not inherently have push/publish privileges on GHES. You might need to create/request a technical user with write permissions to your target repository. -->
## Table of Contents ## Table of Contents
@ -111,7 +91,6 @@ Note that the `GITHUB_TOKEN` that is created by the runner might not inherently
- [⭐️ First Deployment with `GITHUB_TOKEN`](#%EF%B8%8F-first-deployment-with-github_token) - [⭐️ First Deployment with `GITHUB_TOKEN`](#%EF%B8%8F-first-deployment-with-github_token)
- [⭐️ Use the latest and specific release](#%EF%B8%8F-use-the-latest-and-specific-release) - [⭐️ Use the latest and specific release](#%EF%B8%8F-use-the-latest-and-specific-release)
- [⭐️ Schedule and Manual Deployment](#%EF%B8%8F-schedule-and-manual-deployment) - [⭐️ Schedule and Manual Deployment](#%EF%B8%8F-schedule-and-manual-deployment)
- [⭐️ Release Strategy](#%EF%B8%8F-release-strategy)
- [Examples](#examples) - [Examples](#examples)
- [⭐️ Static Site Generators with Node.js](#%EF%B8%8F-static-site-generators-with-nodejs) - [⭐️ Static Site Generators with Node.js](#%EF%B8%8F-static-site-generators-with-nodejs)
- [⭐️ Gatsby](#%EF%B8%8F-gatsby) - [⭐️ Gatsby](#%EF%B8%8F-gatsby)
@ -122,6 +101,7 @@ Note that the `GITHUB_TOKEN` that is created by the runner might not inherently
- [⭐️ mdBook (Rust)](#%EF%B8%8F-mdbook-rust) - [⭐️ mdBook (Rust)](#%EF%B8%8F-mdbook-rust)
- [⭐️ Flutter Web](#%EF%B8%8F-flutter-web) - [⭐️ Flutter Web](#%EF%B8%8F-flutter-web)
- [⭐️ Elm](#%EF%B8%8F-elm) - [⭐️ Elm](#%EF%B8%8F-elm)
- [⭐️ github/personal-website](#%EF%B8%8F-githubpersonal-website)
- [⭐️ Swift Publish](#%EF%B8%8F-swift-publish) - [⭐️ Swift Publish](#%EF%B8%8F-swift-publish)
- [License](#license) - [License](#license)
- [Maintainer](#maintainer) - [Maintainer](#maintainer)
@ -141,23 +121,18 @@ Here is an example workflow for Hugo.
[![peaceiris/actions-hugo - GitHub](https://gh-card.dev/repos/peaceiris/actions-hugo.svg?fullname)](https://github.com/peaceiris/actions-hugo) [![peaceiris/actions-hugo - GitHub](https://gh-card.dev/repos/peaceiris/actions-hugo.svg?fullname)](https://github.com/peaceiris/actions-hugo)
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main # Set a branch name to trigger deployment - main # Set a branch name to trigger deployment
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
with: with:
submodules: true # Fetch Hugo themes (true OR recursive) submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
@ -165,17 +140,13 @@ jobs:
- name: Setup Hugo - name: Setup Hugo
uses: peaceiris/actions-hugo@v2 uses: peaceiris/actions-hugo@v2
with: with:
hugo-version: '0.110.0' hugo-version: '0.79.1'
- name: Build - name: Build
run: hugo --minify run: hugo --minify
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
# If you're changing the branch from main,
# also change the `main` in `refs/heads/main`
# below accordingly.
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -201,13 +172,13 @@ A GitHub Actions runner automatically creates a `GITHUB_TOKEN` secret to use in
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
``` ```
For more details about `GITHUB_TOKEN`: [Automatic token authentication - GitHub Docs](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) For more details about `GITHUB_TOKEN`: [Authenticating with the GITHUB_TOKEN - GitHub Help](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)
### ⭐️ Set SSH Private Key `deploy_key` ### ⭐️ Set SSH Private Key `deploy_key`
@ -215,7 +186,7 @@ Read [Create SSH Deploy Key](#%EF%B8%8F-create-ssh-deploy-key), create your SSH
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./public publish_dir: ./public
@ -227,7 +198,7 @@ Read [Create SSH Deploy Key](#%EF%B8%8F-create-ssh-deploy-key), create your SSH
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
personal_token: ${{ secrets.PERSONAL_TOKEN }} personal_token: ${{ secrets.PERSONAL_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -240,7 +211,7 @@ The default is `gh-pages`.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: your-branch # default: gh-pages publish_branch: your-branch # default: gh-pages
@ -249,11 +220,10 @@ The default is `gh-pages`.
### ⭐️ Source Directory `publish_dir` ### ⭐️ Source Directory `publish_dir`
A source directory to deploy to GitHub Pages. The default is `public`. A source directory to deploy to GitHub Pages. The default is `public`.
Only the contents of this dir are pushed to GitHub Pages branch, `gh-pages` by default.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./out # default: public publish_dir: ./out # default: public
@ -268,7 +238,7 @@ A destination subdirectory on a publishing branch. The default is empty.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
destination_dir: subdir destination_dir: subdir
@ -285,7 +255,7 @@ Values should be split with a comma.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
exclude_assets: '.github,exclude-file1,exclude-file2' exclude_assets: '.github,exclude-file1,exclude-file2'
@ -295,7 +265,7 @@ Set `exclude_assets` to empty for including the `.github` directory to deploymen
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} # Recommended for this usage deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} # Recommended for this usage
# personal_token: ${{ secrets.PERSONAL_TOKEN }} # An alternative # personal_token: ${{ secrets.PERSONAL_TOKEN }} # An alternative
@ -307,7 +277,7 @@ The `exclude_assets` option supports glob patterns.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
exclude_assets: '.github,exclude-file.txt,exclude-dir/**.txt' exclude_assets: '.github,exclude-file.txt,exclude-dir/**.txt'
@ -315,14 +285,13 @@ The `exclude_assets` option supports glob patterns.
### ⭐️ Add CNAME file `cname` ### ⭐️ Add CNAME file `cname`
To add the `CNAME` file, we can set the `cname` option. To add `CNAME` file, we can set the `cname` option.
Alternatively, put your `CNAME` file into your `publish_dir`. (e.g. `public/CNAME`)
For more details about the `CNAME` file, read the official documentation: [Managing a custom domain for your GitHub Pages site - GitHub Docs](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site) For more details about `CNAME`, read the official documentation: [Managing a custom domain for your GitHub Pages site - GitHub Help](https://help.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site)
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -333,14 +302,16 @@ For more details about the `CNAME` file, read the official documentation: [Manag
If you want GitHub Pages to process your site with the static site generator Jekyll, set `enable_jekyll` to true. If you want GitHub Pages to process your site with the static site generator Jekyll, set `enable_jekyll` to true.
By default, this action signals to GitHub Pages that the site shall not be processed with Jekyll. This is done by adding an empty `.nojekyll` file on your publishing branch. When that file already exists, this action does nothing. [github/personal-website](https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-githubpersonal-website) is one of the examples using GitHub Pages built-in Jekyll.
By default, this action signals to GitHub Pages that the site shall not be processed with Jekyll. This is done by adding an empty `.nojekyll` file when publishing to the master or gh-pages branch. When a `.nojekyll` file already exists, this action does nothing.
Bypassing Jekyll makes the deployment faster and is necessary if you are deploying files or directories that start with underscores, since Jekyll considers these to be special resources and does not copy them to the final site. You only need to set `enable_jekyll` to true when you want to deploy a Jekyll-powered website and let GitHub Pages do the Jekyll processing. Bypassing Jekyll makes the deployment faster and is necessary if you are deploying files or directories that start with underscores, since Jekyll considers these to be special resources and does not copy them to the final site. You only need to set `enable_jekyll` to true when you want to deploy a Jekyll-powered website and let GitHub Pages do the Jekyll processing.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -357,7 +328,7 @@ For example:
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -371,13 +342,13 @@ By default, existing files in the publish branch (or only in `destination_dir` i
Note that users who are using a Static Site Generator do not need this option in most cases. Please reconsider your project structure and building scripts, or use a built-in feature of a Static Site Generator before you enable this flag. Note that users who are using a Static Site Generator do not need this option in most cases. Please reconsider your project structure and building scripts, or use a built-in feature of a Static Site Generator before you enable this flag.
- [Static Files | Hugo](https://gohugo.io/content-management/static-files/) - [Static Files | Hugo](https://gohugo.io/content-management/static-files/)
- [Using the Static Folder | Gatsby](https://www.gatsbyjs.com/docs/how-to/images-and-media/static-folder/) - [Using the Static Folder | Gatsby](https://www.gatsbyjs.com/docs/static-folder/)
For example: For example:
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -396,7 +367,7 @@ For example:
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: username/external-repository external_repository: username/external-repository
@ -423,7 +394,7 @@ This allows you to make your publish branch with only the latest commit.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -437,7 +408,7 @@ A commit is always created with the same user.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -454,7 +425,7 @@ When we create a commit with a message `docs: Update some post`, a deployment co
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -468,7 +439,7 @@ use the `full_commit_message` option instead of the `commit_message` option.
```yaml ```yaml
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -480,7 +451,7 @@ use the `full_commit_message` option instead of the `commit_message` option.
Here is an example workflow. Here is an example workflow.
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
@ -491,13 +462,9 @@ on:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Some build - name: Some build
@ -505,15 +472,17 @@ jobs:
id: prepare_tag id: prepare_tag
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
run: | run: |
echo "DEPLOY_TAG_NAME=deploy-${TAG_NAME}" >> "${GITHUB_OUTPUT}" TAG_NAME="${GITHUB_REF##refs/tags/}"
echo "::set-output name=tag_name::${TAG_NAME}"
echo "::set-output name=deploy_tag_name::deploy-${TAG_NAME}"
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
tag_name: ${{ steps.prepare_tag.outputs.DEPLOY_TAG_NAME }} tag_name: ${{ steps.prepare_tag.outputs.deploy_tag_name }}
tag_message: 'Deployment ${{ github.ref_name }}' tag_message: 'Deployment ${{ steps.prepare_tag.outputs.tag_name }}'
``` ```
Commands on a local machine. Commands on a local machine.
@ -544,13 +513,11 @@ Generate your deploy key with the following command.
```sh ```sh
ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N "" ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
# You will get 2 files:
# gh-pages.pub (public key)
# gh-pages (private key)
``` ```
You will get 2 files:
- `gh-pages.pub` is a public key
- `gh-pages` is a private key
Next, Go to **Repository Settings** Next, Go to **Repository Settings**
- Go to **Deploy Keys** and add your public key with the **Allow write access** - Go to **Deploy Keys** and add your public key with the **Allow write access**
@ -576,25 +543,6 @@ The `GITHUB_TOKEN` has limitations for the first deployment so we have to select
|---|---| |---|---|
| ![](./images/settings_select.jpg) | ![](./images/log_success.jpg) | | ![](./images/settings_select.jpg) | ![](./images/log_success.jpg) |
If the action fails to push the commit or tag with the following error:
```txt
/usr/bin/git push origin gh-pages
remote: Write access to repository not granted.
fatal: unable to access 'https://github.com/username/repository.git/': The requested URL returned error: 403
Error: Action failed with "The process '/usr/bin/git' failed with exit code 128"
```
Please add the write permission to the [`permissions.contents` in a workflow/job](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions).
```yaml
permissions:
contents: write
```
Alternatively, you can [configure the default `GITHUB_TOKEN` permissions](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-default-github_token-permissions) by selecting read and write permissions.
### ⭐️ Use the latest and specific release ### ⭐️ Use the latest and specific release
We recommend you to use the latest and specific release of this action for stable CI/CD. We recommend you to use the latest and specific release of this action for stable CI/CD.
@ -618,18 +566,18 @@ updates:
prefix: ci prefix: ci
``` ```
See the official documentation for more details about the Dependabot: [Keeping your dependencies updated automatically - GitHub Docs](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically) See the official documentation for more details about the Dependabot: [Keeping your dependencies updated automatically - GitHub Docs](https://docs.github.com/en/github/administering-a-repository/keeping-your-dependencies-updated-automatically)
### ⭐️ Schedule and Manual Deployment ### ⭐️ Schedule and Manual Deployment
For deploying regularly, we can set the `on.schedule` workflow trigger. For deploying regularly, we can set the `on.schedule` workflow trigger.
See [Scheduled events | Events that trigger workflows - GitHub Docs](https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#scheduled-events) See [Scheduled events | Events that trigger workflows - GitHub Docs](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events)
For deploying manually, we can set the `on.workflow_dispatch` workflow trigger. For deploying manually, we can set the `on.workflow_dispatch` workflow trigger.
See [Manual events `workflow_dispatch` | Events that trigger workflows - GitHub Docs](https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#manual-events) See [Manual events `workflow_dispatch` | Events that trigger workflows - GitHub Docs](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#manual-events)
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
@ -641,58 +589,11 @@ on:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
... ...
``` ```
### ⭐️ Release Strategy
cf. [support: execution from hashref disabled/broken vs GitHub Actions Security Best Practice? · Issue #712 · peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages/issues/712)
Our project builds and provides build assets only when creating a release. This is to prevent the user from executing this action with a specific branch (like main). For example, if we maintain build assets in the main branch and users use this action as follows, a major release including breaking changes will break the CI workflow of the users silently.
```yaml
- uses: peaceiris/actions-gh-pages@main # Bad example!
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
In this project, a major tag (e.g. v3) is guaranteed to contain no breaking changes. But, we recommend using a tag or a commit hash for the stability of your workflows.
```yaml
- uses: peaceiris/actions-gh-pages@v4.0.0 # tag: Better
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
```yaml
- uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # commit hash of v3.9.3: Best!
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
```
For verifying the release asset, we can use the following commands.
```sh
git clone https://github.com/peaceiris/actions-gh-pages.git
cd ./actions-gh-pages
git checkout v3.9.3
nvm install
nvm use
npm i -g npm
npm ci
npm run build
git diff ./lib/index.js # We will get zero exit code
```
<div align="right"> <div align="right">
<a href="#table-of-contents">Back to TOC ☝️</a> <a href="#table-of-contents">Back to TOC ☝️</a>
</div> </div>
@ -716,31 +617,26 @@ e.g. `create-react-app` requires `publish_dir` to be set to `./build`
Premise: Dependencies are managed by `package.json` and `package-lock.json` Premise: Dependencies are managed by `package.json` and `package-lock.json`
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@ -751,8 +647,7 @@ jobs:
- run: npm run build - run: npm run build
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -766,31 +661,26 @@ An example for [Gatsby] (Gatsby.js) project with [gatsby-starter-blog]
[gatsby-starter-blog]: https://github.com/gatsbyjs/gatsby-starter-blog [gatsby-starter-blog]: https://github.com/gatsbyjs/gatsby-starter-blog
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@ -803,8 +693,7 @@ jobs:
- run: npm run build - run: npm run build
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
@ -814,41 +703,38 @@ jobs:
An example for [Next.js] (React.js) project with [create-next-app] An example for [Next.js] (React.js) project with [create-next-app]
[Next.js]: https://github.com/vercel/next.js - cf. [Deploying a Next.js app into GitHub Pages · zeit/next.js Wiki](https://github.com/zeit/next.js/wiki/Deploying-a-Next.js-app-into-GitHub-Pages)
[Next.js]: https://github.com/zeit/next.js
[create-next-app]: https://nextjs.org/docs [create-next-app]: https://nextjs.org/docs
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Get yarn cache - name: Get yarn cache
id: yarn-cache id: yarn-cache
run: echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}" run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }} path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
@ -858,8 +744,7 @@ jobs:
- run: yarn export - run: yarn export
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./out publish_dir: ./out
@ -869,37 +754,32 @@ jobs:
An example for [Nuxt.js] (Vue.js) project with [create-nuxt-app] An example for [Nuxt.js] (Vue.js) project with [create-nuxt-app]
- cf. [Nuxt - GitHub Pages](https://nuxtjs.org/deployments/github-pages) - cf. [GitHub Pages Deployment - Nuxt.js](https://nuxtjs.org/faq/github-pages)
[Nuxt.js]: https://github.com/nuxt/nuxt.js [Nuxt.js]: https://github.com/nuxt/nuxt.js
[create-nuxt-app]: https://github.com/nuxt/create-nuxt-app [create-nuxt-app]: https://github.com/nuxt/create-nuxt-app
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@ -911,8 +791,7 @@ jobs:
- run: npm run generate - run: npm run generate
- name: deploy - name: deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist publish_dir: ./dist
@ -927,7 +806,7 @@ An example workflow for [Docusaurus](https://docusaurus.io/).
```yaml ```yaml
# .github/workflows/deploy.yml # .github/workflows/deploy.yml
name: GitHub Pages name: github pages
on: on:
push: push:
@ -936,34 +815,29 @@ on:
paths: paths:
- '.github/workflows/deploy.yml' - '.github/workflows/deploy.yml'
- 'website/**' - 'website/**'
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
defaults: defaults:
run: run:
working-directory: website working-directory: website
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Get yarn cache - name: Get yarn cache
id: yarn-cache id: yarn-cache
run: echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}" run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }} path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-website-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-website-${{ hashFiles('**/yarn.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-website- ${{ runner.os }}-website-
@ -972,8 +846,7 @@ jobs:
- run: yarn build - run: yarn build
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./website/build publish_dir: ./website/build
@ -990,28 +863,23 @@ jobs:
Premise: Dependencies are managed by `requirements.txt` Premise: Dependencies are managed by `requirements.txt`
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@v2
with: with:
python-version: '3.13' python-version: '3.8'
- name: Upgrade pip - name: Upgrade pip
run: | run: |
@ -1020,10 +888,10 @@ jobs:
- name: Get pip cache dir - name: Get pip cache dir
id: pip-cache id: pip-cache
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT run: echo "::set-output name=dir::$(pip cache dir)"
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v4 uses: actions/cache@v2
with: with:
path: ${{ steps.pip-cache.outputs.dir }} path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
@ -1036,8 +904,7 @@ jobs:
- run: mkdocs build - run: mkdocs build
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./site publish_dir: ./site
@ -1052,68 +919,53 @@ An example GitHub Actions workflow to deploy [rust-lang/mdBook] site to GitHub P
- [peaceiris/actions-mdbook: GitHub Actions for mdBook (rust-lang/mdBook)](https://github.com/peaceiris/actions-mdbook) - [peaceiris/actions-mdbook: GitHub Actions for mdBook (rust-lang/mdBook)](https://github.com/peaceiris/actions-mdbook)
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup mdBook - name: Setup mdBook
uses: peaceiris/actions-mdbook@v1 uses: peaceiris/actions-mdbook@v1
with: with:
mdbook-version: '0.4.8' mdbook-version: '0.4.5'
# mdbook-version: 'latest' # mdbook-version: 'latest'
- run: mdbook build - run: mdbook build
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./book publish_dir: ./book
``` ```
Hint: you may want to publish your rustdocs. And use relative links to it from the md docs, and have them checked by `mdbook`.
Then, according to the [doc](https://rust-lang.github.io/mdBook/guide/creating.html#source-files), you may put `./target/doc/`
to your `./book/src` dir before you `mdbook build` and then it will end up in `./book/html/` and in your Github Pages.
### ⭐️ Flutter Web ### ⭐️ Flutter Web
An example workflow for [Flutter web project]. An exapmle workflow for [Flutter web project].
[Flutter web project]: https://flutter.dev/docs/get-started/web [Flutter web project]: https://flutter.dev/docs/get-started/web
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Flutter - name: Setup Flutter
run: | run: |
@ -1129,8 +981,7 @@ jobs:
run: flutter build web run: flutter build web
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/web publish_dir: ./build/web
@ -1143,28 +994,23 @@ An example workflow for [Elm].
[Elm]: https://elm-lang.org [Elm]: https://elm-lang.org
```yaml ```yaml
name: GitHub Pages name: github pages
on: on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-18.04
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v2.1.2
with: with:
node-version: '24' node-version: '12.x'
- name: Setup Elm - name: Setup Elm
run: npm install elm --global run: npm install elm --global
@ -1180,13 +1026,43 @@ jobs:
# provide --output=<output-file> option for `elm make` and remove this step # provide --output=<output-file> option for `elm make` and remove this step
- name: Deploy - name: Deploy
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public publish_dir: ./public
``` ```
### ⭐️ github/personal-website
- [github/personal-website](https://github.com/github/personal-website) - Code that'll help you kickstart a personal website that showcases your work as a software developer.
```yaml
# .github/workflows/github-pages.yml
name: GitHub Pages
on:
push:
branches:
- master
schedule:
- cron: '24 */24 * * *' # Once a day
jobs:
deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./
allow_empty_commit: true
enable_jekyll: true
cname: github.peaceiris.com
```
### ⭐️ Swift Publish ### ⭐️ Swift Publish
An example workflow for [JohnSundell/Publish]. An example workflow for [JohnSundell/Publish].
@ -1200,17 +1076,14 @@ on:
push: push:
branches: branches:
- main - main
pull_request:
jobs: jobs:
deploy: deploy:
runs-on: macos-latest runs-on: macos-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v2
- uses: actions/cache@v4 - uses: actions/cache@v2
with: with:
path: | path: |
~/Publish_build ~/Publish_build
@ -1233,8 +1106,7 @@ jobs:
- run: publish-cli generate - run: publish-cli generate
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4 uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./Output publish_dir: ./Output

View File

@ -184,6 +184,6 @@ describe('getInputs()', () => {
expect(() => { expect(() => {
getInputs(); getInputs();
}).toThrow('Use either of enable_jekyll or disable_nojekyll'); }).toThrowError('Use either of enable_jekyll or disable_nojekyll');
}); });
}); });

View File

@ -148,7 +148,7 @@ describe('setRepo()', () => {
const date = new Date(); const date = new Date();
const unixTime = date.getTime(); const unixTime = date.getTime();
const workDir = await getWorkDirName(`${unixTime}`); const workDir = await getWorkDirName(`${unixTime}`);
await expect(setRepo(inps, remoteURL, workDir)).rejects.toThrow( await expect(setRepo(inps, remoteURL, workDir)).rejects.toThrowError(
'destination_dir should be a relative path' 'destination_dir should be a relative path'
); );
}); });
@ -241,13 +241,17 @@ describe('setCommitAuthor()', () => {
test('throw error user_email is undefined', async () => { test('throw error user_email is undefined', async () => {
const userName = 'custom-octocat'; const userName = 'custom-octocat';
const userEmail = ''; const userEmail = '';
await expect(setCommitAuthor(userName, userEmail)).rejects.toThrow('user_email is undefined'); await expect(setCommitAuthor(userName, userEmail)).rejects.toThrowError(
'user_email is undefined'
);
}); });
test('throw error user_name is undefined', async () => { test('throw error user_name is undefined', async () => {
const userName = ''; const userName = '';
const userEmail = 'custom-octocat@github.com'; const userEmail = 'custom-octocat@github.com';
await expect(setCommitAuthor(userName, userEmail)).rejects.toThrow('user_name is undefined'); await expect(setCommitAuthor(userName, userEmail)).rejects.toThrowError(
'user_name is undefined'
);
}); });
}); });

View File

@ -70,13 +70,13 @@ describe('setGithubToken()', () => {
'refs/heads/gh-pages-base', 'refs/heads/gh-pages-base',
'push' 'push'
); );
}).toThrow('You deploy from gh-pages-base to gh-pages-base'); }).toThrowError('You deploy from gh-pages-base to gh-pages-base');
}); });
test('throw error master to master', () => { test('throw error master to master', () => {
expect(() => { expect(() => {
setGithubToken('GITHUB_TOKEN', 'owner/repo', 'master', '', 'refs/heads/master', 'push'); setGithubToken('GITHUB_TOKEN', 'owner/repo', 'master', '', 'refs/heads/master', 'push');
}).toThrow('You deploy from master to master'); }).toThrowError('You deploy from master to master');
}); });
test('throw error external repository with GITHUB_TOKEN', () => { test('throw error external repository with GITHUB_TOKEN', () => {
@ -89,7 +89,7 @@ describe('setGithubToken()', () => {
'refs/heads/master', 'refs/heads/master',
'push' 'push'
); );
}).toThrow(`\ }).toThrowError(`\
The generated GITHUB_TOKEN (github_token) does not support to push to an external repository. The generated GITHUB_TOKEN (github_token) does not support to push to an external repository.
Use deploy_key or personal_token. Use deploy_key or personal_token.
`); `);

View File

@ -2,7 +2,7 @@ name: 'GitHub Pages action'
description: 'GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly.' description: 'GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly.'
author: 'peaceiris' author: 'peaceiris'
runs: runs:
using: 'node20' using: 'node12'
main: 'lib/index.js' main: 'lib/index.js'
branding: branding:
icon: 'upload-cloud' icon: 'upload-cloud'
@ -67,7 +67,7 @@ inputs:
required: false required: false
default: 'false' default: 'false'
disable_nojekyll: disable_nojekyll:
description: 'An alias for enable_jekyll to disable adding .nojekyll file to a publishing branch' description: 'An alias for enable_jekyll to disable adding .nojekyll file to master or gh-pages branches'
required: false required: false
default: 'false' default: 'false'
cname: cname:

16
docker-compose.yml Normal file
View File

@ -0,0 +1,16 @@
version: '3.2'
services:
dev:
image: 'docker.pkg.github.com/peaceiris/actions-gh-pages/dev:latest'
build:
context: .
cache_from:
- 'docker.pkg.github.com/peaceiris/actions-gh-pages/dev:latest'
container_name: peaceiris_actions_github_pages
volumes:
- ${PWD}:/repo
stdin_open: true
tty: true
command:
- bash

1
lib/index.js Normal file

File diff suppressed because one or more lines are too long

13921
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,11 @@
{ {
"name": "actions-github-pages", "name": "actions-github-pages",
"version": "4.0.0", "version": "3.8.0",
"description": "GitHub Actions for GitHub Pages", "description": "GitHub Actions for GitHub Pages",
"main": "lib/index.js", "main": "lib/index.js",
"engines": { "engines": {
"node": ">=v20.11.0", "node": ">=12.20.1",
"npm": ">=10.2.4" "npm": ">=7.5.2"
}, },
"scripts": { "scripts": {
"postinstall": "npx husky install", "postinstall": "npx husky install",
@ -15,8 +15,8 @@
"test": "jest --coverage --verbose --detectOpenHandles", "test": "jest --coverage --verbose --detectOpenHandles",
"build": "ncc build ./src/index.ts -o lib --minify", "build": "ncc build ./src/index.ts -o lib --minify",
"tsc": "tsc", "tsc": "tsc",
"format": "prettier --write '**/*.ts'", "format": "prettier --write **/*.ts",
"format:check": "prettier --check '**/*.ts'", "format:check": "prettier --check **/*.ts",
"release": "standard-version" "release": "standard-version"
}, },
"lint-staged": { "lint-staged": {
@ -25,7 +25,7 @@
"eslint" "eslint"
], ],
"README.md": [ "README.md": [
"npx doctoc@2.1.0 --github" "npx doctoc@2.0.0 --github"
] ]
}, },
"repository": { "repository": {
@ -47,33 +47,33 @@
}, },
"homepage": "https://github.com/peaceiris/actions-gh-pages#readme", "homepage": "https://github.com/peaceiris/actions-gh-pages#readme",
"dependencies": { "dependencies": {
"@actions/core": "^1.10.0", "@actions/core": "^1.2.6",
"@actions/exec": "^1.1.1", "@actions/exec": "^1.0.4",
"@actions/github": "^5.1.1", "@actions/github": "^4.0.0",
"@actions/glob": "^0.5.0", "@actions/glob": "^0.1.1",
"@actions/io": "^1.1.2", "@actions/io": "^1.0.2",
"@types/shelljs": "^0.8.11", "@types/shelljs": "^0.8.8",
"shelljs": "^0.8.5" "shelljs": "^0.8.4"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^29.2.6", "@types/jest": "^26.0.20",
"@types/js-yaml": "^4.0.5", "@types/js-yaml": "^4.0.0",
"@types/node": "~16", "@types/node": "~12",
"@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/eslint-plugin": "^4.16.1",
"@typescript-eslint/parser": "^5.48.2", "@typescript-eslint/parser": "^4.16.1",
"@vercel/ncc": "^0.38.0", "@vercel/ncc": "^0.27.0",
"eslint": "^8.32.0", "eslint": "^7.21.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^8.1.0",
"eslint-plugin-jest": "^27.2.1", "eslint-plugin-jest": "^24.1.5",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^3.3.1",
"husky": "^8.0.3", "husky": "^5.1.3",
"jest": "^29.3.1", "jest": "^26.6.3",
"jest-circus": "^29.3.1", "jest-circus": "^26.6.3",
"js-yaml": "^4.1.0", "js-yaml": "^4.0.0",
"lint-staged": "^13.1.0", "lint-staged": "^10.5.4",
"prettier": "2.8.8", "prettier": "2.2.1",
"standard-version": "^9.1.1", "standard-version": "^9.1.1",
"ts-jest": "^29.0.5", "ts-jest": "^26.5.3",
"typescript": "^4.9.4" "typescript": "^4.2.3"
} }
} }

View File

@ -47,7 +47,7 @@ else
git pull origin --tags git pull origin --tags
fi fi
npm install npm ci
mkdir ./lib mkdir ./lib
npm run build npm run build

View File

@ -1,13 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>peaceiris/renovate-config"
],
"packageRules": [
{
"automerge": false,
"matchUpdateTypes": ["minor", "patch"],
"automergeStrategy": "squash"
}
]
}

View File

@ -35,10 +35,10 @@ export function showInputs(inps: Inputs): void {
export function getInputs(): Inputs { export function getInputs(): Inputs {
let useBuiltinJekyll = false; let useBuiltinJekyll = false;
const isBoolean = (param: string): boolean => (param || 'false').toUpperCase() === 'TRUE'; const enableJekyll: boolean =
(core.getInput('enable_jekyll') || 'false').toUpperCase() === 'TRUE';
const enableJekyll: boolean = isBoolean(core.getInput('enable_jekyll')); const disableNoJekyll: boolean =
const disableNoJekyll: boolean = isBoolean(core.getInput('disable_nojekyll')); (core.getInput('disable_nojekyll') || 'false').toUpperCase() === 'TRUE';
if (enableJekyll && disableNoJekyll) { if (enableJekyll && disableNoJekyll) {
throw new Error(`Use either of enable_jekyll or disable_nojekyll`); throw new Error(`Use either of enable_jekyll or disable_nojekyll`);
@ -56,9 +56,9 @@ export function getInputs(): Inputs {
PublishDir: core.getInput('publish_dir'), PublishDir: core.getInput('publish_dir'),
DestinationDir: core.getInput('destination_dir'), DestinationDir: core.getInput('destination_dir'),
ExternalRepository: core.getInput('external_repository'), ExternalRepository: core.getInput('external_repository'),
AllowEmptyCommit: isBoolean(core.getInput('allow_empty_commit')), AllowEmptyCommit: (core.getInput('allow_empty_commit') || 'false').toUpperCase() === 'TRUE',
KeepFiles: isBoolean(core.getInput('keep_files')), KeepFiles: (core.getInput('keep_files') || 'false').toUpperCase() === 'TRUE',
ForceOrphan: isBoolean(core.getInput('force_orphan')), ForceOrphan: (core.getInput('force_orphan') || 'false').toUpperCase() === 'TRUE',
UserName: core.getInput('user_name'), UserName: core.getInput('user_name'),
UserEmail: core.getInput('user_email'), UserEmail: core.getInput('user_email'),
CommitMessage: core.getInput('commit_message'), CommitMessage: core.getInput('commit_message'),

View File

@ -127,19 +127,15 @@ export async function setRepo(inps: Inputs, remoteURL: string, workDir: string):
} else { } else {
throw new Error(`Failed to clone remote branch ${inps.PublishBranch}`); throw new Error(`Failed to clone remote branch ${inps.PublishBranch}`);
} }
} catch (error) { } catch (e) {
if (error instanceof Error) {
core.info(`[INFO] first deployment, create new branch ${inps.PublishBranch}`); core.info(`[INFO] first deployment, create new branch ${inps.PublishBranch}`);
core.info(`[INFO] ${error.message}`); core.info(`[INFO] ${e.message}`);
await createDir(destDir); await createDir(destDir);
core.info(`[INFO] chdir ${workDir}`); core.info(`[INFO] chdir ${workDir}`);
process.chdir(workDir); process.chdir(workDir);
await createBranchForce(inps.PublishBranch); await createBranchForce(inps.PublishBranch);
await copyAssets(publishDir, destDir, inps.ExcludeAssets); await copyAssets(publishDir, destDir, inps.ExcludeAssets);
return; return;
} else {
throw new Error('unexpected error');
}
} }
} }
@ -205,13 +201,9 @@ export async function commit(allowEmptyCommit: boolean, msg: string): Promise<vo
} else { } else {
await exec.exec('git', ['commit', '-m', `${msg}`]); await exec.exec('git', ['commit', '-m', `${msg}`]);
} }
} catch (error) { } catch (e) {
if (error instanceof Error) {
core.info('[INFO] skip commit'); core.info('[INFO] skip commit');
core.debug(`[INFO] skip commit ${error.message}`); core.debug(`[INFO] skip commit ${e.message}`);
} else {
throw new Error('unexpected error');
}
} }
} }

View File

@ -4,11 +4,7 @@ import * as main from './main';
(async (): Promise<void> => { (async (): Promise<void> => {
try { try {
await main.run(); await main.run();
} catch (error) { } catch (e) {
if (error instanceof Error) { core.setFailed(`Action failed with "${e.message}"`);
core.setFailed(`Action failed with "${error.message}"`);
} else {
core.setFailed('unexpected error');
}
} }
})(); })();

View File

@ -57,12 +57,8 @@ export async function run(): Promise<void> {
core.startGroup('Setup Git config'); core.startGroup('Setup Git config');
try { try {
await exec.exec('git', ['remote', 'rm', 'origin']); await exec.exec('git', ['remote', 'rm', 'origin']);
} catch (error) { } catch (e) {
if (error instanceof Error) { core.info(`[INFO] ${e.message}`);
core.info(`[INFO] ${error.message}`);
} else {
throw new Error('unexpected error');
}
} }
await exec.exec('git', ['remote', 'add', 'origin', remoteURL]); await exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
await exec.exec('git', ['add', '--all']); await exec.exec('git', ['add', '--all']);
@ -90,11 +86,7 @@ export async function run(): Promise<void> {
core.info('[INFO] Action successfully completed'); core.info('[INFO] Action successfully completed');
return; return;
} catch (error) { } catch (e) {
if (error instanceof Error) { throw new Error(e.message);
throw new Error(error.message);
} else {
throw new Error('unexpected error');
}
} }
} }

View File

@ -26,7 +26,7 @@ export async function setSSHKey(inps: Inputs, publishRepo: string): Promise<stri
# ${getServerUrl().host}.com:22 SSH-2.0-babeld-1f0633a6 # ${getServerUrl().host}.com:22 SSH-2.0-babeld-1f0633a6
${ ${
getServerUrl().host getServerUrl().host
} ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= } ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
`; `;
fs.writeFileSync(knownHosts, cmdSSHkeyscanOutput + '\n'); fs.writeFileSync(knownHosts, cmdSSHkeyscanOutput + '\n');
core.info(`[INFO] wrote ${knownHosts}`); core.info(`[INFO] wrote ${knownHosts}`);
@ -138,11 +138,7 @@ export async function setTokens(inps: Inputs): Promise<string> {
} else { } else {
throw new Error('not found deploy key or tokens'); throw new Error('not found deploy key or tokens');
} }
} catch (error) { } catch (e) {
if (error instanceof Error) { throw new Error(e.message);
throw new Error(error.message);
} else {
throw new Error('unexpected error');
}
} }
} }