Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbdfb20061 | ||
|
|
7fd2e42a05 | ||
|
|
e93eed3ba7 | ||
|
|
cf805b9457 | ||
|
|
c4241b26fb | ||
|
|
4f6b15a24f | ||
|
|
42954117ce | ||
|
|
48b33dca85 | ||
|
|
45bd46f922 | ||
|
|
95792e1c0f | ||
|
|
66acd31e22 | ||
|
|
31256664b6 | ||
|
|
e90f765da6 | ||
|
|
725f7db867 | ||
|
|
46b269eb77 | ||
|
|
572a9b5eb9 | ||
|
|
d81433ecbd | ||
|
|
a284cb02e9 | ||
|
|
4682881fa3 | ||
|
|
9765b50692 | ||
|
|
772c200ac1 | ||
|
|
25e5ffa147 | ||
|
|
144799313d | ||
|
|
87e03f1be4 | ||
|
|
c77e4d0f87 | ||
|
|
5c575e8b27 | ||
|
|
1a9f7eb481 | ||
|
|
c6c5feba5e | ||
|
|
edd5ff366e | ||
|
|
f15a311467 | ||
|
|
274c177da0 | ||
|
|
24f34b2d74 | ||
|
|
a60f4671fe | ||
|
|
b3747cde80 | ||
|
|
04aa727212 |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -8,11 +8,8 @@ updates:
|
|||||||
timezone: Japan
|
timezone: Japan
|
||||||
labels:
|
labels:
|
||||||
- dependencies
|
- dependencies
|
||||||
ignore:
|
allow:
|
||||||
- dependency-name: "@types/node"
|
- dependency-type: "production"
|
||||||
versions:
|
|
||||||
- ">= 13.a, < 14"
|
|
||||||
- ">= 14.a, < 15"
|
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: deps
|
prefix: deps
|
||||||
|
|
||||||
|
|||||||
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@@ -10,27 +10,6 @@ jobs:
|
|||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-18.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.3.1
|
- uses: actions/checkout@v2.3.1
|
||||||
|
- uses: peaceiris/workflows/create-release-npm@v0.7.0
|
||||||
- name: Dump GitHub context
|
|
||||||
env:
|
|
||||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
||||||
run: echo "${GITHUB_CONTEXT}"
|
|
||||||
|
|
||||||
- name: Install github/hub
|
|
||||||
run: |
|
|
||||||
export HUB_VERSION="2.14.2"
|
|
||||||
curl -fsSL https://github.com/github/hub/raw/8d91904208171b013f9a9d1175f4ab39068db047/script/get | bash -s "${HUB_VERSION}"
|
|
||||||
|
|
||||||
- name: Create release
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
|
||||||
TAG_NAME="${GITHUB_REF##refs/tags/}"
|
|
||||||
echo "See [CHANGELOG.md](https://github.com/${GITHUB_REPOSITORY}/blob/${TAG_NAME}/CHANGELOG.md) for more details." > ./release_notes.md
|
|
||||||
RELEASE_NAME="$(jq -r '.name' ./package.json)"
|
|
||||||
sed -i "1i${RELEASE_NAME} ${TAG_NAME}\n" ./release_notes.md
|
|
||||||
./bin/hub release create \
|
|
||||||
--draft \
|
|
||||||
--prerelease \
|
|
||||||
--file ./release_notes.md \
|
|
||||||
"${TAG_NAME}"
|
|
||||||
|
|||||||
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -73,7 +73,7 @@ jobs:
|
|||||||
name: coverage-${{ matrix.os }}
|
name: coverage-${{ matrix.os }}
|
||||||
path: coverage
|
path: coverage
|
||||||
|
|
||||||
- uses: codecov/codecov-action@v1.0.13
|
- uses: codecov/codecov-action@v1.0.14
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
2
.prettierignore
Normal file
2
.prettierignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
node_modules/
|
||||||
|
lib/
|
||||||
74
CHANGELOG.md
74
CHANGELOG.md
@@ -2,6 +2,80 @@
|
|||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
## [3.7.3](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.2...v3.7.3) (2020-10-20)
|
||||||
|
|
||||||
|
|
||||||
|
### ci
|
||||||
|
|
||||||
|
* bump codecov/codecov-action from v1.0.13 to v1.0.14 (#526) ([c4241b2](https://github.com/peaceiris/actions-gh-pages/commit/c4241b26fb90917901c95fabafc9907f71f44508)), closes [#526](https://github.com/peaceiris/actions-gh-pages/issues/526)
|
||||||
|
|
||||||
|
### docs
|
||||||
|
|
||||||
|
* Add link to create-react-app (#525) ([cf805b9](https://github.com/peaceiris/actions-gh-pages/commit/cf805b9457df587d349ee1684a4801cf9bbaac7d)), closes [#525](https://github.com/peaceiris/actions-gh-pages/issues/525)
|
||||||
|
|
||||||
|
### fix
|
||||||
|
|
||||||
|
* copyAssets and deleteExcludedAssets (#528) ([e93eed3](https://github.com/peaceiris/actions-gh-pages/commit/e93eed3ba7edf10f461bc4a7bd14cd2a12f44935)), closes [#528](https://github.com/peaceiris/actions-gh-pages/issues/528)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [3.7.2](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.1...v3.7.2) (2020-10-15)
|
||||||
|
|
||||||
|
|
||||||
|
### ci
|
||||||
|
|
||||||
|
* peaceiris/workflows/create-release-npm@v0.7.0 ([45bd46f](https://github.com/peaceiris/actions-gh-pages/commit/45bd46f92200c682e8e4a5d0f542aa12f9417131))
|
||||||
|
|
||||||
|
### fix
|
||||||
|
|
||||||
|
* copy dotfiles (#521) ([95792e1](https://github.com/peaceiris/actions-gh-pages/commit/95792e1c0fe9dfef8ebe7284d1af7ca787fde866)), closes [#521](https://github.com/peaceiris/actions-gh-pages/issues/521) [#520](https://github.com/peaceiris/actions-gh-pages/issues/520) [#512](https://github.com/peaceiris/actions-gh-pages/issues/512) [#507](https://github.com/peaceiris/actions-gh-pages/issues/507) [#509](https://github.com/peaceiris/actions-gh-pages/issues/509) [#390](https://github.com/peaceiris/actions-gh-pages/issues/390) [#324](https://github.com/peaceiris/actions-gh-pages/issues/324) [#103](https://github.com/peaceiris/actions-gh-pages/issues/103)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [3.7.1](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.0...v3.7.1) (2020-10-14)
|
||||||
|
|
||||||
|
|
||||||
|
### chore
|
||||||
|
|
||||||
|
* add .prettierignore ([772c200](https://github.com/peaceiris/actions-gh-pages/commit/772c200ac146a7e8d63c227a919456f8e0b4693f))
|
||||||
|
|
||||||
|
### ci
|
||||||
|
|
||||||
|
* allow dependency-type production (#518) ([572a9b5](https://github.com/peaceiris/actions-gh-pages/commit/572a9b5eb96036fc7a15f7edc15612d6889f9cfa)), closes [#518](https://github.com/peaceiris/actions-gh-pages/issues/518)
|
||||||
|
|
||||||
|
### deps
|
||||||
|
|
||||||
|
* bump @types/node from 12.12.63 to 12.12.64 (#506) ([a60f467](https://github.com/peaceiris/actions-gh-pages/commit/a60f4671feb4a666aab43d6ac5a3783dc4657a43)), closes [#506](https://github.com/peaceiris/actions-gh-pages/issues/506)
|
||||||
|
* bump @types/node from 12.12.64 to 12.12.66 (#508) ([5c575e8](https://github.com/peaceiris/actions-gh-pages/commit/5c575e8b276eea8921774c99a7b83c0d66cea90a)), closes [#508](https://github.com/peaceiris/actions-gh-pages/issues/508)
|
||||||
|
* bump @types/node from 12.12.66 to 12.12.67 (#511) ([1447993](https://github.com/peaceiris/actions-gh-pages/commit/144799313d4ad48903ce4729920e3d2f1429bbeb)), closes [#511](https://github.com/peaceiris/actions-gh-pages/issues/511)
|
||||||
|
* bump jest from 26.5.0 to 26.5.2 (#504) ([24f34b2](https://github.com/peaceiris/actions-gh-pages/commit/24f34b2d740cd79924d8a98bb8f26576309eeced)), closes [#504](https://github.com/peaceiris/actions-gh-pages/issues/504)
|
||||||
|
* bump jest from 26.5.2 to 26.5.3 (#515) ([a284cb0](https://github.com/peaceiris/actions-gh-pages/commit/a284cb02e9b796754ca6b5c8471b228ec8c6958e)), closes [#515](https://github.com/peaceiris/actions-gh-pages/issues/515)
|
||||||
|
* bump jest-circus from 26.5.1 to 26.5.2 (#505) ([274c177](https://github.com/peaceiris/actions-gh-pages/commit/274c177da0a2ff2cfe592e6b36c355f8bc062be5)), closes [#505](https://github.com/peaceiris/actions-gh-pages/issues/505)
|
||||||
|
* bump jest-circus from 26.5.2 to 26.5.3 (#516) ([9765b50](https://github.com/peaceiris/actions-gh-pages/commit/9765b50692abbd7b95c1c097da071f5a9c98804d)), closes [#516](https://github.com/peaceiris/actions-gh-pages/issues/516)
|
||||||
|
* bump node from 12.18.4 to 12.19.0 (#510) ([87e03f1](https://github.com/peaceiris/actions-gh-pages/commit/87e03f1be4c6673e544b6a89259729c5c646cdf6)), closes [#510](https://github.com/peaceiris/actions-gh-pages/issues/510)
|
||||||
|
* update (#517) ([d81433e](https://github.com/peaceiris/actions-gh-pages/commit/d81433ecbd529e53bb1201223120e2febf24b310)), closes [#517](https://github.com/peaceiris/actions-gh-pages/issues/517)
|
||||||
|
|
||||||
|
### docs
|
||||||
|
|
||||||
|
* add notes about keep_files ([c77e4d0](https://github.com/peaceiris/actions-gh-pages/commit/c77e4d0f87024d01904cc067c1a8b8affd80c1f7)), closes [#507](https://github.com/peaceiris/actions-gh-pages/issues/507) [#509](https://github.com/peaceiris/actions-gh-pages/issues/509)
|
||||||
|
* pin version to v3 ([b3747cd](https://github.com/peaceiris/actions-gh-pages/commit/b3747cde802bb259e2c13135ae1f36d309bd3808))
|
||||||
|
* remove link to #349 ([1a9f7eb](https://github.com/peaceiris/actions-gh-pages/commit/1a9f7eb4817f70390ed147b00fdf4b7284cd913d)), closes [#349](https://github.com/peaceiris/actions-gh-pages/issues/349)
|
||||||
|
* update exclude_assets ([4682881](https://github.com/peaceiris/actions-gh-pages/commit/4682881fa3a4b9f5a25027d6bf1b47f6d6fda5e9))
|
||||||
|
* update Flutter Web ([edd5ff3](https://github.com/peaceiris/actions-gh-pages/commit/edd5ff366e489149e15c36cfe923b1d71953b7a7))
|
||||||
|
* update Swift Publish ([c6c5feb](https://github.com/peaceiris/actions-gh-pages/commit/c6c5feba5e7cdf1e9227296b38c6ab27a6372304))
|
||||||
|
* update Swift Publish ([f15a311](https://github.com/peaceiris/actions-gh-pages/commit/f15a3114676f95a60146c8270e93a3ddd2c03086))
|
||||||
|
* update title position ([46b269e](https://github.com/peaceiris/actions-gh-pages/commit/46b269eb77e5fe6f2fc9c9cc531541227dfeca22))
|
||||||
|
|
||||||
|
### feat
|
||||||
|
|
||||||
|
* Add link to README in log ([25e5ffa](https://github.com/peaceiris/actions-gh-pages/commit/25e5ffa1476a0017af4dfa0feb054ac18ccd1797))
|
||||||
|
|
||||||
|
### fix
|
||||||
|
|
||||||
|
* copyAssets (#512) ([725f7db](https://github.com/peaceiris/actions-gh-pages/commit/725f7db867bb4bb443f5d8bdffb18297aab5e5a3)), closes [#512](https://github.com/peaceiris/actions-gh-pages/issues/512)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [3.7.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.0-8...v3.7.0) (2020-10-06)
|
# [3.7.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.0-8...v3.7.0) (2020-10-06)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
58
README.md
58
README.md
@@ -1,3 +1,7 @@
|
|||||||
|
## GitHub Actions for GitHub Pages
|
||||||
|
|
||||||
|
<img width="400" alt="GitHub Actions for deploying to GitHub Pages with Static Site Generators" src="./images/ogp.svg">
|
||||||
|
|
||||||
[](https://github.com/peaceiris/actions-gh-pages/blob/main/LICENSE)
|
[](https://github.com/peaceiris/actions-gh-pages/blob/main/LICENSE)
|
||||||
[](https://github.com/peaceiris/actions-gh-pages/releases/latest)
|
[](https://github.com/peaceiris/actions-gh-pages/releases/latest)
|
||||||
[](https://github.com/peaceiris/actions-gh-pages/releases)
|
[](https://github.com/peaceiris/actions-gh-pages/releases)
|
||||||
@@ -5,12 +9,6 @@
|
|||||||

|

|
||||||
[](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages)
|
[](https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages)
|
||||||
|
|
||||||
<img width="400" alt="GitHub Actions for deploying to GitHub Pages with Static Site Generators" src="./images/ogp.svg">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## GitHub Actions for GitHub Pages
|
|
||||||
|
|
||||||
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.)
|
||||||
|
|
||||||
@@ -18,7 +16,6 @@ This deploy action can be combined simply and freely with [Static Site Generator
|
|||||||
|
|
||||||
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@v3
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
@@ -41,9 +38,6 @@ 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)
|
||||||
|
|
||||||
And you may need to push manually for the first deployment on a private repository.
|
|
||||||
See [Issue #349](https://github.com/peaceiris/actions-gh-pages/issues/349)
|
|
||||||
|
|
||||||
### Supported Platforms
|
### Supported Platforms
|
||||||
|
|
||||||
All Actions runners: Linux (Ubuntu), macOS, and Windows are supported.
|
All Actions runners: Linux (Ubuntu), macOS, and Windows are supported.
|
||||||
@@ -236,7 +230,7 @@ A destination subdirectory on a publishing branch. The default is empty.
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
destination_dir: subdir
|
destination_dir: subdir
|
||||||
@@ -253,7 +247,7 @@ Values should be split with a comma.
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
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'
|
||||||
@@ -263,9 +257,11 @@ Set `exclude_assets` to empty for including the `.github` directory to deploymen
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} # Recommended for this usage
|
||||||
|
# personal_token: ${{ secrets.PERSONAL_TOKEN }} # An alternative
|
||||||
|
# github_token: ${{ secrets.GITHUB_TOKEN }} # This does not work for this usage
|
||||||
exclude_assets: ''
|
exclude_assets: ''
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -273,7 +269,7 @@ The `exclude_assets` option supports glob patterns.
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
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'
|
||||||
@@ -335,6 +331,11 @@ For example:
|
|||||||
|
|
||||||
By default, existing files in the publish branch are removed before adding the ones from publish dir. If you want the action to add new files but leave existing ones untouched, set the optional parameter `keep_files` to `true`.
|
By default, existing files in the publish branch are removed before adding the ones from publish dir. If you want the action to add new files but leave existing ones untouched, set the optional parameter `keep_files` to `true`.
|
||||||
|
|
||||||
|
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/)
|
||||||
|
- [Using the Static Folder | Gatsby](https://www.gatsbyjs.com/docs/static-folder/)
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -595,12 +596,15 @@ jobs:
|
|||||||
|
|
||||||
### ⭐️ Static Site Generators with Node.js
|
### ⭐️ Static Site Generators with Node.js
|
||||||
|
|
||||||
[hexo], [vuepress], [react-static], [gridsome], and so on.
|
[hexo], [vuepress], [react-static], [gridsome], [create-react-app] and so on.
|
||||||
|
Please check where your output directory is before pushing your workflow.
|
||||||
|
e.g. `create-react-app` requires `publish_dir` to be set to `./build`
|
||||||
|
|
||||||
[hexo]: https://github.com/hexojs/hexo
|
[hexo]: https://github.com/hexojs/hexo
|
||||||
[vuepress]: https://github.com/vuejs/vuepress
|
[vuepress]: https://github.com/vuejs/vuepress
|
||||||
[react-static]: https://github.com/react-static/react-static
|
[react-static]: https://github.com/react-static/react-static
|
||||||
[gridsome]: https://github.com/gridsome/gridsome
|
[gridsome]: https://github.com/gridsome/gridsome
|
||||||
|
[create-react-app]: https://github.com/facebook/create-react-app
|
||||||
|
|
||||||
Premise: Dependencies are managed by `package.json` and `package-lock.json`
|
Premise: Dependencies are managed by `package.json` and `package-lock.json`
|
||||||
|
|
||||||
@@ -958,7 +962,7 @@ jobs:
|
|||||||
- name: Setup Flutter
|
- name: Setup Flutter
|
||||||
run: |
|
run: |
|
||||||
git clone https://github.com/flutter/flutter.git --depth 1 -b beta _flutter
|
git clone https://github.com/flutter/flutter.git --depth 1 -b beta _flutter
|
||||||
echo "::add-path::${GITHUB_WORKSPACE}/_flutter/bin"
|
echo "${GITHUB_WORKSPACE}/_flutter/bin" >> ${GITHUB_PATH}
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
run: |
|
run: |
|
||||||
@@ -1067,17 +1071,29 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-18.04
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/Publish_build
|
||||||
|
.build
|
||||||
|
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-spm-
|
||||||
|
|
||||||
- name: Setup JohnSundell/Publish
|
- name: Setup JohnSundell/Publish
|
||||||
run: |
|
run: |
|
||||||
cd ${HOME}
|
cd ${HOME}
|
||||||
git clone --depth=1 https://github.com/JohnSundell/Publish.git
|
export PUBLISH_VERSION="0.7.0"
|
||||||
cd ./Publish
|
git clone https://github.com/JohnSundell/Publish.git
|
||||||
|
cd ./Publish && git checkout ${PUBLISH_VERSION}
|
||||||
|
mv ~/Publish_build .build || true
|
||||||
swift build -c release
|
swift build -c release
|
||||||
echo "::add-path::${HOME}/Publish/.build/release"
|
cp -r .build ~/Publish_build || true
|
||||||
|
echo "${HOME}/Publish/.build/release" >> ${GITHUB_PATH}
|
||||||
|
|
||||||
- run: publish-cli generate
|
- run: publish-cli generate
|
||||||
|
|
||||||
|
|||||||
1
__tests__/fixtures/publish_dir_1/assets/lib.css
Normal file
1
__tests__/fixtures/publish_dir_1/assets/lib.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/* CSS */
|
||||||
1
__tests__/fixtures/publish_dir_1/assets/lib.js
Normal file
1
__tests__/fixtures/publish_dir_1/assets/lib.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
// JavaScript
|
||||||
11
__tests__/fixtures/publish_dir_1/index.html
Normal file
11
__tests__/fixtures/publish_dir_1/index.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
__tests__/fixtures/publish_dir_1/main.css
Normal file
1
__tests__/fixtures/publish_dir_1/main.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/* CSS */
|
||||||
1
__tests__/fixtures/publish_dir_1/main.js
Normal file
1
__tests__/fixtures/publish_dir_1/main.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
// JavaScript
|
||||||
1
__tests__/fixtures/publish_dir_root/.github/CODEOWNERS
vendored
Normal file
1
__tests__/fixtures/publish_dir_root/.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
|
||||||
1
__tests__/fixtures/publish_dir_root/.github/ISSUE_TEMPLATE/template.md
vendored
Normal file
1
__tests__/fixtures/publish_dir_root/.github/ISSUE_TEMPLATE/template.md
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!-- issue template -->
|
||||||
7
__tests__/fixtures/publish_dir_root/.github/dependabot.yml
vendored
Normal file
7
__tests__/fixtures/publish_dir_root/.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# dependabot config
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: npm
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: daily
|
||||||
1
__tests__/fixtures/publish_dir_root/.github/workflows/test.yml
vendored
Normal file
1
__tests__/fixtures/publish_dir_root/.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
name: 'Test'
|
||||||
1
__tests__/fixtures/publish_dir_root/assets/lib.css
Normal file
1
__tests__/fixtures/publish_dir_root/assets/lib.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/* CSS */
|
||||||
1
__tests__/fixtures/publish_dir_root/assets/lib.js
Normal file
1
__tests__/fixtures/publish_dir_root/assets/lib.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
// JavaScript
|
||||||
11
__tests__/fixtures/publish_dir_root/index.html
Normal file
11
__tests__/fixtures/publish_dir_root/index.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
__tests__/fixtures/publish_dir_root/main.css
Normal file
1
__tests__/fixtures/publish_dir_root/main.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/* CSS */
|
||||||
1
__tests__/fixtures/publish_dir_root/main.js
Normal file
1
__tests__/fixtures/publish_dir_root/main.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
// JavaScript
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
|
copyAssets,
|
||||||
setRepo,
|
setRepo,
|
||||||
getUserName,
|
getUserName,
|
||||||
getUserEmail,
|
getUserEmail,
|
||||||
@@ -10,6 +11,17 @@ import {Inputs} from '../src/interfaces';
|
|||||||
import {getWorkDirName, createDir} from '../src/utils';
|
import {getWorkDirName, createDir} from '../src/utils';
|
||||||
import {CmdResult} from '../src/interfaces';
|
import {CmdResult} from '../src/interfaces';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
|
import {cp, rm} from 'shelljs';
|
||||||
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const testRoot = path.resolve(__dirname);
|
||||||
|
|
||||||
|
async function createTestDir(name: string): Promise<string> {
|
||||||
|
const date = new Date();
|
||||||
|
const unixTime = date.getTime();
|
||||||
|
return await getWorkDirName(`${unixTime}_${name}`);
|
||||||
|
}
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
@@ -22,6 +34,96 @@ afterEach(() => {
|
|||||||
delete process.env['GITHUB_REPOSITORY'];
|
delete process.env['GITHUB_REPOSITORY'];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('copyAssets', () => {
|
||||||
|
let gitTempDir = '';
|
||||||
|
(async (): Promise<void> => {
|
||||||
|
const date = new Date();
|
||||||
|
const unixTime = date.getTime();
|
||||||
|
gitTempDir = await getWorkDirName(`${unixTime}_git`);
|
||||||
|
})();
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
await createDir(gitTempDir);
|
||||||
|
process.chdir(gitTempDir);
|
||||||
|
await exec.exec('git', ['init']);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('copy assets from publish_dir to root, delete .github', async () => {
|
||||||
|
const publishDir = await createTestDir('src');
|
||||||
|
const destDir = await createTestDir('dst');
|
||||||
|
cp('-Rf', path.resolve(testRoot, 'fixtures/publish_dir_1'), publishDir);
|
||||||
|
cp('-Rf', gitTempDir, destDir);
|
||||||
|
|
||||||
|
await copyAssets(publishDir, destDir, '.github');
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, '.github'))).toBeFalsy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'index.html'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.css'))).toBeTruthy();
|
||||||
|
rm('-rf', publishDir, destDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('copy assets from publish_dir to root, delete .github,main.js', async () => {
|
||||||
|
const publishDir = await createTestDir('src');
|
||||||
|
const destDir = await createTestDir('dst');
|
||||||
|
cp('-Rf', path.resolve(testRoot, 'fixtures/publish_dir_1'), publishDir);
|
||||||
|
cp('-Rf', gitTempDir, destDir);
|
||||||
|
|
||||||
|
await copyAssets(publishDir, destDir, '.github,main.js');
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, '.github'))).toBeFalsy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'index.html'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'main.js'))).toBeFalsy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.css'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.js'))).toBeTruthy();
|
||||||
|
rm('-rf', publishDir, destDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('copy assets from publish_dir to root, delete nothing', async () => {
|
||||||
|
const publishDir = await createTestDir('src');
|
||||||
|
const destDir = await createTestDir('dst');
|
||||||
|
cp('-Rf', path.resolve(testRoot, 'fixtures/publish_dir_root'), publishDir);
|
||||||
|
cp('-Rf', gitTempDir, destDir);
|
||||||
|
|
||||||
|
await copyAssets(publishDir, destDir, '');
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, '.github'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'index.html'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'main.js'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.css'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.js'))).toBeTruthy();
|
||||||
|
rm('-rf', publishDir, destDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('copy assets from root to root, delete .github', async () => {
|
||||||
|
const publishDir = await createTestDir('src');
|
||||||
|
const destDir = await createTestDir('dst');
|
||||||
|
cp('-Rf', path.resolve(testRoot, 'fixtures/publish_dir_root'), publishDir);
|
||||||
|
cp('-Rf', gitTempDir, destDir);
|
||||||
|
cp('-Rf', gitTempDir, publishDir);
|
||||||
|
|
||||||
|
await copyAssets(publishDir, destDir, '.github');
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, '.github'))).toBeFalsy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'index.html'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.css'))).toBeTruthy();
|
||||||
|
rm('-rf', publishDir, destDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('copy assets from root to root, delete nothing', async () => {
|
||||||
|
const publishDir = await createTestDir('src');
|
||||||
|
const destDir = await createTestDir('dst');
|
||||||
|
cp('-Rf', path.resolve(testRoot, 'fixtures/publish_dir_root'), publishDir);
|
||||||
|
cp('-Rf', gitTempDir, destDir);
|
||||||
|
cp('-Rf', gitTempDir, publishDir);
|
||||||
|
|
||||||
|
await copyAssets(publishDir, destDir, '');
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, '.github'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'index.html'))).toBeTruthy();
|
||||||
|
expect(fs.existsSync(path.resolve(destDir, 'assets/lib.css'))).toBeTruthy();
|
||||||
|
rm('-rf', publishDir, destDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
test.todo('copy assets from root to subdir, delete .github');
|
||||||
|
test.todo('copy assets from root to subdir, delete .github,main.js');
|
||||||
|
test.todo('copy assets from root to subdir, delete nothing');
|
||||||
|
});
|
||||||
|
|
||||||
describe('setRepo()', () => {
|
describe('setRepo()', () => {
|
||||||
test('throw error destination_dir should be a relative path', async () => {
|
test('throw error destination_dir should be a relative path', async () => {
|
||||||
process.env['INPUT_GITHUB_TOKEN'] = 'test_github_token';
|
process.env['INPUT_GITHUB_TOKEN'] = 'test_github_token';
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
3359
package-lock.json
generated
3359
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "actions-github-pages",
|
"name": "actions-github-pages",
|
||||||
"version": "3.7.0",
|
"version": "3.7.3",
|
||||||
"description": "GitHub Actions for GitHub Pages",
|
"description": "GitHub Actions for GitHub Pages",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -58,22 +58,24 @@
|
|||||||
"@actions/exec": "^1.0.4",
|
"@actions/exec": "^1.0.4",
|
||||||
"@actions/github": "^4.0.0",
|
"@actions/github": "^4.0.0",
|
||||||
"@actions/glob": "^0.1.0",
|
"@actions/glob": "^0.1.0",
|
||||||
"@actions/io": "^1.0.2"
|
"@actions/io": "^1.0.2",
|
||||||
|
"@types/shelljs": "^0.8.8",
|
||||||
|
"shelljs": "^0.8.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.14",
|
"@types/jest": "^26.0.14",
|
||||||
"@types/js-yaml": "^3.12.5",
|
"@types/js-yaml": "^3.12.5",
|
||||||
"@types/node": "~12",
|
"@types/node": "~12",
|
||||||
"@typescript-eslint/eslint-plugin": "^2.34.0",
|
"@typescript-eslint/eslint-plugin": "^4.4.0",
|
||||||
"@typescript-eslint/parser": "^2.34.0",
|
"@typescript-eslint/parser": "^4.4.0",
|
||||||
"@vercel/ncc": "^0.24.1",
|
"@vercel/ncc": "^0.24.1",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^7.11.0",
|
||||||
"eslint-config-prettier": "^6.12.0",
|
"eslint-config-prettier": "^6.12.0",
|
||||||
"eslint-plugin-jest": "^24.1.0",
|
"eslint-plugin-jest": "^24.1.0",
|
||||||
"eslint-plugin-prettier": "^3.1.4",
|
"eslint-plugin-prettier": "^3.1.4",
|
||||||
"husky": "^4.3.0",
|
"husky": "^4.3.0",
|
||||||
"jest": "^26.5.0",
|
"jest": "^26.5.3",
|
||||||
"jest-circus": "^26.5.1",
|
"jest-circus": "^26.5.3",
|
||||||
"js-yaml": "^3.14.0",
|
"js-yaml": "^3.14.0",
|
||||||
"lint-staged": "^10.4.0",
|
"lint-staged": "^10.4.0",
|
||||||
"prettier": "2.1.2",
|
"prettier": "2.1.2",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as io from '@actions/io';
|
|
||||||
import * as glob from '@actions/glob';
|
import * as glob from '@actions/glob';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import {Inputs, CmdResult} from './interfaces';
|
import {Inputs, CmdResult} from './interfaces';
|
||||||
import {createDir} from './utils';
|
import {createDir} from './utils';
|
||||||
|
import {cp, rm} from 'shelljs';
|
||||||
|
|
||||||
export async function createBranchForce(branch: string): Promise<void> {
|
export async function createBranchForce(branch: string): Promise<void> {
|
||||||
await exec.exec('git', ['init']);
|
await exec.exec('git', ['init']);
|
||||||
@@ -14,6 +14,7 @@ export async function createBranchForce(branch: string): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteExcludedAssets(destDir: string, excludeAssets: string): Promise<void> {
|
export async function deleteExcludedAssets(destDir: string, excludeAssets: string): Promise<void> {
|
||||||
|
if (excludeAssets === '') return;
|
||||||
core.info(`[INFO] delete excluded assets`);
|
core.info(`[INFO] delete excluded assets`);
|
||||||
const excludedAssetNames: Array<string> = excludeAssets.split(',');
|
const excludedAssetNames: Array<string> = excludeAssets.split(',');
|
||||||
const excludedAssetPaths = ((): Array<string> => {
|
const excludedAssetPaths = ((): Array<string> => {
|
||||||
@@ -24,10 +25,11 @@ export async function deleteExcludedAssets(destDir: string, excludeAssets: strin
|
|||||||
return paths;
|
return paths;
|
||||||
})();
|
})();
|
||||||
const globber = await glob.create(excludedAssetPaths.join('\n'));
|
const globber = await glob.create(excludedAssetPaths.join('\n'));
|
||||||
for await (const asset of globber.globGenerator()) {
|
const files = await globber.glob();
|
||||||
core.info(`[INFO] delete ${asset}`);
|
for await (const file of globber.globGenerator()) {
|
||||||
io.rmRF(asset);
|
core.info(`[INFO] delete ${file}`);
|
||||||
}
|
}
|
||||||
|
rm('-rf', files);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,24 +39,21 @@ export async function copyAssets(
|
|||||||
excludeAssets: string
|
excludeAssets: string
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
core.info(`[INFO] prepare publishing assets`);
|
core.info(`[INFO] prepare publishing assets`);
|
||||||
const copyOpts = {recursive: true, force: true};
|
|
||||||
const files = fs.readdirSync(publishDir);
|
if (!fs.existsSync(destDir)) {
|
||||||
core.debug(`${files}`);
|
core.info(`[INFO] create ${destDir}`);
|
||||||
for await (const file of files) {
|
await createDir(destDir);
|
||||||
if (file === '.git') {
|
|
||||||
core.info(`[INFO] skip ${file}`);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const filePublishPath = path.join(publishDir, file);
|
|
||||||
const fileDestPath = path.join(destDir, file);
|
|
||||||
const destPath = path.dirname(fileDestPath);
|
|
||||||
if (fs.existsSync(destPath) === false) {
|
|
||||||
await createDir(destPath);
|
|
||||||
}
|
|
||||||
core.info(`[INFO] copy ${file}`);
|
|
||||||
await io.cp(filePublishPath, fileDestPath, copyOpts);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const dotGitPath = path.join(publishDir, '.git');
|
||||||
|
if (fs.existsSync(dotGitPath)) {
|
||||||
|
core.info(`[INFO] delete ${dotGitPath}`);
|
||||||
|
rm('-rf', dotGitPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
core.info(`[INFO] copy ${publishDir} to ${destDir}`);
|
||||||
|
cp('-RfL', [`${publishDir}/*`, `${publishDir}/.*`], destDir);
|
||||||
|
|
||||||
await deleteExcludedAssets(destDir, excludeAssets);
|
await deleteExcludedAssets(destDir, excludeAssets);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import {getWorkDirName, addNoJekyll, addCNAME, skipOnFork} from './utils';
|
|||||||
|
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
|
core.info('[INFO] Usage https://github.com/peaceiris/actions-gh-pages#readme');
|
||||||
|
|
||||||
const inps: Inputs = getInputs();
|
const inps: Inputs = getInputs();
|
||||||
core.startGroup('Dump inputs');
|
core.startGroup('Dump inputs');
|
||||||
showInputs(inps);
|
showInputs(inps);
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import * as github from '@actions/github';
|
|||||||
import * as io from '@actions/io';
|
import * as io from '@actions/io';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const cpSpawnSync = require('child_process').spawnSync;
|
const cpSpawnSync = require('child_process').spawnSync;
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const cpexec = require('child_process').execFileSync;
|
const cpexec = require('child_process').execFileSync;
|
||||||
import {Inputs} from './interfaces';
|
import {Inputs} from './interfaces';
|
||||||
import {getHomeDir} from './utils';
|
import {getHomeDir} from './utils';
|
||||||
|
|||||||
Reference in New Issue
Block a user