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
|
||||
labels:
|
||||
- dependencies
|
||||
ignore:
|
||||
- dependency-name: "@types/node"
|
||||
versions:
|
||||
- ">= 13.a, < 14"
|
||||
- ">= 14.a, < 15"
|
||||
allow:
|
||||
- dependency-type: "production"
|
||||
commit-message:
|
||||
prefix: deps
|
||||
|
||||
|
||||
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@@ -10,27 +10,6 @@ jobs:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
|
||||
- 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
|
||||
- uses: peaceiris/workflows/create-release-npm@v0.7.0
|
||||
env:
|
||||
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 }}
|
||||
path: coverage
|
||||
|
||||
- uses: codecov/codecov-action@v1.0.13
|
||||
- uses: codecov/codecov-action@v1.0.14
|
||||
with:
|
||||
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.
|
||||
|
||||
## [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)
|
||||
|
||||
|
||||
|
||||
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/releases/latest)
|
||||
[](https://github.com/peaceiris/actions-gh-pages/releases)
|
||||
@@ -5,12 +9,6 @@
|
||||

|
||||
[](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 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.
|
||||
|
||||
|
||||
```yaml
|
||||
- name: Deploy
|
||||
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.
|
||||
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
|
||||
|
||||
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
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
destination_dir: subdir
|
||||
@@ -253,7 +247,7 @@ Values should be split with a comma.
|
||||
|
||||
```yaml
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
exclude_assets: '.github,exclude-file1,exclude-file2'
|
||||
@@ -263,9 +257,11 @@ Set `exclude_assets` to empty for including the `.github` directory to deploymen
|
||||
|
||||
```yaml
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
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: ''
|
||||
```
|
||||
|
||||
@@ -273,7 +269,7 @@ The `exclude_assets` option supports glob patterns.
|
||||
|
||||
```yaml
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3.7.0-8
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
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`.
|
||||
|
||||
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:
|
||||
|
||||
```yaml
|
||||
@@ -595,12 +596,15 @@ jobs:
|
||||
|
||||
### ⭐️ 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
|
||||
[vuepress]: https://github.com/vuejs/vuepress
|
||||
[react-static]: https://github.com/react-static/react-static
|
||||
[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`
|
||||
|
||||
@@ -958,7 +962,7 @@ jobs:
|
||||
- name: Setup Flutter
|
||||
run: |
|
||||
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
|
||||
run: |
|
||||
@@ -1067,17 +1071,29 @@ on:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- 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
|
||||
run: |
|
||||
cd ${HOME}
|
||||
git clone --depth=1 https://github.com/JohnSundell/Publish.git
|
||||
cd ./Publish
|
||||
export PUBLISH_VERSION="0.7.0"
|
||||
git clone https://github.com/JohnSundell/Publish.git
|
||||
cd ./Publish && git checkout ${PUBLISH_VERSION}
|
||||
mv ~/Publish_build .build || true
|
||||
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
|
||||
|
||||
|
||||
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 {
|
||||
copyAssets,
|
||||
setRepo,
|
||||
getUserName,
|
||||
getUserEmail,
|
||||
@@ -10,6 +11,17 @@ import {Inputs} from '../src/interfaces';
|
||||
import {getWorkDirName, createDir} from '../src/utils';
|
||||
import {CmdResult} from '../src/interfaces';
|
||||
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(() => {
|
||||
jest.resetModules();
|
||||
@@ -22,6 +34,96 @@ afterEach(() => {
|
||||
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()', () => {
|
||||
test('throw error destination_dir should be a relative path', async () => {
|
||||
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",
|
||||
"version": "3.7.0",
|
||||
"version": "3.7.3",
|
||||
"description": "GitHub Actions for GitHub Pages",
|
||||
"main": "lib/index.js",
|
||||
"engines": {
|
||||
@@ -58,22 +58,24 @@
|
||||
"@actions/exec": "^1.0.4",
|
||||
"@actions/github": "^4.0.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": {
|
||||
"@types/jest": "^26.0.14",
|
||||
"@types/js-yaml": "^3.12.5",
|
||||
"@types/node": "~12",
|
||||
"@typescript-eslint/eslint-plugin": "^2.34.0",
|
||||
"@typescript-eslint/parser": "^2.34.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.4.0",
|
||||
"@typescript-eslint/parser": "^4.4.0",
|
||||
"@vercel/ncc": "^0.24.1",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint": "^7.11.0",
|
||||
"eslint-config-prettier": "^6.12.0",
|
||||
"eslint-plugin-jest": "^24.1.0",
|
||||
"eslint-plugin-prettier": "^3.1.4",
|
||||
"husky": "^4.3.0",
|
||||
"jest": "^26.5.0",
|
||||
"jest-circus": "^26.5.1",
|
||||
"jest": "^26.5.3",
|
||||
"jest-circus": "^26.5.3",
|
||||
"js-yaml": "^3.14.0",
|
||||
"lint-staged": "^10.4.0",
|
||||
"prettier": "2.1.2",
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import * as core from '@actions/core';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as io from '@actions/io';
|
||||
import * as glob from '@actions/glob';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import {Inputs, CmdResult} from './interfaces';
|
||||
import {createDir} from './utils';
|
||||
import {cp, rm} from 'shelljs';
|
||||
|
||||
export async function createBranchForce(branch: string): Promise<void> {
|
||||
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> {
|
||||
if (excludeAssets === '') return;
|
||||
core.info(`[INFO] delete excluded assets`);
|
||||
const excludedAssetNames: Array<string> = excludeAssets.split(',');
|
||||
const excludedAssetPaths = ((): Array<string> => {
|
||||
@@ -24,10 +25,11 @@ export async function deleteExcludedAssets(destDir: string, excludeAssets: strin
|
||||
return paths;
|
||||
})();
|
||||
const globber = await glob.create(excludedAssetPaths.join('\n'));
|
||||
for await (const asset of globber.globGenerator()) {
|
||||
core.info(`[INFO] delete ${asset}`);
|
||||
io.rmRF(asset);
|
||||
const files = await globber.glob();
|
||||
for await (const file of globber.globGenerator()) {
|
||||
core.info(`[INFO] delete ${file}`);
|
||||
}
|
||||
rm('-rf', files);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -37,24 +39,21 @@ export async function copyAssets(
|
||||
excludeAssets: string
|
||||
): Promise<void> {
|
||||
core.info(`[INFO] prepare publishing assets`);
|
||||
const copyOpts = {recursive: true, force: true};
|
||||
const files = fs.readdirSync(publishDir);
|
||||
core.debug(`${files}`);
|
||||
for await (const file of files) {
|
||||
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);
|
||||
|
||||
if (!fs.existsSync(destDir)) {
|
||||
core.info(`[INFO] create ${destDir}`);
|
||||
await createDir(destDir);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
return;
|
||||
|
||||
@@ -10,6 +10,8 @@ import {getWorkDirName, addNoJekyll, addCNAME, skipOnFork} from './utils';
|
||||
|
||||
export async function run(): Promise<void> {
|
||||
try {
|
||||
core.info('[INFO] Usage https://github.com/peaceiris/actions-gh-pages#readme');
|
||||
|
||||
const inps: Inputs = getInputs();
|
||||
core.startGroup('Dump inputs');
|
||||
showInputs(inps);
|
||||
|
||||
@@ -4,7 +4,9 @@ import * as github from '@actions/github';
|
||||
import * as io from '@actions/io';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const cpSpawnSync = require('child_process').spawnSync;
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const cpexec = require('child_process').execFileSync;
|
||||
import {Inputs} from './interfaces';
|
||||
import {getHomeDir} from './utils';
|
||||
|
||||
Reference in New Issue
Block a user