Compare commits
69 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
068dc23d97 | ||
|
|
381a7b30d0 | ||
|
|
e4724d9526 | ||
|
|
b52df3c817 | ||
|
|
65a821ebc7 | ||
|
|
ebe02723dc | ||
|
|
bf41193762 | ||
|
|
628161d570 | ||
|
|
3623583f73 | ||
|
|
a0db9b66be | ||
|
|
0a4c122ea4 | ||
|
|
07f38c68fa | ||
|
|
94fb28f81c | ||
|
|
99df4b07a7 | ||
|
|
0ed12e5298 | ||
|
|
77ce5ecb49 | ||
|
|
e27e41d7ce | ||
|
|
d3a97d53a8 | ||
|
|
03d253207f | ||
|
|
47a5b8c834 | ||
|
|
1d14b37db2 | ||
|
|
9b425f80df | ||
|
|
fcead0e030 | ||
|
|
87b7480404 | ||
|
|
3baf850920 | ||
|
|
071f8cbc5a | ||
|
|
4b77300e3c | ||
|
|
1fd941c40a | ||
|
|
5b8ea1e7ee | ||
|
|
fe996f57a5 | ||
|
|
852bfb8e83 | ||
|
|
3f0d4cea48 | ||
|
|
facb2e7272 | ||
|
|
77a99cbdfe | ||
|
|
38add90c90 | ||
|
|
419385e998 | ||
|
|
584ffda459 | ||
|
|
eaab2e3404 | ||
|
|
33f5d6c1bf | ||
|
|
b427ba5d48 | ||
|
|
f06a7f8795 | ||
|
|
7d345152fb | ||
|
|
75c0bf7407 | ||
|
|
44a3899927 | ||
|
|
727890a27e | ||
|
|
4adbf1cc05 | ||
|
|
3dbd73271d | ||
|
|
6004cfef02 | ||
|
|
d04f65f985 | ||
|
|
1054f6a6b9 | ||
|
|
6c2db6e184 | ||
|
|
3ba244e8d4 | ||
|
|
8cc3a89d3b | ||
|
|
aedef9f283 | ||
|
|
2fa771f89e | ||
|
|
f0573f94d8 | ||
|
|
4c8cffc919 | ||
|
|
1e6dccf5ca | ||
|
|
bbdfb20061 | ||
|
|
7fd2e42a05 | ||
|
|
e93eed3ba7 | ||
|
|
cf805b9457 | ||
|
|
c4241b26fb | ||
|
|
4f6b15a24f | ||
|
|
42954117ce | ||
|
|
48b33dca85 | ||
|
|
45bd46f922 | ||
|
|
95792e1c0f | ||
|
|
66acd31e22 |
@@ -9,8 +9,7 @@
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:jest/recommended",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint"
|
||||
"plugin:prettier/recommended"
|
||||
],
|
||||
"plugins": ["@typescript-eslint"],
|
||||
"globals": {
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,11 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: GitHub Actions - GitHub Support Community Forum
|
||||
url: https://github.community/c/github-actions
|
||||
url: https://github.community/c/code-to-cloud/github-actions/41
|
||||
about: Please ask questions about GitHub Actions here.
|
||||
- name: GitHub Pages Documentation
|
||||
url: https://help.github.com/en/github/working-with-github-pages
|
||||
url: https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages
|
||||
about: GitHub Pages official documentaion here.
|
||||
- name: GitHub Actions Documentation
|
||||
url: https://help.github.com/en/actions
|
||||
about: GitHub Actions official documentaion here.
|
||||
url: https://docs.github.com/en/free-pro-team@latest/actions
|
||||
about: GitHub Actions official documentation here.
|
||||
|
||||
20
.github/labeler.yml
vendored
Normal file
20
.github/labeler.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
CI/CD:
|
||||
- .github/workflows/*
|
||||
|
||||
dependencies:
|
||||
- .nvmrc
|
||||
- package.json
|
||||
- package-lock.json
|
||||
|
||||
documentation:
|
||||
- README.md
|
||||
|
||||
test:
|
||||
- __tests__
|
||||
|
||||
docker:
|
||||
- .devcontainer/*
|
||||
- .dockerignore
|
||||
- Dockerfile
|
||||
- Makefile
|
||||
- docker-compose.yml
|
||||
5
.github/workflows/codeql.yml
vendored
5
.github/workflows/codeql.yml
vendored
@@ -11,11 +11,6 @@ jobs:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
|
||||
12
.github/workflows/dev-image.yml
vendored
12
.github/workflows/dev-image.yml
vendored
@@ -24,23 +24,15 @@ on:
|
||||
- 'docker-compose.yml'
|
||||
|
||||
jobs:
|
||||
skipci:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- run: echo "[skip ci] ${{ contains(github.event.head_commit.message, '[skip ci]') }}"
|
||||
|
||||
dev-image-test:
|
||||
runs-on: ubuntu-18.04
|
||||
if: contains(github.event.head_commit.message, '[skip ci]') == false
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- 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: make ci
|
||||
- run: make all
|
||||
- run: docker-compose push
|
||||
if: github.ref == 'refs/heads/main'
|
||||
if: github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
|
||||
13
.github/workflows/labeler.yml
vendored
Normal file
13
.github/workflows/labeler.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: "Pull Request Labeler"
|
||||
# https://github.com/actions/labeler
|
||||
|
||||
on:
|
||||
- pull_request_target
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/labeler@v3
|
||||
with:
|
||||
repo-token: "${{ secrets.GH_PAT }}"
|
||||
26
.github/workflows/release.yml
vendored
26
.github/workflows/release.yml
vendored
@@ -9,28 +9,8 @@ jobs:
|
||||
release:
|
||||
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: actions/checkout@v2
|
||||
# https://github.com/peaceiris/workflows/blob/main/create-release-npm/action.yml
|
||||
- uses: peaceiris/workflows/create-release-npm@v0.8.1
|
||||
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}"
|
||||
|
||||
24
.github/workflows/test.yml
vendored
24
.github/workflows/test.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
- 'macos-latest'
|
||||
- 'windows-latest'
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
id: nvm
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.2
|
||||
uses: actions/setup-node@v2.1.5
|
||||
with:
|
||||
node-version: '${{ steps.nvm.outputs.NVMRC }}'
|
||||
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
npm --version
|
||||
git --version
|
||||
|
||||
- run: npm ci
|
||||
- run: npm ci --ignore-scripts
|
||||
|
||||
- name: npm audit
|
||||
if: startsWith(matrix.os, 'ubuntu-18.04')
|
||||
@@ -73,9 +73,7 @@ jobs:
|
||||
name: coverage-${{ matrix.os }}
|
||||
path: coverage
|
||||
|
||||
- uses: codecov/codecov-action@v1.0.13
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
- uses: codecov/codecov-action@v1.3.1
|
||||
|
||||
- name: Run ncc
|
||||
run: npm run build
|
||||
@@ -88,9 +86,9 @@ jobs:
|
||||
|
||||
- name: Setup mdBook
|
||||
if: github.ref == 'refs/heads/main'
|
||||
uses: peaceiris/actions-mdbook@v1.1.13
|
||||
uses: peaceiris/actions-mdbook@v1.1.14
|
||||
with:
|
||||
mdbook-version: '0.3.7'
|
||||
mdbook-version: '0.4.5'
|
||||
|
||||
- name: Build site
|
||||
if: github.ref == 'refs/heads/main'
|
||||
@@ -100,7 +98,7 @@ jobs:
|
||||
- name: Deploy
|
||||
if: |
|
||||
startsWith(matrix.os, 'ubuntu-18.04') &&
|
||||
github.ref == 'refs/heads/main'
|
||||
github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
uses: ./
|
||||
with:
|
||||
# deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
@@ -119,7 +117,7 @@ jobs:
|
||||
- name: Deploy
|
||||
if: |
|
||||
startsWith(matrix.os, 'ubuntu-16.04') &&
|
||||
github.ref == 'refs/heads/main'
|
||||
github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
uses: ./
|
||||
with:
|
||||
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
@@ -137,7 +135,7 @@ jobs:
|
||||
- name: Deploy
|
||||
if: |
|
||||
startsWith(matrix.os, 'macos') &&
|
||||
github.ref == 'refs/heads/main'
|
||||
github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
uses: ./
|
||||
with:
|
||||
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
@@ -156,7 +154,7 @@ jobs:
|
||||
- name: Deploy
|
||||
if: |
|
||||
startsWith(matrix.os, 'windows') &&
|
||||
github.ref == 'refs/heads/main'
|
||||
github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
uses: ./
|
||||
with:
|
||||
# deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
@@ -175,7 +173,7 @@ jobs:
|
||||
- name: Deploy
|
||||
if: |
|
||||
startsWith(matrix.os, 'ubuntu-20.04') &&
|
||||
github.ref == 'refs/heads/main'
|
||||
github.ref == 'refs/heads/main' && github.event.repository.fork == false
|
||||
uses: ./
|
||||
with:
|
||||
# deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
|
||||
2
.github/workflows/update-major-tag.yml
vendored
2
.github/workflows/update-major-tag.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Update major tag
|
||||
if: github.event.release.prerelease == false
|
||||
|
||||
1
.husky/.gitignore
vendored
Normal file
1
.husky/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
_
|
||||
2
.husky/post-merge
Executable file
2
.husky/post-merge
Executable file
@@ -0,0 +1,2 @@
|
||||
npm ci
|
||||
git remote prune origin
|
||||
1
.husky/pre-commit
Executable file
1
.husky/pre-commit
Executable file
@@ -0,0 +1 @@
|
||||
npx lint-staged
|
||||
106
CHANGELOG.md
106
CHANGELOG.md
@@ -2,6 +2,112 @@
|
||||
|
||||
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.8.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.7.3...v3.8.0) (2021-03-25)
|
||||
|
||||
|
||||
### build
|
||||
|
||||
* fix dev docker image (#584) ([b52df3c](https://github.com/peaceiris/actions-gh-pages/commit/b52df3c817bc7c15dce1ce691645a5db4ae83af8)), closes [#584](https://github.com/peaceiris/actions-gh-pages/issues/584)
|
||||
* Set target to ES2019 (#576) ([07f38c6](https://github.com/peaceiris/actions-gh-pages/commit/07f38c68fa7d285b500469c615e334df3b37a1e1)), closes [#576](https://github.com/peaceiris/actions-gh-pages/issues/576)
|
||||
|
||||
### chore
|
||||
|
||||
* Add link to create-release-npm ([3f0d4ce](https://github.com/peaceiris/actions-gh-pages/commit/3f0d4cea48cbc13116c89d5d0483abb4fc33f7d8))
|
||||
* Add postinstall for husky install (#578) ([a0db9b6](https://github.com/peaceiris/actions-gh-pages/commit/a0db9b66be08f409f8263ee57ca1dd625d9f0b59)), closes [#578](https://github.com/peaceiris/actions-gh-pages/issues/578)
|
||||
* bump doctoc from 1.4.0 to 2.0.0 ([727890a](https://github.com/peaceiris/actions-gh-pages/commit/727890a27e16b8a101a4635dd399e09b27d6ee2d))
|
||||
* fix typo ([3dbd732](https://github.com/peaceiris/actions-gh-pages/commit/3dbd73271d56ca3ffbe3e284cb769e75be7b1a19))
|
||||
* remove lib ([628161d](https://github.com/peaceiris/actions-gh-pages/commit/628161d570c8161d9c889968d60244e195cc4047))
|
||||
* update link to github.community ([d04f65f](https://github.com/peaceiris/actions-gh-pages/commit/d04f65f98556d3d111f8d9817c16a74692d0c8de))
|
||||
* update package-lock.json (#567) ([77ce5ec](https://github.com/peaceiris/actions-gh-pages/commit/77ce5ecb497f3828448080745e9500ea19585a9f)), closes [#567](https://github.com/peaceiris/actions-gh-pages/issues/567)
|
||||
* update redirected links ([6004cfe](https://github.com/peaceiris/actions-gh-pages/commit/6004cfef02c3b3c6a114f6a25f350e72820cb3e1))
|
||||
|
||||
### ci
|
||||
|
||||
* Add --unsafe-perm=true --allow-root (#573) ([99df4b0](https://github.com/peaceiris/actions-gh-pages/commit/99df4b07a7197d291b0bcebf96a41a5df0190614)), closes [#573](https://github.com/peaceiris/actions-gh-pages/issues/573)
|
||||
* add actions/labeler ([33f5d6c](https://github.com/peaceiris/actions-gh-pages/commit/33f5d6c1bf12e6776be660dc0fa9e4b02a33eb6d))
|
||||
* add labeler.yml ([eaab2e3](https://github.com/peaceiris/actions-gh-pages/commit/eaab2e340497a62727a36dc7b789f91425047428))
|
||||
* bump actions/setup-node from v2.1.2 to v2.1.3 (#546) ([44a3899](https://github.com/peaceiris/actions-gh-pages/commit/44a3899927ca2db2c174ce4782d207e0357fb248)), closes [#546](https://github.com/peaceiris/actions-gh-pages/issues/546)
|
||||
* bump actions/setup-node from v2.1.3 to v2.1.4 (#549) ([7d34515](https://github.com/peaceiris/actions-gh-pages/commit/7d345152fb93257d6c54cadbda951fd1399174ca)), closes [#549](https://github.com/peaceiris/actions-gh-pages/issues/549)
|
||||
* bump actions/setup-node from v2.1.4 to v2.1.5 (#574) ([94fb28f](https://github.com/peaceiris/actions-gh-pages/commit/94fb28f81cbbf860489718a0e8697a581b05313a)), closes [#574](https://github.com/peaceiris/actions-gh-pages/issues/574)
|
||||
* bump codecov/codecov-action from v1.0.14 to v1.0.15 (#535) ([aedef9f](https://github.com/peaceiris/actions-gh-pages/commit/aedef9f283887800d5ff818e5cf61c08a5f53f55)), closes [#535](https://github.com/peaceiris/actions-gh-pages/issues/535)
|
||||
* bump codecov/codecov-action from v1.0.15 to v1.1.0 (#550) ([f06a7f8](https://github.com/peaceiris/actions-gh-pages/commit/f06a7f879532e85e480c7f07951868a0a556ffeb)), closes [#550](https://github.com/peaceiris/actions-gh-pages/issues/550)
|
||||
* bump codecov/codecov-action from v1.1.0 to v1.1.1 (#553) ([77a99cb](https://github.com/peaceiris/actions-gh-pages/commit/77a99cbdfe41dd761083d67b85365cf4ed3b55f6)), closes [#553](https://github.com/peaceiris/actions-gh-pages/issues/553)
|
||||
* bump codecov/codecov-action from v1.1.1 to v1.2.0 (#557) ([1fd941c](https://github.com/peaceiris/actions-gh-pages/commit/1fd941c40ad4ec5733c654b496aebcdaa7742267)), closes [#557](https://github.com/peaceiris/actions-gh-pages/issues/557)
|
||||
* bump codecov/codecov-action from v1.2.0 to v1.2.1 (#559) ([071f8cb](https://github.com/peaceiris/actions-gh-pages/commit/071f8cbc5a4da10f4770cf6a9a4d6b725a8041f7)), closes [#559](https://github.com/peaceiris/actions-gh-pages/issues/559)
|
||||
* bump codecov/codecov-action from v1.2.1 to v1.2.2 (#583) ([65a821e](https://github.com/peaceiris/actions-gh-pages/commit/65a821ebc77147931cd063e47a69e6e62d38488c)), closes [#583](https://github.com/peaceiris/actions-gh-pages/issues/583)
|
||||
* bump codecov/codecov-action from v1.2.2 to v1.3.1 (#585) ([e4724d9](https://github.com/peaceiris/actions-gh-pages/commit/e4724d9526ddfb09b07b596f47dda5cee7b3f14b)), closes [#585](https://github.com/peaceiris/actions-gh-pages/issues/585)
|
||||
* bump peaceiris/actions-mdbook from v1.1.13 to v1.1.14 (#561) ([87b7480](https://github.com/peaceiris/actions-gh-pages/commit/87b7480404bf3cbb23668d8a536371c585e0d5bb)), closes [#561](https://github.com/peaceiris/actions-gh-pages/issues/561)
|
||||
* bump peaceiris/workflows from v0.7.0 to v0.8.1 (#555) ([852bfb8](https://github.com/peaceiris/actions-gh-pages/commit/852bfb8e83b69c069a13f9bb310bb408886ad987)), closes [#555](https://github.com/peaceiris/actions-gh-pages/issues/555)
|
||||
* Exclude writing actions on forks (#562) ([fcead0e](https://github.com/peaceiris/actions-gh-pages/commit/fcead0e0305a6c3a2d11912f3f0d4e9ef774e864)), closes [#562](https://github.com/peaceiris/actions-gh-pages/issues/562)
|
||||
* Fix husky post-merge ([d3a97d5](https://github.com/peaceiris/actions-gh-pages/commit/d3a97d53a80c403efae6ac6f0016b0ce79e5543b))
|
||||
* Migrate husky from v4 to v5 ([47a5b8c](https://github.com/peaceiris/actions-gh-pages/commit/47a5b8c83418c019949fa830ef42017018ae45cf))
|
||||
* pin actions/checkout to v2 (#541) ([6c2db6e](https://github.com/peaceiris/actions-gh-pages/commit/6c2db6e184b7e053588817c974faa0423efaabb9)), closes [#541](https://github.com/peaceiris/actions-gh-pages/issues/541)
|
||||
* remove CODECOV_TOKEN (#552) ([584ffda](https://github.com/peaceiris/actions-gh-pages/commit/584ffda459b76cf021356be7ebc0a9528fa079ee)), closes [#552](https://github.com/peaceiris/actions-gh-pages/issues/552)
|
||||
* Remove husky and lint-staged (#572) ([0ed12e5](https://github.com/peaceiris/actions-gh-pages/commit/0ed12e5298a0c736a5f61db86b2f3fe58029d72d)), closes [#572](https://github.com/peaceiris/actions-gh-pages/issues/572)
|
||||
* remove options no longer needed (#540) ([3ba244e](https://github.com/peaceiris/actions-gh-pages/commit/3ba244e8d490e4d764c2bff8638b70ed6b690bcc)), closes [#540](https://github.com/peaceiris/actions-gh-pages/issues/540)
|
||||
* Remove skipci job ([03d2532](https://github.com/peaceiris/actions-gh-pages/commit/03d253207fbb920872c319b2a7a3f44851a4616d))
|
||||
|
||||
### deps
|
||||
|
||||
* bump @actions/glob from 0.1.0 to 0.1.1 (#534) ([2fa771f](https://github.com/peaceiris/actions-gh-pages/commit/2fa771f89e334f57b02c1320bd5b79b7f1b95654)), closes [#534](https://github.com/peaceiris/actions-gh-pages/issues/534)
|
||||
* bump ini from 1.3.5 to 1.3.8 (#547) ([75c0bf7](https://github.com/peaceiris/actions-gh-pages/commit/75c0bf7407fe3e12bfb592668c697364eb275420)), closes [#547](https://github.com/peaceiris/actions-gh-pages/issues/547)
|
||||
* bump node from 12.19.0 to 12.19.1 (#538) ([8cc3a89](https://github.com/peaceiris/actions-gh-pages/commit/8cc3a89d3b22f6f8b0cde1786aa3f482fac140a5)), closes [#538](https://github.com/peaceiris/actions-gh-pages/issues/538)
|
||||
* bump node from 12.19.1 to 12.20.0 (#543) ([4adbf1c](https://github.com/peaceiris/actions-gh-pages/commit/4adbf1cc05ecb0467bee54c608acdf765dfb7dc6)), closes [#543](https://github.com/peaceiris/actions-gh-pages/issues/543)
|
||||
* bump node from 12.20.0 to 12.20.1 (#560) ([3baf850](https://github.com/peaceiris/actions-gh-pages/commit/3baf8509207c681b15ebd4ae9de17052cca8181f)), closes [#560](https://github.com/peaceiris/actions-gh-pages/issues/560)
|
||||
* bump node from 12.20.1 to 12.21.0 (#582) ([ebe0272](https://github.com/peaceiris/actions-gh-pages/commit/ebe02723dc0bdfe52f8903275f292a6ff13fa2e1)), closes [#582](https://github.com/peaceiris/actions-gh-pages/issues/582)
|
||||
* bump node-notifier from 8.0.0 to 8.0.1 (#554) ([facb2e7](https://github.com/peaceiris/actions-gh-pages/commit/facb2e72727aff9c23812a9ab3e8cc3a871e5a4b)), closes [#554](https://github.com/peaceiris/actions-gh-pages/issues/554)
|
||||
* Bump npm to v7 (#564) ([1d14b37](https://github.com/peaceiris/actions-gh-pages/commit/1d14b37db24086561560c31ec17fa4348512c01f)), closes [#564](https://github.com/peaceiris/actions-gh-pages/issues/564)
|
||||
* update dev deps (#529) ([4c8cffc](https://github.com/peaceiris/actions-gh-pages/commit/4c8cffc919935c69a40648ca19e65bd69f4d5eb3)), closes [#529](https://github.com/peaceiris/actions-gh-pages/issues/529)
|
||||
* update devDependencies (#533) ([f0573f9](https://github.com/peaceiris/actions-gh-pages/commit/f0573f94d8d29a7a28125c3c63c717fca629b682)), closes [#533](https://github.com/peaceiris/actions-gh-pages/issues/533)
|
||||
* update devDependencies (#551) ([b427ba5](https://github.com/peaceiris/actions-gh-pages/commit/b427ba5d48d0c90dda34d4d03527f948e63102c9)), closes [#551](https://github.com/peaceiris/actions-gh-pages/issues/551)
|
||||
* update devDependencies (#558) ([4b77300](https://github.com/peaceiris/actions-gh-pages/commit/4b77300e3cea6b38498b3b046eacc33208b19cac)), closes [#558](https://github.com/peaceiris/actions-gh-pages/issues/558)
|
||||
* update devDependencies (#563) ([9b425f8](https://github.com/peaceiris/actions-gh-pages/commit/9b425f80dfe6e4a1490c82271c8006b79e0a5293)), closes [#563](https://github.com/peaceiris/actions-gh-pages/issues/563)
|
||||
* update devDependencies (#577) ([0a4c122](https://github.com/peaceiris/actions-gh-pages/commit/0a4c122ea4dcd7422a1b27c5ff29ab4c1727535c)), closes [#577](https://github.com/peaceiris/actions-gh-pages/issues/577)
|
||||
|
||||
### docs
|
||||
|
||||
* bump actions/setup-node ([1054f6a](https://github.com/peaceiris/actions-gh-pages/commit/1054f6a6b93e6a22a2875ca4e7715d4d4987891c)), closes [#542](https://github.com/peaceiris/actions-gh-pages/issues/542)
|
||||
* bump mdbook from 0.3.7 to 0.4.5 (#556) ([5b8ea1e](https://github.com/peaceiris/actions-gh-pages/commit/5b8ea1e7ee33ff43e6da01d00f5b6164bc003299)), closes [#556](https://github.com/peaceiris/actions-gh-pages/issues/556)
|
||||
* comment out GHES section ([bf41193](https://github.com/peaceiris/actions-gh-pages/commit/bf41193762776d1ed23fe1a51afd518620ddba01))
|
||||
* Improve description of destination_dir and keep_files (#569) ([e27e41d](https://github.com/peaceiris/actions-gh-pages/commit/e27e41d7cec17eaa1f5c90fb35857722f80a05c9)), closes [#569](https://github.com/peaceiris/actions-gh-pages/issues/569) [/github.com/peaceiris/actions-gh-pages/issues/324#issuecomment-779218091](https://github.com//github.com/peaceiris/actions-gh-pages/issues/324/issues/issuecomment-779218091)
|
||||
* notes of GITHUB_TOKEN for newbies ([fe996f5](https://github.com/peaceiris/actions-gh-pages/commit/fe996f57a551f9a0e979f8310f96384cdee71ce2))
|
||||
|
||||
### feat
|
||||
|
||||
* Add GHES support 🏢 (#580) ([3623583](https://github.com/peaceiris/actions-gh-pages/commit/3623583f73a5cfb5ca3632d6234b9564fed73239)), closes [#580](https://github.com/peaceiris/actions-gh-pages/issues/580) [#579](https://github.com/peaceiris/actions-gh-pages/issues/579)
|
||||
|
||||
|
||||
|
||||
## [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)
|
||||
|
||||
|
||||
|
||||
13
Dockerfile
13
Dockerfile
@@ -17,13 +17,20 @@ RUN apt-get update && \
|
||||
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
|
||||
|
||||
@@ -46,10 +53,4 @@ ENV RUNNER_USER="runner"
|
||||
ENV RUNNER_TEMP="/home/runner/work/_temp"
|
||||
ENV RUNNER_WORKSPACE="/home/runner/work/pages"
|
||||
|
||||
RUN echo "node version: $(node -v)" && \
|
||||
echo "npm version: $(npm -v)" && \
|
||||
git --version && \
|
||||
git config --global init.defaultBranch main && \
|
||||
git config --global init.defaultBranch
|
||||
|
||||
CMD [ "bash" ]
|
||||
|
||||
12
Makefile
12
Makefile
@@ -8,15 +8,3 @@ build:
|
||||
.PHONY: run
|
||||
run:
|
||||
docker-compose run --rm dev bash
|
||||
|
||||
.PHONY: ci
|
||||
ci:
|
||||
docker-compose run --rm -T dev npm ci
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
docker-compose run --rm -T dev npm test
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
docker-compose run --rm -T dev npm run all
|
||||
|
||||
35
README.md
35
README.md
@@ -24,6 +24,11 @@ The next example step will deploy `./public` directory to the remote `gh-pages`
|
||||
publish_dir: ./public
|
||||
```
|
||||
|
||||
For newbies of GitHub Actions:
|
||||
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.
|
||||
So, you can start to deploy immediately without any configuration.
|
||||
|
||||
### Supported Tokens
|
||||
|
||||
Three tokens are supported.
|
||||
@@ -52,14 +57,17 @@ All Actions runners: Linux (Ubuntu), macOS, and Windows are supported.
|
||||
|
||||
2. WIP, See [Issue #87](https://github.com/peaceiris/actions-gh-pages/issues/87)
|
||||
|
||||
<!-- ### GitHub Enterprise Server Support
|
||||
|
||||
✅️ 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. -->
|
||||
|
||||
## Table of Contents
|
||||
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
|
||||
|
||||
- [Getting started](#getting-started)
|
||||
- [Options](#options)
|
||||
- [⭐️ Set Runner's Access Token `github_token`](#%EF%B8%8F-set-runners-access-token-github_token)
|
||||
@@ -132,7 +140,7 @@ jobs:
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: '0.74.3'
|
||||
hugo-version: '0.79.1'
|
||||
|
||||
- name: Build
|
||||
run: hugo --minify
|
||||
@@ -160,7 +168,7 @@ jobs:
|
||||
|
||||
**This option is for `GITHUB_TOKEN`, not a personal access token.**
|
||||
|
||||
GitHub Actions runner automatically creates a `GITHUB_TOKEN` secret to use in your workflow. You can use the `GITHUB_TOKEN` to authenticate in a workflow run.
|
||||
A GitHub Actions runner automatically creates a `GITHUB_TOKEN` secret to use in your workflow. You can use the `GITHUB_TOKEN` to authenticate in a workflow run.
|
||||
|
||||
```yaml
|
||||
- name: Deploy
|
||||
@@ -329,7 +337,7 @@ For example:
|
||||
|
||||
### ⭐️ Keeping existing files `keep_files`
|
||||
|
||||
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 (or only in `destination_dir` if given) will be removed. 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.
|
||||
|
||||
@@ -596,12 +604,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`
|
||||
|
||||
@@ -620,7 +631,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
@@ -664,7 +675,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
@@ -712,7 +723,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
@@ -763,7 +774,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
@@ -815,7 +826,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
@@ -924,7 +935,7 @@ jobs:
|
||||
- name: Setup mdBook
|
||||
uses: peaceiris/actions-mdbook@v1
|
||||
with:
|
||||
mdbook-version: '0.3.7'
|
||||
mdbook-version: '0.4.5'
|
||||
# mdbook-version: 'latest'
|
||||
|
||||
- run: mdbook build
|
||||
@@ -997,7 +1008,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.0
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
|
||||
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
|
||||
@@ -10,7 +10,7 @@ beforeEach(() => {
|
||||
process.stdout.write = jest.fn();
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const doc: any = yaml.safeLoad(fs.readFileSync(__dirname + '/../action.yml', 'utf8'));
|
||||
const doc: any = yaml.load(fs.readFileSync(__dirname + '/../action.yml', 'utf8'));
|
||||
Object.keys(doc.inputs).forEach(name => {
|
||||
const envVar = `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;
|
||||
process.env[envVar] = doc.inputs[name]['default'];
|
||||
@@ -19,7 +19,7 @@ beforeEach(() => {
|
||||
|
||||
afterEach(() => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const doc: any = yaml.safeLoad(fs.readFileSync(__dirname + '/../action.yml', 'utf8'));
|
||||
const doc: any = yaml.load(fs.readFileSync(__dirname + '/../action.yml', 'utf8'));
|
||||
Object.keys(doc.inputs).forEach(name => {
|
||||
const envVar = `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;
|
||||
console.debug(`delete ${envVar}\t${process.env[envVar]}`);
|
||||
|
||||
@@ -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';
|
||||
|
||||
37
__tests__/set-tokens.ghes.test.ts
Normal file
37
__tests__/set-tokens.ghes.test.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import {setPersonalToken, setGithubToken} from '../src/set-tokens';
|
||||
|
||||
const OLD_ENV = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
process.env = {...OLD_ENV};
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
process.env = OLD_ENV; // Restore old environment
|
||||
});
|
||||
|
||||
describe('setGithubToken()', () => {
|
||||
test('return remote url with GITHUB_TOKEN gh-pages', () => {
|
||||
process.env.GITHUB_SERVER_URL = 'https://github.enterprise.server';
|
||||
const expected = 'https://x-access-token:GITHUB_TOKEN@github.enterprise.server/owner/repo.git';
|
||||
const test = setGithubToken(
|
||||
'GITHUB_TOKEN',
|
||||
'owner/repo',
|
||||
'gh-pages',
|
||||
'',
|
||||
'refs/heads/master',
|
||||
'push'
|
||||
);
|
||||
expect(test).toMatch(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('setPersonalToken()', () => {
|
||||
test('return remote url with personal access token', () => {
|
||||
process.env.GITHUB_SERVER_URL = 'https://github.enterprise.server';
|
||||
const expected = 'https://x-access-token:pat@github.enterprise.server/owner/repo.git';
|
||||
const test = setPersonalToken('pat', 'owner/repo');
|
||||
expect(test).toMatch(expected);
|
||||
});
|
||||
});
|
||||
File diff suppressed because one or more lines are too long
14881
package-lock.json
generated
14881
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
57
package.json
57
package.json
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"name": "actions-github-pages",
|
||||
"version": "3.7.1",
|
||||
"version": "3.8.0",
|
||||
"description": "GitHub Actions for GitHub Pages",
|
||||
"main": "lib/index.js",
|
||||
"engines": {
|
||||
"node": ">=12.16.3",
|
||||
"npm": ">=6.14.4"
|
||||
"node": ">=12.20.1",
|
||||
"npm": ">=7.5.2"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "npx husky install",
|
||||
"all": "npm run format && npm run lint && npm test",
|
||||
"lint": "eslint ./{src,__tests__}/**/*.ts",
|
||||
"lint:fix": "eslint --fix ./{src,__tests__}/**/*.ts",
|
||||
@@ -16,15 +17,7 @@
|
||||
"tsc": "tsc",
|
||||
"format": "prettier --write **/*.ts",
|
||||
"format:check": "prettier --check **/*.ts",
|
||||
"release": "standard-version",
|
||||
"update-deps": "(git diff 'HEAD@{1}' --name-only | grep 'package-lock.json' > /dev/null) && npm ci || :"
|
||||
},
|
||||
"husky": {
|
||||
"skipCI": true,
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged",
|
||||
"post-merge": "npm run update-deps; git remote prune origin"
|
||||
}
|
||||
"release": "standard-version"
|
||||
},
|
||||
"lint-staged": {
|
||||
"{src,__tests__}/**/*.ts": [
|
||||
@@ -32,7 +25,7 @@
|
||||
"eslint"
|
||||
],
|
||||
"README.md": [
|
||||
"npx doctoc@1.4.0 --github"
|
||||
"npx doctoc@2.0.0 --github"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
@@ -57,30 +50,30 @@
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/exec": "^1.0.4",
|
||||
"@actions/github": "^4.0.0",
|
||||
"@actions/glob": "^0.1.0",
|
||||
"@actions/glob": "^0.1.1",
|
||||
"@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/jest": "^26.0.20",
|
||||
"@types/js-yaml": "^4.0.0",
|
||||
"@types/node": "~12",
|
||||
"@typescript-eslint/eslint-plugin": "^4.4.0",
|
||||
"@typescript-eslint/parser": "^4.4.0",
|
||||
"@vercel/ncc": "^0.24.1",
|
||||
"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.3",
|
||||
"jest-circus": "^26.5.3",
|
||||
"js-yaml": "^3.14.0",
|
||||
"lint-staged": "^10.4.0",
|
||||
"prettier": "2.1.2",
|
||||
"standard-version": "^9.0.0",
|
||||
"ts-jest": "^26.4.1",
|
||||
"typescript": "^4.0.3"
|
||||
"@typescript-eslint/eslint-plugin": "^4.16.1",
|
||||
"@typescript-eslint/parser": "^4.16.1",
|
||||
"@vercel/ncc": "^0.27.0",
|
||||
"eslint": "^7.21.0",
|
||||
"eslint-config-prettier": "^8.1.0",
|
||||
"eslint-plugin-jest": "^24.1.5",
|
||||
"eslint-plugin-prettier": "^3.3.1",
|
||||
"husky": "^5.1.3",
|
||||
"jest": "^26.6.3",
|
||||
"jest-circus": "^26.6.3",
|
||||
"js-yaml": "^4.0.0",
|
||||
"lint-staged": "^10.5.4",
|
||||
"prettier": "2.2.1",
|
||||
"standard-version": "^9.1.1",
|
||||
"ts-jest": "^26.5.3",
|
||||
"typescript": "^4.2.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
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 {URL} from 'url';
|
||||
import {Inputs, CmdResult} from './interfaces';
|
||||
import {createDir} from './utils';
|
||||
import {cp} from 'shelljs';
|
||||
import {cp, rm} from 'shelljs';
|
||||
|
||||
export async function createBranchForce(branch: string): Promise<void> {
|
||||
await exec.exec('git', ['init']);
|
||||
@@ -14,7 +14,12 @@ export async function createBranchForce(branch: string): Promise<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
export function getServerUrl(): URL {
|
||||
return new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com');
|
||||
}
|
||||
|
||||
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> => {
|
||||
@@ -25,10 +30,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;
|
||||
}
|
||||
|
||||
@@ -39,19 +45,19 @@ export async function copyAssets(
|
||||
): Promise<void> {
|
||||
core.info(`[INFO] prepare publishing assets`);
|
||||
|
||||
if (fs.existsSync(destDir) === false) {
|
||||
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 .git`);
|
||||
io.rmRF(dotGitPath);
|
||||
core.info(`[INFO] delete ${dotGitPath}`);
|
||||
rm('-rf', dotGitPath);
|
||||
}
|
||||
|
||||
core.info(`[INFO] copy ${publishDir} to ${destDir}`);
|
||||
cp('-RfL', [`${publishDir}/*`], destDir);
|
||||
cp('-RfL', [`${publishDir}/*`, `${publishDir}/.*`], destDir);
|
||||
|
||||
await deleteExcludedAssets(destDir, excludeAssets);
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ const cpSpawnSync = require('child_process').spawnSync;
|
||||
const cpexec = require('child_process').execFileSync;
|
||||
import {Inputs} from './interfaces';
|
||||
import {getHomeDir} from './utils';
|
||||
import {getServerUrl} from './git-utils';
|
||||
|
||||
export async function setSSHKey(inps: Inputs, publishRepo: string): Promise<string> {
|
||||
core.info('[INFO] setup SSH deploy key');
|
||||
@@ -20,10 +21,12 @@ export async function setSSHKey(inps: Inputs, publishRepo: string): Promise<stri
|
||||
await exec.exec('chmod', ['700', sshDir]);
|
||||
|
||||
const knownHosts = path.join(sshDir, 'known_hosts');
|
||||
// ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts on Ubuntu
|
||||
// ssh-keyscan -t rsa github.com or serverUrl >> ~/.ssh/known_hosts on Ubuntu
|
||||
const cmdSSHkeyscanOutput = `\
|
||||
# github.com:22 SSH-2.0-babeld-1f0633a6
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
|
||||
# ${getServerUrl().host}.com:22 SSH-2.0-babeld-1f0633a6
|
||||
${
|
||||
getServerUrl().host
|
||||
} ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
|
||||
`;
|
||||
fs.writeFileSync(knownHosts, cmdSSHkeyscanOutput + '\n');
|
||||
core.info(`[INFO] wrote ${knownHosts}`);
|
||||
@@ -36,8 +39,8 @@ github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXY
|
||||
|
||||
const sshConfigPath = path.join(sshDir, 'config');
|
||||
const sshConfigContent = `\
|
||||
Host github
|
||||
HostName github.com
|
||||
Host ${getServerUrl().host}
|
||||
HostName ${getServerUrl().host}
|
||||
IdentityFile ~/.ssh/github
|
||||
User git
|
||||
`;
|
||||
@@ -60,7 +63,7 @@ Watch https://github.com/peaceiris/actions-gh-pages/issues/87
|
||||
core.exportVariable('SSH_AUTH_SOCK', '/tmp/ssh-auth.sock');
|
||||
await exec.exec('ssh-add', [idRSA]);
|
||||
|
||||
return `git@github.com:${publishRepo}.git`;
|
||||
return `git@${getServerUrl().host}:${publishRepo}.git`;
|
||||
}
|
||||
|
||||
export function setGithubToken(
|
||||
@@ -94,12 +97,12 @@ This operation is prohibited to protect your contents
|
||||
}
|
||||
}
|
||||
|
||||
return `https://x-access-token:${githubToken}@github.com/${publishRepo}.git`;
|
||||
return `https://x-access-token:${githubToken}@${getServerUrl().host}/${publishRepo}.git`;
|
||||
}
|
||||
|
||||
export function setPersonalToken(personalToken: string, publishRepo: string): string {
|
||||
core.info('[INFO] setup personal access token');
|
||||
return `https://x-access-token:${personalToken}@github.com/${publishRepo}.git`;
|
||||
return `https://x-access-token:${personalToken}@${getServerUrl().host}/${publishRepo}.git`;
|
||||
}
|
||||
|
||||
export function getPublishRepo(externalRepository: string, owner: string, repo: string): string {
|
||||
|
||||
@@ -1,64 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Basic Options */
|
||||
// "incremental": true, /* Enable incremental compilation */
|
||||
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||
// "allowJs": true, /* Allow javascript files to be compiled. */
|
||||
// "checkJs": true, /* Report errors in .js files. */
|
||||
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
||||
// "declaration": true, /* Generates corresponding '.d.ts' file. */
|
||||
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
|
||||
"sourceMap": true, /* Generates corresponding '.map' file. */
|
||||
// "outFile": "./", /* Concatenate and emit output to single file. */
|
||||
"outDir": "./lib", /* Redirect output structure to the directory. */
|
||||
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||
// "composite": true, /* Enable project compilation */
|
||||
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
|
||||
"removeComments": true, /* Do not emit comments to output. */
|
||||
// "noEmit": true, /* Do not emit outputs. */
|
||||
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
|
||||
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
||||
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
|
||||
// "strictNullChecks": true, /* Enable strict null checks. */
|
||||
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
|
||||
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
|
||||
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
|
||||
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
|
||||
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
||||
|
||||
/* Additional Checks */
|
||||
// "noUnusedLocals": true, /* Report errors on unused locals. */
|
||||
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
||||
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
|
||||
|
||||
/* Module Resolution Options */
|
||||
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
|
||||
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
|
||||
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
||||
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
// "types": [], /* Type declaration files to be included in compilation. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
|
||||
/* Source Map Options */
|
||||
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
||||
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
||||
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||
|
||||
"lib": ["ES2019"],
|
||||
"module": "commonjs",
|
||||
"target": "ES2019",
|
||||
"sourceMap": true,
|
||||
"outDir": "./lib",
|
||||
"rootDir": "./src",
|
||||
"removeComments": true,
|
||||
"strict": true,
|
||||
"noImplicitAny": true,
|
||||
"esModuleInterop": true,
|
||||
"resolveJsonModule": true
|
||||
},
|
||||
"exclude": ["node_modules", "**/*.test.ts"]
|
||||
|
||||
Reference in New Issue
Block a user