Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25ae83ba65 | ||
|
|
ce50d1857c | ||
|
|
46146058b6 | ||
|
|
5d8f5a15f7 | ||
|
|
fab0628782 | ||
|
|
73ceb68759 | ||
|
|
162bc9ee63 | ||
|
|
b76751b9ee | ||
|
|
dc1169c5ba | ||
|
|
ade8887479 | ||
|
|
2a9e88ed57 | ||
|
|
a65bea57e7 | ||
|
|
9fd8cd10e7 | ||
|
|
fd6e5fc7ce | ||
|
|
acd0462710 | ||
|
|
9faed51ce9 | ||
|
|
7c45cb42ca | ||
|
|
ac39f89062 | ||
|
|
dd0b5dfc69 | ||
|
|
140391da91 | ||
|
|
50988c17ae | ||
|
|
a4da635d8c | ||
|
|
56fe697825 | ||
|
|
bc18026d43 | ||
|
|
ce61f4bf52 | ||
|
|
b81e21a3dc | ||
|
|
79cc24d126 |
14
.github/workflows/pages-status-check.yml
vendored
Normal file
14
.github/workflows/pages-status-check.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
name: Check Pages Status
|
||||||
|
|
||||||
|
on: page_build
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pages-status-check:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- name: check status
|
||||||
|
run: |
|
||||||
|
status = '${{ github.event.build.status }}'
|
||||||
|
errormsg = '${{ github.event.build.error.message }}'
|
||||||
|
assert status == 'built', 'Status: {status}\nError: {errormsg}'.format(status, errormsg)
|
||||||
|
shell: python
|
||||||
8
.github/workflows/test-action.yml
vendored
8
.github/workflows/test-action.yml
vendored
@@ -41,6 +41,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version: '${{ steps.nvm.outputs.NVMRC }}'
|
node-version: '${{ steps.nvm.outputs.NVMRC }}'
|
||||||
|
|
||||||
|
- run: npm i -g npm
|
||||||
|
|
||||||
|
- name: Dump version
|
||||||
|
run: |
|
||||||
|
node -v
|
||||||
|
npm --version
|
||||||
|
git --version
|
||||||
|
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
|
|
||||||
- name: Remove lint-staged husky
|
- name: Remove lint-staged husky
|
||||||
|
|||||||
9
.github/workflows/test.yml
vendored
9
.github/workflows/test.yml
vendored
@@ -29,7 +29,6 @@ jobs:
|
|||||||
- 'macos-latest'
|
- 'macos-latest'
|
||||||
- 'windows-latest'
|
- 'windows-latest'
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Read .nvmrc
|
- name: Read .nvmrc
|
||||||
@@ -41,6 +40,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version: '${{ steps.nvm.outputs.NVMRC }}'
|
node-version: '${{ steps.nvm.outputs.NVMRC }}'
|
||||||
|
|
||||||
|
- run: npm i -g npm
|
||||||
|
|
||||||
|
- name: Dump version
|
||||||
|
run: |
|
||||||
|
node -v
|
||||||
|
npm --version
|
||||||
|
git --version
|
||||||
|
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
|
|
||||||
- name: Run prettier
|
- name: Run prettier
|
||||||
|
|||||||
73
CHANGELOG.md
73
CHANGELOG.md
@@ -2,6 +2,79 @@
|
|||||||
|
|
||||||
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.6.0-0](https://github.com/peaceiris/actions-gh-pages/compare/v3.5.0...v3.6.0-0) (2020-03-06)
|
||||||
|
|
||||||
|
|
||||||
|
### feat
|
||||||
|
|
||||||
|
* Use rsync instead of io.cp() ([5d8f5a1](https://github.com/peaceiris/actions-gh-pages/commit/5d8f5a15f78784a868a9744f3b343232dbcbd918))
|
||||||
|
|
||||||
|
### fix
|
||||||
|
|
||||||
|
* Use io.cp() on windows ([4614605](https://github.com/peaceiris/actions-gh-pages/commit/46146058b69b014134a7d788299d643e83cc3176))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [3.5.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.4.1...v3.5.0) (2020-03-06)
|
||||||
|
|
||||||
|
|
||||||
|
### deps
|
||||||
|
|
||||||
|
* bump node 12.15.0 to 12.16.1 (#142) ([ade8887](https://github.com/peaceiris/actions-gh-pages/commit/ade88874791f5b67d0c475d6dffb5219ed4407f1)), closes [#142](https://github.com/peaceiris/actions-gh-pages/issues/142)
|
||||||
|
|
||||||
|
### docs
|
||||||
|
|
||||||
|
* improve description of enable_jekyll=disable_nojekyll (see #130) (#132) ([b76751b](https://github.com/peaceiris/actions-gh-pages/commit/b76751b9eefaaf771ce31d8ef3c69a8d907f535d)), closes [#130](https://github.com/peaceiris/actions-gh-pages/issues/130) [#132](https://github.com/peaceiris/actions-gh-pages/issues/132) [#130](https://github.com/peaceiris/actions-gh-pages/issues/130)
|
||||||
|
|
||||||
|
### feat
|
||||||
|
|
||||||
|
* Add enable_jekyll (#143) ([dc1169c](https://github.com/peaceiris/actions-gh-pages/commit/dc1169c5baf9ed1205d6f0f9c9ce0e6d26afb164)), closes [#143](https://github.com/peaceiris/actions-gh-pages/issues/143) [#130](https://github.com/peaceiris/actions-gh-pages/issues/130) [#132](https://github.com/peaceiris/actions-gh-pages/issues/132)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [3.5.0-0](https://github.com/peaceiris/actions-gh-pages/compare/v3.4.1...v3.5.0-0) (2020-03-06)
|
||||||
|
|
||||||
|
|
||||||
|
### deps
|
||||||
|
|
||||||
|
* bump node 12.15.0 to 12.16.1 (#142) ([ade8887](https://github.com/peaceiris/actions-gh-pages/commit/ade88874791f5b67d0c475d6dffb5219ed4407f1)), closes [#142](https://github.com/peaceiris/actions-gh-pages/issues/142)
|
||||||
|
|
||||||
|
### feat
|
||||||
|
|
||||||
|
* Add enable_jekyll ([1fff2ca](https://github.com/peaceiris/actions-gh-pages/commit/1fff2ca84a6b42067a86c6229774aa5e2891a661))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [3.4.1](https://github.com/peaceiris/actions-gh-pages/compare/v3.4.0...v3.4.1) (2020-03-06)
|
||||||
|
|
||||||
|
|
||||||
|
### ci
|
||||||
|
|
||||||
|
* Add deployment status check workflow (#125) ([b81e21a](https://github.com/peaceiris/actions-gh-pages/commit/b81e21a3dc037a4037bef6bd44bc1bee36d3626f)), closes [#125](https://github.com/peaceiris/actions-gh-pages/issues/125)
|
||||||
|
|
||||||
|
### deps
|
||||||
|
|
||||||
|
* bump @actions/core from 1.2.2 to 1.2.3 (#140) ([ac39f89](https://github.com/peaceiris/actions-gh-pages/commit/ac39f890622b7f6950b6eb9cc43666c033277fb1)), closes [#140](https://github.com/peaceiris/actions-gh-pages/issues/140)
|
||||||
|
* bump @types/node from 12.12.28 to 12.12.29 (#136) ([dd0b5df](https://github.com/peaceiris/actions-gh-pages/commit/dd0b5dfc6981e11137b2a1fad785d5342c0b5bc0)), closes [#136](https://github.com/peaceiris/actions-gh-pages/issues/136)
|
||||||
|
* bump @typescript-eslint/eslint-plugin from 2.20.0 to 2.21.0 (#128) ([ce61f4b](https://github.com/peaceiris/actions-gh-pages/commit/ce61f4bf52b32c725cd5837e7b56d7a587a32af6)), closes [#128](https://github.com/peaceiris/actions-gh-pages/issues/128)
|
||||||
|
* bump @typescript-eslint/eslint-plugin from 2.21.0 to 2.22.0 (#139) ([9faed51](https://github.com/peaceiris/actions-gh-pages/commit/9faed51ce97835a66741dc3d9368dc3402c12174)), closes [#139](https://github.com/peaceiris/actions-gh-pages/issues/139)
|
||||||
|
* bump @typescript-eslint/parser from 2.20.0 to 2.21.0 (#127) ([bc18026](https://github.com/peaceiris/actions-gh-pages/commit/bc18026d43cd46451191723b7502ac0057177f5c)), closes [#127](https://github.com/peaceiris/actions-gh-pages/issues/127)
|
||||||
|
* bump @typescript-eslint/parser from 2.21.0 to 2.22.0 (#138) ([7c45cb4](https://github.com/peaceiris/actions-gh-pages/commit/7c45cb42cade3f3bc0dab3c894044809b8ed4b4a)), closes [#138](https://github.com/peaceiris/actions-gh-pages/issues/138)
|
||||||
|
* bump eslint-plugin-jest from 23.8.0 to 23.8.1 (#134) ([50988c1](https://github.com/peaceiris/actions-gh-pages/commit/50988c17ae540cf540cac254aeae22e8f1cbad46)), closes [#134](https://github.com/peaceiris/actions-gh-pages/issues/134)
|
||||||
|
* bump eslint-plugin-jest from 23.8.1 to 23.8.2 (#141) ([acd0462](https://github.com/peaceiris/actions-gh-pages/commit/acd04627103a2d4d7620edca1bb74897a8180a84)), closes [#141](https://github.com/peaceiris/actions-gh-pages/issues/141)
|
||||||
|
* bump lint-staged from 10.0.7 to 10.0.8 (#129) ([56fe697](https://github.com/peaceiris/actions-gh-pages/commit/56fe6978255c0fb44f70c59879daca5984de7ac4)), closes [#129](https://github.com/peaceiris/actions-gh-pages/issues/129)
|
||||||
|
* bump typescript from 3.8.2 to 3.8.3 (#135) ([140391d](https://github.com/peaceiris/actions-gh-pages/commit/140391da91a8b458871e276b87abbfe7c0557c8c)), closes [#135](https://github.com/peaceiris/actions-gh-pages/issues/135)
|
||||||
|
|
||||||
|
### docs
|
||||||
|
|
||||||
|
* Add Docusaurus example (#131) ([a4da635](https://github.com/peaceiris/actions-gh-pages/commit/a4da635d8c553a327144267b3826e838aefb1561)), closes [#131](https://github.com/peaceiris/actions-gh-pages/issues/131)
|
||||||
|
|
||||||
|
### test
|
||||||
|
|
||||||
|
* Add testing for set-tokens.ts (#126) ([fd6e5fc](https://github.com/peaceiris/actions-gh-pages/commit/fd6e5fc7ce07cfd94a2311f7ac112bd797c3aee7)), closes [#126](https://github.com/peaceiris/actions-gh-pages/issues/126)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [3.4.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.3.0...v3.4.0) (2020-02-24)
|
# [3.4.0](https://github.com/peaceiris/actions-gh-pages/compare/v3.3.0...v3.4.0) (2020-02-24)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,13 @@ RUN apt-get update && \
|
|||||||
ca-certificates \
|
ca-certificates \
|
||||||
wget \
|
wget \
|
||||||
ssh \
|
ssh \
|
||||||
|
rsync \
|
||||||
vim && \
|
vim && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
|
npm i -g npm
|
||||||
|
|
||||||
WORKDIR /git
|
WORKDIR /git
|
||||||
ENV GIT_VERSION="2.25.0"
|
ENV GIT_VERSION="2.25.1"
|
||||||
RUN wget -q "https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz" && \
|
RUN wget -q "https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz" && \
|
||||||
tar -zxf "./v${GIT_VERSION}.tar.gz" && \
|
tar -zxf "./v${GIT_VERSION}.tar.gz" && \
|
||||||
rm "./v${GIT_VERSION}.tar.gz" && \
|
rm "./v${GIT_VERSION}.tar.gz" && \
|
||||||
|
|||||||
67
README.md
67
README.md
@@ -67,7 +67,7 @@ Three tokens are supported.
|
|||||||
- [⭐️ `deploy_key`](#%EF%B8%8F-deploy_key)
|
- [⭐️ `deploy_key`](#%EF%B8%8F-deploy_key)
|
||||||
- [⭐️ `personal_token`](#%EF%B8%8F-personal_token)
|
- [⭐️ `personal_token`](#%EF%B8%8F-personal_token)
|
||||||
- [⭐️ CNAME](#%EF%B8%8F-cname)
|
- [⭐️ CNAME](#%EF%B8%8F-cname)
|
||||||
- [⭐️ Disable `.nojekyll`](#%EF%B8%8F-disable-nojekyll)
|
- [⭐️ Enable Jekyll](#%EF%B8%8F-enable-jekyll)
|
||||||
- [⭐️ Allow empty commits](#%EF%B8%8F-allow-empty-commits)
|
- [⭐️ Allow empty commits](#%EF%B8%8F-allow-empty-commits)
|
||||||
- [⭐️ Keeping existing files](#%EF%B8%8F-keeping-existing-files)
|
- [⭐️ Keeping existing files](#%EF%B8%8F-keeping-existing-files)
|
||||||
- [⭐️ Deploy to external repository](#%EF%B8%8F-deploy-to-external-repository)
|
- [⭐️ Deploy to external repository](#%EF%B8%8F-deploy-to-external-repository)
|
||||||
@@ -83,6 +83,7 @@ Three tokens are supported.
|
|||||||
- [⭐️ Gatsby](#%EF%B8%8F-gatsby)
|
- [⭐️ Gatsby](#%EF%B8%8F-gatsby)
|
||||||
- [⭐️ React and Next](#%EF%B8%8F-react-and-next)
|
- [⭐️ React and Next](#%EF%B8%8F-react-and-next)
|
||||||
- [⭐️ Vue and Nuxt](#%EF%B8%8F-vue-and-nuxt)
|
- [⭐️ Vue and Nuxt](#%EF%B8%8F-vue-and-nuxt)
|
||||||
|
- [⭐️ Docusaurus](#%EF%B8%8F-docusaurus)
|
||||||
- [⭐️ Static Site Generators with Python](#%EF%B8%8F-static-site-generators-with-python)
|
- [⭐️ Static Site Generators with Python](#%EF%B8%8F-static-site-generators-with-python)
|
||||||
- [⭐️ mdBook (Rust)](#%EF%B8%8F-mdbook-rust)
|
- [⭐️ mdBook (Rust)](#%EF%B8%8F-mdbook-rust)
|
||||||
- [⭐️ Flutter Web](#%EF%B8%8F-flutter-web)
|
- [⭐️ Flutter Web](#%EF%B8%8F-flutter-web)
|
||||||
@@ -230,11 +231,14 @@ For more details about `CNAME`, read the official documentation: [Managing a cus
|
|||||||
cname: github.com
|
cname: github.com
|
||||||
```
|
```
|
||||||
|
|
||||||
### ⭐️ Disable `.nojekyll`
|
### ⭐️ Enable Jekyll
|
||||||
|
|
||||||
By default, this action adds the `.nojekyll` file to only the `master` and `gh-pages` branches. When the file already exists, this action does nothing.
|
If you want GitHub Pages to process the site with the static site generator Jekyll, set `enable_jekyll` to true.
|
||||||
|
|
||||||
|
By default, this action signals to GitHub Pages that the site shall not be processed with Jekyll. This is done by adding an empty `.nojekyll` file when publishing to the master or gh-pages branch. When a `.nojekyll` file already exists, this action does nothing.
|
||||||
|
|
||||||
|
Bypassing Jekyll makes the deployment faster and is necessary if you are deploying files or directories that start with underscores, since Jekyll considers these to be special resources and does not copy them to the final site. You only need to set `enable_jekyll` to true when you want to deploy a Jekyll-powered website and let GitHub Pages do the Jekyll processing.
|
||||||
|
|
||||||
To disable this behavior, we can set the `disable_nojekyll` option to `true`.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
@@ -242,7 +246,7 @@ To disable this behavior, we can set the `disable_nojekyll` option to `true`.
|
|||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
publish_dir: ./public
|
publish_dir: ./public
|
||||||
disable_nojekyll: true
|
enable_jekyll: true
|
||||||
```
|
```
|
||||||
|
|
||||||
For more details about `.nojekyll`: [Bypassing Jekyll on GitHub Pages - The GitHub Blog](https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/)
|
For more details about `.nojekyll`: [Bypassing Jekyll on GitHub Pages - The GitHub Blog](https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/)
|
||||||
@@ -635,6 +639,59 @@ jobs:
|
|||||||
publish_dir: ./dist
|
publish_dir: ./dist
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### ⭐️ Docusaurus
|
||||||
|
|
||||||
|
An example for pages created using [Docusaurus](https://docusaurus.io/).
|
||||||
|
|
||||||
|
Examples where this is being used:
|
||||||
|
|
||||||
|
- [Mittens](https://github.com/ExpediaGroup/mittens)
|
||||||
|
- [graphql-kotlin](https://github.com/ExpediaGroup/graphql-kotlin)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: github pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- 'docs/**'
|
||||||
|
- 'website/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
|
||||||
|
- name: Cache dependencies
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.npm
|
||||||
|
key: ${{ runner.os }}-node-${{ hashFiles('website/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-node-
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cd website
|
||||||
|
npm ci
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# use the projectName from your siteConfig.js file: https://docusaurus.io/docs/en/site-config#projectname-string
|
||||||
|
publish_dir: ./website/build/<projectName>
|
||||||
|
```
|
||||||
|
|
||||||
### ⭐️ Static Site Generators with Python
|
### ⭐️ Static Site Generators with Python
|
||||||
|
|
||||||
[pelican], [MkDocs], [sphinx], etc.
|
[pelican], [MkDocs], [sphinx], etc.
|
||||||
|
|||||||
@@ -1,37 +1,107 @@
|
|||||||
// import * as main from '../src/main';
|
// import * as main from '../src/main';
|
||||||
import {Inputs} from '../src/interfaces';
|
import {Inputs} from '../src/interfaces';
|
||||||
import {getInputs} from '../src/get-inputs';
|
import {showInputs, getInputs} from '../src/get-inputs';
|
||||||
|
import os from 'os';
|
||||||
|
import fs from 'fs';
|
||||||
|
import yaml from 'js-yaml';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
|
process.stdout.write = jest.fn();
|
||||||
|
|
||||||
|
const doc = yaml.safeLoad(
|
||||||
|
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'];
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
delete process.env['INPUT_DEPLOY_KEY'];
|
const doc = yaml.safeLoad(
|
||||||
delete process.env['INPUT_GITHUB_TOKEN'];
|
fs.readFileSync(__dirname + '/../action.yml', 'utf8')
|
||||||
delete process.env['INPUT_PERSONAL_TOKEN'];
|
);
|
||||||
delete process.env['INPUT_PUBLISH_BRANCH'];
|
Object.keys(doc.inputs).forEach(name => {
|
||||||
delete process.env['INPUT_PUBLISH_DIR'];
|
const envVar = `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;
|
||||||
delete process.env['INPUT_EXTERNAL_REPOSITORY'];
|
console.debug(`delete ${envVar}\t${process.env[envVar]}`);
|
||||||
delete process.env['INPUT_ALLOW_EMPTY_COMMIT'];
|
delete process.env[envVar];
|
||||||
delete process.env['INPUT_KEEP_FILES'];
|
});
|
||||||
delete process.env['INPUT_FORCE_ORPHAN'];
|
});
|
||||||
delete process.env['INPUT_USER_NAME'];
|
|
||||||
delete process.env['INPUT_USER_EMAIL'];
|
// Assert that process.stdout.write calls called only with the given arguments.
|
||||||
delete process.env['INPUT_COMMIT_MESSAGE'];
|
// cf. https://github.com/actions/toolkit/blob/8b0300129f08728419263b016de8630f1d426d5f/packages/core/__tests__/core.test.ts
|
||||||
delete process.env['INPUT_TAG_NAME'];
|
function assertWriteCalls(calls: string[]): void {
|
||||||
delete process.env['INPUT_TAG_MESSAGE'];
|
expect(process.stdout.write).toHaveBeenCalledTimes(calls.length);
|
||||||
delete process.env['INPUT_DISABLE_NOJEKYLL'];
|
|
||||||
delete process.env['INPUT_CNAME'];
|
for (let i = 0; i < calls.length; i++) {
|
||||||
|
expect(process.stdout.write).toHaveBeenNthCalledWith(i + 1, calls[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getInputsLog(authMethod: string, inps: Inputs): string {
|
||||||
|
return `\
|
||||||
|
[INFO] ${authMethod}: true
|
||||||
|
[INFO] PublishBranch: ${inps.PublishBranch}
|
||||||
|
[INFO] PublishDir: ${inps.PublishDir}
|
||||||
|
[INFO] ExternalRepository: ${inps.ExternalRepository}
|
||||||
|
[INFO] AllowEmptyCommit: ${inps.AllowEmptyCommit}
|
||||||
|
[INFO] KeepFiles: ${inps.KeepFiles}
|
||||||
|
[INFO] ForceOrphan: ${inps.ForceOrphan}
|
||||||
|
[INFO] UserName: ${inps.UserName}
|
||||||
|
[INFO] UserEmail: ${inps.UserEmail}
|
||||||
|
[INFO] CommitMessage: ${inps.CommitMessage}
|
||||||
|
[INFO] TagName: ${inps.TagName}
|
||||||
|
[INFO] TagMessage: ${inps.TagMessage}
|
||||||
|
[INFO] EnableJekyll (DisableNoJekyll): ${inps.DisableNoJekyll}
|
||||||
|
[INFO] CNAME: ${inps.CNAME}
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('showInputs()', () => {
|
||||||
|
// eslint-disable-next-line jest/expect-expect
|
||||||
|
test('print all inputs DeployKey', () => {
|
||||||
|
process.env['INPUT_DEPLOY_KEY'] = 'test_deploy_key';
|
||||||
|
|
||||||
|
const inps: Inputs = getInputs();
|
||||||
|
showInputs(inps);
|
||||||
|
|
||||||
|
const authMethod = 'DeployKey';
|
||||||
|
const test = getInputsLog(authMethod, inps);
|
||||||
|
assertWriteCalls([`${test}${os.EOL}`]);
|
||||||
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line jest/expect-expect
|
||||||
|
test('print all inputs GithubToken', () => {
|
||||||
|
delete process.env['INPUT_DEPLOY_KEY'];
|
||||||
|
process.env['INPUT_GITHUB_TOKEN'] = 'test_github_token';
|
||||||
|
|
||||||
|
const inps: Inputs = getInputs();
|
||||||
|
showInputs(inps);
|
||||||
|
|
||||||
|
const authMethod = 'GithubToken';
|
||||||
|
const test = getInputsLog(authMethod, inps);
|
||||||
|
assertWriteCalls([`${test}${os.EOL}`]);
|
||||||
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line jest/expect-expect
|
||||||
|
test('print all inputs PersonalToken', () => {
|
||||||
|
delete process.env['INPUT_DEPLOY_KEY'];
|
||||||
|
delete process.env['INPUT_GITHUB_TOKEN'];
|
||||||
|
process.env['INPUT_PERSONAL_TOKEN'] = 'test_personal_token';
|
||||||
|
|
||||||
|
const inps: Inputs = getInputs();
|
||||||
|
showInputs(inps);
|
||||||
|
|
||||||
|
const authMethod = 'PersonalToken';
|
||||||
|
const test = getInputsLog(authMethod, inps);
|
||||||
|
assertWriteCalls([`${test}${os.EOL}`]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getInputs()', () => {
|
describe('getInputs()', () => {
|
||||||
test('get default inputs', () => {
|
test('get default inputs', () => {
|
||||||
process.env['INPUT_DEPLOY_KEY'] = 'test_deploy_key';
|
process.env['INPUT_DEPLOY_KEY'] = 'test_deploy_key';
|
||||||
// process.env['INPUT_GITHUB_TOKEN'] = 'test_github_token';
|
|
||||||
// process.env['INPUT_PERSONAL_TOKEN'] = 'test_personal_token';
|
|
||||||
process.env['INPUT_PUBLISH_BRANCH'] = 'gh-pages';
|
|
||||||
process.env['INPUT_PUBLISH_DIR'] = 'public';
|
|
||||||
|
|
||||||
const inps: Inputs = getInputs();
|
const inps: Inputs = getInputs();
|
||||||
|
|
||||||
@@ -90,4 +160,14 @@ describe('getInputs()', () => {
|
|||||||
expect(inps.DisableNoJekyll).toBe(true);
|
expect(inps.DisableNoJekyll).toBe(true);
|
||||||
expect(inps.CNAME).toMatch('github.com');
|
expect(inps.CNAME).toMatch('github.com');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('throw error enable_jekyll or disable_nojekyll', () => {
|
||||||
|
process.env['INPUT_DEPLOY_KEY'] = 'test_deploy_key';
|
||||||
|
process.env['INPUT_ENABLE_JEKYLL'] = 'true';
|
||||||
|
process.env['INPUT_DISABLE_NOJEKYLL'] = 'true';
|
||||||
|
|
||||||
|
expect(() => {
|
||||||
|
getInputs();
|
||||||
|
}).toThrowError('Use either of enable_jekyll or disable_nojekyll');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
// import {run} from '../src/main';
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.resetModules();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
delete process.env['INPUT_DEPLOY_KEY'];
|
|
||||||
delete process.env['INPUT_GITHUB_TOKEN'];
|
|
||||||
delete process.env['INPUT_PERSONAL_TOKEN'];
|
|
||||||
delete process.env['INPUT_PUBLISH_BRANCH'];
|
|
||||||
delete process.env['INPUT_PUBLISH_DIR'];
|
|
||||||
delete process.env['INPUT_EXTERNAL_REPOSITORY'];
|
|
||||||
delete process.env['INPUT_ALLOW_EMPTY_COMMIT'];
|
|
||||||
delete process.env['INPUT_KEEP_FILES'];
|
|
||||||
delete process.env['INPUT_FORCE_ORPHAN'];
|
|
||||||
delete process.env['INPUT_USER_NAME'];
|
|
||||||
delete process.env['INPUT_USER_EMAIL'];
|
|
||||||
delete process.env['INPUT_COMMIT_MESSAGE'];
|
|
||||||
delete process.env['INPUT_TAG_NAME'];
|
|
||||||
delete process.env['INPUT_TAG_MESSAGE'];
|
|
||||||
delete process.env['INPUT_TAG_OVERWRITE'];
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Integration testing run()', () => {
|
|
||||||
test('succeed in pushing using deploy key', async () => {
|
|
||||||
// process.env['INPUT_DEPLOY_KEY'] = 'test_deploy_key';
|
|
||||||
// process.env['GITHUB_REPOSITORY'] = 'owner/repo';
|
|
||||||
// const exitcode = await run();
|
|
||||||
expect(0).toBe(0);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
105
__tests__/set-tokens.test.ts
Normal file
105
__tests__/set-tokens.test.ts
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
import {
|
||||||
|
getPublishRepo,
|
||||||
|
setPersonalToken,
|
||||||
|
setGithubToken
|
||||||
|
} from '../src/set-tokens';
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
});
|
||||||
|
|
||||||
|
// afterEach(() => {
|
||||||
|
|
||||||
|
// });
|
||||||
|
|
||||||
|
describe('getPublishRepo()', () => {
|
||||||
|
test('return repository name', () => {
|
||||||
|
const test = getPublishRepo('', 'owner', 'repo');
|
||||||
|
expect(test).toMatch('owner/repo');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('return external repository name', () => {
|
||||||
|
const test = getPublishRepo('extOwner/extRepo', 'owner', 'repo');
|
||||||
|
expect(test).toMatch('extOwner/extRepo');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('setGithubToken()', () => {
|
||||||
|
test('return remote url with GITHUB_TOKEN gh-pages', () => {
|
||||||
|
const expected =
|
||||||
|
'https://x-access-token:GITHUB_TOKEN@github.com/owner/repo.git';
|
||||||
|
const test = setGithubToken(
|
||||||
|
'GITHUB_TOKEN',
|
||||||
|
'owner/repo',
|
||||||
|
'gh-pages',
|
||||||
|
'',
|
||||||
|
'refs/heads/master',
|
||||||
|
'push'
|
||||||
|
);
|
||||||
|
expect(test).toMatch(expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('return remote url with GITHUB_TOKEN master', () => {
|
||||||
|
const expected =
|
||||||
|
'https://x-access-token:GITHUB_TOKEN@github.com/owner/repo.git';
|
||||||
|
const test = setGithubToken(
|
||||||
|
'GITHUB_TOKEN',
|
||||||
|
'owner/repo',
|
||||||
|
'master',
|
||||||
|
'',
|
||||||
|
'refs/heads/source',
|
||||||
|
'push'
|
||||||
|
);
|
||||||
|
expect(test).toMatch(expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('throw error master to master', () => {
|
||||||
|
expect(() => {
|
||||||
|
setGithubToken(
|
||||||
|
'GITHUB_TOKEN',
|
||||||
|
'owner/repo',
|
||||||
|
'master',
|
||||||
|
'',
|
||||||
|
'refs/heads/master',
|
||||||
|
'push'
|
||||||
|
);
|
||||||
|
}).toThrowError('You deploy from master to master');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('throw error external repository with GITHUB_TOKEN', () => {
|
||||||
|
expect(() => {
|
||||||
|
setGithubToken(
|
||||||
|
'GITHUB_TOKEN',
|
||||||
|
'owner/repo',
|
||||||
|
'gh-pages',
|
||||||
|
'extOwner/extRepo',
|
||||||
|
'refs/heads/master',
|
||||||
|
'push'
|
||||||
|
);
|
||||||
|
}).toThrowError(
|
||||||
|
'GITHUB_TOKEN does not support to push to an external repository'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('return remote url with GITHUB_TOKEN pull_request', () => {
|
||||||
|
const expected =
|
||||||
|
'https://x-access-token:GITHUB_TOKEN@github.com/owner/repo.git';
|
||||||
|
const test = setGithubToken(
|
||||||
|
'GITHUB_TOKEN',
|
||||||
|
'owner/repo',
|
||||||
|
'gh-pages',
|
||||||
|
'',
|
||||||
|
'refs/pull/29/merge',
|
||||||
|
'pull_request'
|
||||||
|
);
|
||||||
|
expect(test).toMatch(expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('setPersonalToken()', () => {
|
||||||
|
test('return remote url with personal access token', () => {
|
||||||
|
const expected = 'https://x-access-token:pat@github.com/owner/repo.git';
|
||||||
|
const test = setPersonalToken('pat', 'owner/repo');
|
||||||
|
expect(test).toMatch(expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -77,8 +77,8 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, false, 'gh-pages');
|
await addNoJekyll(workDir, false, 'gh-pages');
|
||||||
const test1 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test1).toBe(true);
|
expect(test).toBe(true);
|
||||||
|
|
||||||
fs.unlinkSync(filepath);
|
fs.unlinkSync(filepath);
|
||||||
});
|
});
|
||||||
@@ -91,8 +91,23 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, false, 'master');
|
await addNoJekyll(workDir, false, 'master');
|
||||||
const test2 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test2).toBe(true);
|
expect(test).toBe(true);
|
||||||
|
|
||||||
|
fs.unlinkSync(filepath);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('.nojekyll already exists', async () => {
|
||||||
|
let workDir = '';
|
||||||
|
(async (): Promise<void> => {
|
||||||
|
workDir = await getWorkDir();
|
||||||
|
})();
|
||||||
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
fs.closeSync(fs.openSync(filepath, 'w'));
|
||||||
|
|
||||||
|
await addNoJekyll(workDir, false, 'master');
|
||||||
|
const test = fs.existsSync(filepath);
|
||||||
|
expect(test).toBe(true);
|
||||||
|
|
||||||
fs.unlinkSync(filepath);
|
fs.unlinkSync(filepath);
|
||||||
});
|
});
|
||||||
@@ -105,8 +120,8 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, true, 'gh-pages');
|
await addNoJekyll(workDir, true, 'gh-pages');
|
||||||
const test3 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test3).toBe(false);
|
expect(test).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('not add .nojekyll disable_nojekyll master', async () => {
|
test('not add .nojekyll disable_nojekyll master', async () => {
|
||||||
@@ -117,8 +132,8 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, true, 'master');
|
await addNoJekyll(workDir, true, 'master');
|
||||||
const test4 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test4).toBe(false);
|
expect(test).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('not add .nojekyll other-branch', async () => {
|
test('not add .nojekyll other-branch', async () => {
|
||||||
@@ -129,8 +144,8 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, false, 'other-branch');
|
await addNoJekyll(workDir, false, 'other-branch');
|
||||||
const test5 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test5).toBe(false);
|
expect(test).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('not add .nojekyll disable_nojekyll other-branch', async () => {
|
test('not add .nojekyll disable_nojekyll other-branch', async () => {
|
||||||
@@ -141,8 +156,8 @@ describe('addNoJekyll()', () => {
|
|||||||
const filepath = path.join(workDir, '.nojekyll');
|
const filepath = path.join(workDir, '.nojekyll');
|
||||||
|
|
||||||
await addNoJekyll(workDir, true, 'other-branch');
|
await addNoJekyll(workDir, true, 'other-branch');
|
||||||
const test6 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test6).toBe(false);
|
expect(test).toBe(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -155,8 +170,8 @@ describe('addCNAME()', () => {
|
|||||||
const filepath = path.join(workDir, 'CNAME');
|
const filepath = path.join(workDir, 'CNAME');
|
||||||
|
|
||||||
await addCNAME(workDir, 'github.com');
|
await addCNAME(workDir, 'github.com');
|
||||||
const test1 = fs.readFileSync(filepath, 'utf8');
|
const test = fs.readFileSync(filepath, 'utf8');
|
||||||
expect(test1).toMatch('github.com');
|
expect(test).toMatch('github.com');
|
||||||
|
|
||||||
fs.unlinkSync(filepath);
|
fs.unlinkSync(filepath);
|
||||||
});
|
});
|
||||||
@@ -169,8 +184,8 @@ describe('addCNAME()', () => {
|
|||||||
const filepath = path.join(workDir, 'CNAME');
|
const filepath = path.join(workDir, 'CNAME');
|
||||||
|
|
||||||
await addCNAME(workDir, '');
|
await addCNAME(workDir, '');
|
||||||
const test2 = fs.existsSync(filepath);
|
const test = fs.existsSync(filepath);
|
||||||
expect(test2).toBe(false);
|
expect(test).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('CNAME already exists', async () => {
|
test('CNAME already exists', async () => {
|
||||||
@@ -182,8 +197,8 @@ describe('addCNAME()', () => {
|
|||||||
|
|
||||||
await addCNAME(workDir, 'github.io');
|
await addCNAME(workDir, 'github.io');
|
||||||
await addCNAME(workDir, 'github.com');
|
await addCNAME(workDir, 'github.com');
|
||||||
const test3 = fs.readFileSync(filepath, 'utf8');
|
const test = fs.readFileSync(filepath, 'utf8');
|
||||||
expect(test3).toMatch('github.io');
|
expect(test).toMatch('github.io');
|
||||||
|
|
||||||
fs.unlinkSync(filepath);
|
fs.unlinkSync(filepath);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -55,8 +55,12 @@ inputs:
|
|||||||
tag_message:
|
tag_message:
|
||||||
description: 'Set tag message'
|
description: 'Set tag message'
|
||||||
required: false
|
required: false
|
||||||
|
enable_jekyll:
|
||||||
|
description: 'Enable the GitHub Pages built-in Jekyll'
|
||||||
|
required: false
|
||||||
|
default: 'false'
|
||||||
disable_nojekyll:
|
disable_nojekyll:
|
||||||
description: 'Disable adding .nojekyll file to master or gh-pages branches'
|
description: 'An alias for enable_jekyll to disable adding .nojekyll file to master or gh-pages branches'
|
||||||
required: false
|
required: false
|
||||||
default: 'false'
|
default: 'false'
|
||||||
cname:
|
cname:
|
||||||
|
|||||||
182
lib/index.js
182
lib/index.js
@@ -2257,6 +2257,7 @@ function run() {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const inps = get_inputs_1.getInputs();
|
const inps = get_inputs_1.getInputs();
|
||||||
|
get_inputs_1.showInputs(inps);
|
||||||
yield git.setConfig(inps.UserName, inps.UserEmail);
|
yield git.setConfig(inps.UserName, inps.UserEmail);
|
||||||
const remoteURL = yield set_tokens_1.setTokens(inps);
|
const remoteURL = yield set_tokens_1.setTokens(inps);
|
||||||
core.debug(`[INFO] remoteURL: ${remoteURL}`);
|
core.debug(`[INFO] remoteURL: ${remoteURL}`);
|
||||||
@@ -2270,7 +2271,7 @@ function run() {
|
|||||||
yield exec.exec('git', ['remote', 'rm', 'origin']);
|
yield exec.exec('git', ['remote', 'rm', 'origin']);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
core.info(`[INFO] ${e}`);
|
core.info(`[INFO] ${e.message}`);
|
||||||
}
|
}
|
||||||
yield exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
|
yield exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
|
||||||
yield exec.exec('git', ['add', '--all']);
|
yield exec.exec('git', ['add', '--all']);
|
||||||
@@ -2281,7 +2282,7 @@ function run() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
throw new Error(e);
|
throw new Error(e.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -5098,7 +5099,7 @@ const main = __importStar(__webpack_require__(131));
|
|||||||
yield main.run();
|
yield main.run();
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
core.setFailed(`Action failed with "${e}"`);
|
core.setFailed(`Action failed with "${e.message}"`);
|
||||||
}
|
}
|
||||||
}))();
|
}))();
|
||||||
|
|
||||||
@@ -6044,30 +6045,47 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
function showInputs(inps) {
|
function showInputs(inps) {
|
||||||
|
let authMethod = '';
|
||||||
if (inps.DeployKey) {
|
if (inps.DeployKey) {
|
||||||
core.info(`[INFO] DeployKey: true`);
|
authMethod = 'DeployKey';
|
||||||
}
|
}
|
||||||
else if (inps.GithubToken) {
|
else if (inps.GithubToken) {
|
||||||
core.info(`[INFO] GithubToken: true`);
|
authMethod = 'GithubToken';
|
||||||
}
|
}
|
||||||
else if (inps.PersonalToken) {
|
else if (inps.PersonalToken) {
|
||||||
core.info(`[INFO] PersonalToken: true`);
|
authMethod = 'PersonalToken';
|
||||||
}
|
}
|
||||||
core.info(`[INFO] PublishBranch: ${inps.PublishBranch}`);
|
core.info(`\
|
||||||
core.info(`[INFO] PublishDir: ${inps.PublishDir}`);
|
[INFO] ${authMethod}: true
|
||||||
core.info(`[INFO] ExternalRepository: ${inps.ExternalRepository}`);
|
[INFO] PublishBranch: ${inps.PublishBranch}
|
||||||
core.info(`[INFO] AllowEmptyCommit: ${inps.AllowEmptyCommit}`);
|
[INFO] PublishDir: ${inps.PublishDir}
|
||||||
core.info(`[INFO] KeepFiles: ${inps.KeepFiles}`);
|
[INFO] ExternalRepository: ${inps.ExternalRepository}
|
||||||
core.info(`[INFO] ForceOrphan: ${inps.ForceOrphan}`);
|
[INFO] AllowEmptyCommit: ${inps.AllowEmptyCommit}
|
||||||
core.info(`[INFO] UserName: ${inps.UserName}`);
|
[INFO] KeepFiles: ${inps.KeepFiles}
|
||||||
core.info(`[INFO] UserEmail: ${inps.UserEmail}`);
|
[INFO] ForceOrphan: ${inps.ForceOrphan}
|
||||||
core.info(`[INFO] CommitMessage: ${inps.CommitMessage}`);
|
[INFO] UserName: ${inps.UserName}
|
||||||
core.info(`[INFO] TagName: ${inps.TagName}`);
|
[INFO] UserEmail: ${inps.UserEmail}
|
||||||
core.info(`[INFO] TagMessage: ${inps.TagMessage}`);
|
[INFO] CommitMessage: ${inps.CommitMessage}
|
||||||
core.info(`[INFO] DisableNoJekyll: ${inps.DisableNoJekyll}`);
|
[INFO] TagName: ${inps.TagName}
|
||||||
core.info(`[INFO] CNAME: ${inps.CNAME}`);
|
[INFO] TagMessage: ${inps.TagMessage}
|
||||||
|
[INFO] EnableJekyll (DisableNoJekyll): ${inps.DisableNoJekyll}
|
||||||
|
[INFO] CNAME: ${inps.CNAME}
|
||||||
|
`);
|
||||||
}
|
}
|
||||||
|
exports.showInputs = showInputs;
|
||||||
function getInputs() {
|
function getInputs() {
|
||||||
|
let useBuiltinJekyll = false;
|
||||||
|
const enableJekyll = (core.getInput('enable_jekyll') || 'false').toUpperCase() === 'TRUE';
|
||||||
|
const disableNoJekyll = (core.getInput('disable_nojekyll') || 'false').toUpperCase() === 'TRUE';
|
||||||
|
if (enableJekyll && disableNoJekyll) {
|
||||||
|
throw new Error(`Use either of enable_jekyll or disable_nojekyll`);
|
||||||
|
}
|
||||||
|
else if (enableJekyll) {
|
||||||
|
useBuiltinJekyll = true;
|
||||||
|
}
|
||||||
|
else if (disableNoJekyll) {
|
||||||
|
useBuiltinJekyll = true;
|
||||||
|
}
|
||||||
const inps = {
|
const inps = {
|
||||||
DeployKey: core.getInput('deploy_key'),
|
DeployKey: core.getInput('deploy_key'),
|
||||||
GithubToken: core.getInput('github_token'),
|
GithubToken: core.getInput('github_token'),
|
||||||
@@ -6083,10 +6101,9 @@ function getInputs() {
|
|||||||
CommitMessage: core.getInput('commit_message'),
|
CommitMessage: core.getInput('commit_message'),
|
||||||
TagName: core.getInput('tag_name'),
|
TagName: core.getInput('tag_name'),
|
||||||
TagMessage: core.getInput('tag_message'),
|
TagMessage: core.getInput('tag_message'),
|
||||||
DisableNoJekyll: (core.getInput('disable_nojekyll') || 'false').toUpperCase() === 'TRUE',
|
DisableNoJekyll: useBuiltinJekyll,
|
||||||
CNAME: core.getInput('cname')
|
CNAME: core.getInput('cname')
|
||||||
};
|
};
|
||||||
showInputs(inps);
|
|
||||||
return inps;
|
return inps;
|
||||||
}
|
}
|
||||||
exports.getInputs = getInputs;
|
exports.getInputs = getInputs;
|
||||||
@@ -8157,6 +8174,13 @@ exports.setFailed = setFailed;
|
|||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
// Logging Commands
|
// Logging Commands
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* Gets whether Actions Step Debug is on or not
|
||||||
|
*/
|
||||||
|
function isDebug() {
|
||||||
|
return process.env['RUNNER_DEBUG'] === '1';
|
||||||
|
}
|
||||||
|
exports.isDebug = isDebug;
|
||||||
/**
|
/**
|
||||||
* Writes debug message to user log
|
* Writes debug message to user log
|
||||||
* @param message debug message
|
* @param message debug message
|
||||||
@@ -8411,26 +8435,39 @@ exports.createBranchForce = createBranchForce;
|
|||||||
function copyAssets(publishDir, workDir) {
|
function copyAssets(publishDir, workDir) {
|
||||||
var e_1, _a;
|
var e_1, _a;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const copyOpts = { recursive: true, force: true };
|
if (process.platform === 'win32') {
|
||||||
const files = fs_1.default.readdirSync(publishDir);
|
const copyOpts = { recursive: true, force: true };
|
||||||
core.debug(`${files}`);
|
const files = fs_1.default.readdirSync(publishDir);
|
||||||
try {
|
core.debug(`${files}`);
|
||||||
for (var files_1 = __asyncValues(files), files_1_1; files_1_1 = yield files_1.next(), !files_1_1.done;) {
|
try {
|
||||||
const file = files_1_1.value;
|
for (var files_1 = __asyncValues(files), files_1_1; files_1_1 = yield files_1.next(), !files_1_1.done;) {
|
||||||
if (file.endsWith('.git') || file.endsWith('.github')) {
|
const file = files_1_1.value;
|
||||||
continue;
|
if (file.endsWith('.git') || file.endsWith('.github')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const filePath = path_1.default.join(publishDir, file);
|
||||||
|
yield io.cp(filePath, `${workDir}/`, copyOpts);
|
||||||
|
core.info(`[INFO] copy ${file}`);
|
||||||
}
|
}
|
||||||
const filePath = path_1.default.join(publishDir, file);
|
}
|
||||||
yield io.cp(filePath, `${workDir}/`, copyOpts);
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||||
core.info(`[INFO] copy ${file}`);
|
finally {
|
||||||
|
try {
|
||||||
|
if (files_1_1 && !files_1_1.done && (_a = files_1.return)) yield _a.call(files_1);
|
||||||
|
}
|
||||||
|
finally { if (e_1) throw e_1.error; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
else {
|
||||||
finally {
|
yield exec.exec('rsync', [
|
||||||
try {
|
'-rptgoDv',
|
||||||
if (files_1_1 && !files_1_1.done && (_a = files_1.return)) yield _a.call(files_1);
|
'--copy-links',
|
||||||
}
|
'--copy-dirlinks',
|
||||||
finally { if (e_1) throw e_1.error; }
|
"--exclude='.git'",
|
||||||
|
"--exclude='.github'",
|
||||||
|
`${publishDir}/`,
|
||||||
|
`${workDir}/`
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
@@ -8485,7 +8522,7 @@ function setRepo(inps, remoteURL, workDir) {
|
|||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
core.info(`[INFO] first deployment, create new branch ${inps.PublishBranch}`);
|
core.info(`[INFO] first deployment, create new branch ${inps.PublishBranch}`);
|
||||||
core.info(e);
|
core.info(e.message);
|
||||||
yield utils_1.createWorkDir(workDir);
|
yield utils_1.createWorkDir(workDir);
|
||||||
process.chdir(workDir);
|
process.chdir(workDir);
|
||||||
yield createBranchForce(inps.PublishBranch);
|
yield createBranchForce(inps.PublishBranch);
|
||||||
@@ -8545,7 +8582,7 @@ function commit(allowEmptyCommit, externalRepository, message) {
|
|||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
core.info('[INFO] skip commit');
|
core.info('[INFO] skip commit');
|
||||||
core.debug(`[INFO] skip commit ${e}`);
|
core.debug(`[INFO] skip commit ${e.message}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -9581,13 +9618,6 @@ const fs_1 = __importDefault(__webpack_require__(747));
|
|||||||
const cpSpawnSync = __webpack_require__(129).spawnSync;
|
const cpSpawnSync = __webpack_require__(129).spawnSync;
|
||||||
const cpexec = __webpack_require__(129).execFileSync;
|
const cpexec = __webpack_require__(129).execFileSync;
|
||||||
const utils_1 = __webpack_require__(163);
|
const utils_1 = __webpack_require__(163);
|
||||||
function setPublishRepo(insp) {
|
|
||||||
if (insp.ExternalRepository) {
|
|
||||||
return insp.ExternalRepository;
|
|
||||||
}
|
|
||||||
return `${github.context.repo.owner}/${github.context.repo.repo}`;
|
|
||||||
}
|
|
||||||
exports.setPublishRepo = setPublishRepo;
|
|
||||||
function setSSHKey(inps, publishRepo) {
|
function setSSHKey(inps, publishRepo) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.info('[INFO] setup SSH deploy key');
|
core.info('[INFO] setup SSH deploy key');
|
||||||
@@ -9630,53 +9660,57 @@ Host github
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.setSSHKey = setSSHKey;
|
exports.setSSHKey = setSSHKey;
|
||||||
function setGithubToken(inps, publishRepo) {
|
function setGithubToken(githubToken, publishRepo, publishBranch, externalRepository, ref, eventName) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
core.info('[INFO] setup GITHUB_TOKEN');
|
||||||
core.info('[INFO] setup GITHUB_TOKEN');
|
core.debug(`ref: ${ref}`);
|
||||||
const context = github.context;
|
core.debug(`eventName: ${eventName}`);
|
||||||
core.debug(`ref: ${context.ref}`);
|
let isProhibitedBranch = false;
|
||||||
core.debug(`eventName: ${context.eventName}`);
|
if (eventName === 'push') {
|
||||||
let isProhibitedBranch = false;
|
isProhibitedBranch = ref.includes(`refs/heads/${publishBranch}`);
|
||||||
const ref = context.ref;
|
if (isProhibitedBranch) {
|
||||||
if (context.eventName === 'push') {
|
throw new Error(`You deploy from ${publishBranch} to ${publishBranch}`);
|
||||||
isProhibitedBranch = ref.includes(`refs/heads/${inps.PublishBranch}`);
|
|
||||||
if (isProhibitedBranch) {
|
|
||||||
throw new Error(`You deploy from ${inps.PublishBranch} to ${inps.PublishBranch}`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (inps.ExternalRepository) {
|
}
|
||||||
throw new Error('GITHUB_TOKEN does not support to push to an external repository');
|
if (externalRepository) {
|
||||||
}
|
throw new Error('GITHUB_TOKEN does not support to push to an external repository');
|
||||||
return `https://x-access-token:${inps.GithubToken}@github.com/${publishRepo}.git`;
|
}
|
||||||
});
|
return `https://x-access-token:${githubToken}@github.com/${publishRepo}.git`;
|
||||||
}
|
}
|
||||||
exports.setGithubToken = setGithubToken;
|
exports.setGithubToken = setGithubToken;
|
||||||
function setPersonalToken(inps, publishRepo) {
|
function setPersonalToken(personalToken, publishRepo) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
core.info('[INFO] setup personal access token');
|
||||||
core.info('[INFO] setup personal access token');
|
return `https://x-access-token:${personalToken}@github.com/${publishRepo}.git`;
|
||||||
return `https://x-access-token:${inps.PersonalToken}@github.com/${publishRepo}.git`;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
exports.setPersonalToken = setPersonalToken;
|
exports.setPersonalToken = setPersonalToken;
|
||||||
|
function getPublishRepo(externalRepository, owner, repo) {
|
||||||
|
if (externalRepository) {
|
||||||
|
return externalRepository;
|
||||||
|
}
|
||||||
|
return `${owner}/${repo}`;
|
||||||
|
}
|
||||||
|
exports.getPublishRepo = getPublishRepo;
|
||||||
function setTokens(inps) {
|
function setTokens(inps) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const publishRepo = setPublishRepo(inps);
|
const publishRepo = getPublishRepo(inps.ExternalRepository, github.context.repo.owner, github.context.repo.repo);
|
||||||
if (inps.DeployKey) {
|
if (inps.DeployKey) {
|
||||||
return setSSHKey(inps, publishRepo);
|
return setSSHKey(inps, publishRepo);
|
||||||
}
|
}
|
||||||
else if (inps.GithubToken) {
|
else if (inps.GithubToken) {
|
||||||
return setGithubToken(inps, publishRepo);
|
const context = github.context;
|
||||||
|
const ref = context.ref;
|
||||||
|
const eventName = context.eventName;
|
||||||
|
return setGithubToken(inps.GithubToken, publishRepo, inps.PublishBranch, inps.ExternalRepository, ref, eventName);
|
||||||
}
|
}
|
||||||
else if (inps.PersonalToken) {
|
else if (inps.PersonalToken) {
|
||||||
return setPersonalToken(inps, publishRepo);
|
return setPersonalToken(inps.PersonalToken, publishRepo);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new Error('not found deploy key or tokens');
|
throw new Error('not found deploy key or tokens');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
throw new Error(e);
|
throw new Error(e.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
98
package-lock.json
generated
98
package-lock.json
generated
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "actions-github-pages",
|
"name": "actions-github-pages",
|
||||||
"version": "3.4.0",
|
"version": "3.6.0-0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": {
|
"@actions/core": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.3.tgz",
|
||||||
"integrity": "sha512-IbCx7oefq+Gi6FWbSs2Fnw8VkEI6Y4gvjrYprY3RV//ksq/KPMlClOerJ4jRosyal6zkUIc8R9fS/cpRMlGClg=="
|
"integrity": "sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w=="
|
||||||
},
|
},
|
||||||
"@actions/exec": {
|
"@actions/exec": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@@ -749,6 +749,12 @@
|
|||||||
"pretty-format": "^25.1.0"
|
"pretty-format": "^25.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/js-yaml": {
|
||||||
|
"version": "3.12.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.2.tgz",
|
||||||
|
"integrity": "sha512-0CFu/g4mDSNkodVwWijdlr8jH7RoplRWNgovjFLEZeT+QEbbZXjBmCe3HwaWheAlCbHwomTwzZoSedeOycABug==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/json-schema": {
|
"@types/json-schema": {
|
||||||
"version": "7.0.4",
|
"version": "7.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
|
||||||
@@ -756,9 +762,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "12.12.28",
|
"version": "12.12.29",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.28.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.29.tgz",
|
||||||
"integrity": "sha512-g73GJYJDXgf0jqg+P9S8h2acWbDXNkoCX8DLtJVu7Fkn788pzQ/oJsrdJz/2JejRf/SjfZaAhsw+3nd1D5EWGg=="
|
"integrity": "sha512-yo8Qz0ygADGFptISDj3pOC9wXfln/5pQaN/ysDIzOaAWXt73cNHmtEC8zSO2Y+kse/txmwIAJzkYZ5fooaS5DQ=="
|
||||||
},
|
},
|
||||||
"@types/parse-json": {
|
"@types/parse-json": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@@ -788,12 +794,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@typescript-eslint/eslint-plugin": {
|
"@typescript-eslint/eslint-plugin": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz",
|
||||||
"integrity": "sha512-cimIdVDV3MakiGJqMXw51Xci6oEDEoPkvh8ggJe2IIzcc0fYqAxOXN6Vbeanahz6dLZq64W+40iUEc9g32FLDQ==",
|
"integrity": "sha512-BvxRLaTDVQ3N+Qq8BivLiE9akQLAOUfxNHIEhedOcg8B2+jY8Rc4/D+iVprvuMX1AdezFYautuGDwr9QxqSxBQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/experimental-utils": "2.20.0",
|
"@typescript-eslint/experimental-utils": "2.22.0",
|
||||||
"eslint-utils": "^1.4.3",
|
"eslint-utils": "^1.4.3",
|
||||||
"functional-red-black-tree": "^1.0.1",
|
"functional-red-black-tree": "^1.0.1",
|
||||||
"regexpp": "^3.0.0",
|
"regexpp": "^3.0.0",
|
||||||
@@ -801,20 +807,20 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/experimental-utils": {
|
"@typescript-eslint/experimental-utils": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz",
|
||||||
"integrity": "sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==",
|
"integrity": "sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/json-schema": "^7.0.3",
|
"@types/json-schema": "^7.0.3",
|
||||||
"@typescript-eslint/typescript-estree": "2.20.0",
|
"@typescript-eslint/typescript-estree": "2.22.0",
|
||||||
"eslint-scope": "^5.0.0"
|
"eslint-scope": "^5.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/typescript-estree": {
|
"@typescript-eslint/typescript-estree": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz",
|
||||||
"integrity": "sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==",
|
"integrity": "sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
@@ -835,43 +841,43 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/experimental-utils": {
|
"@typescript-eslint/experimental-utils": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz",
|
||||||
"integrity": "sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==",
|
"integrity": "sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/json-schema": "^7.0.3",
|
"@types/json-schema": "^7.0.3",
|
||||||
"@typescript-eslint/typescript-estree": "2.20.0",
|
"@typescript-eslint/typescript-estree": "2.22.0",
|
||||||
"eslint-scope": "^5.0.0"
|
"eslint-scope": "^5.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/parser": {
|
"@typescript-eslint/parser": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.22.0.tgz",
|
||||||
"integrity": "sha512-o8qsKaosLh2qhMZiHNtaHKTHyCHc3Triq6aMnwnWj7budm3xAY9owSZzV1uon5T9cWmJRJGzTFa90aex4m77Lw==",
|
"integrity": "sha512-FaZKC1X+nvD7qMPqKFUYHz3H0TAioSVFGvG29f796Nc5tBluoqfHgLbSFKsh7mKjRoeTm8J9WX2Wo9EyZWjG7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/eslint-visitor-keys": "^1.0.0",
|
"@types/eslint-visitor-keys": "^1.0.0",
|
||||||
"@typescript-eslint/experimental-utils": "2.20.0",
|
"@typescript-eslint/experimental-utils": "2.22.0",
|
||||||
"@typescript-eslint/typescript-estree": "2.20.0",
|
"@typescript-eslint/typescript-estree": "2.22.0",
|
||||||
"eslint-visitor-keys": "^1.1.0"
|
"eslint-visitor-keys": "^1.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/experimental-utils": {
|
"@typescript-eslint/experimental-utils": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz",
|
||||||
"integrity": "sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==",
|
"integrity": "sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/json-schema": "^7.0.3",
|
"@types/json-schema": "^7.0.3",
|
||||||
"@typescript-eslint/typescript-estree": "2.20.0",
|
"@typescript-eslint/typescript-estree": "2.22.0",
|
||||||
"eslint-scope": "^5.0.0"
|
"eslint-scope": "^5.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/typescript-estree": {
|
"@typescript-eslint/typescript-estree": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz",
|
||||||
"integrity": "sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==",
|
"integrity": "sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
@@ -892,9 +898,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/typescript-estree": {
|
"@typescript-eslint/typescript-estree": {
|
||||||
"version": "2.20.0",
|
"version": "2.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz",
|
||||||
"integrity": "sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==",
|
"integrity": "sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
@@ -2385,9 +2391,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"eslint-plugin-jest": {
|
"eslint-plugin-jest": {
|
||||||
"version": "23.8.0",
|
"version": "23.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz",
|
||||||
"integrity": "sha512-DKXmLxguZ1Lru4u5YM12ko3WLq6gqo7dhV2b63K731+/PNyZ/Ff6NGONQsGUtPLG9zU3kdz/N+2LTbweNZifeg==",
|
"integrity": "sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/experimental-utils": "^2.5.0"
|
"@typescript-eslint/experimental-utils": "^2.5.0"
|
||||||
@@ -4598,9 +4604,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"version": "10.0.7",
|
"version": "10.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.0.8.tgz",
|
||||||
"integrity": "sha512-Byj0F4l7GYUpYYHEqyFH69NiI6ICTg0CeCKbhRorL+ickbzILKUlZLiyCkljZV02wnoh7yH7PmFyYm9PRNwk9g==",
|
"integrity": "sha512-Oa9eS4DJqvQMVdywXfEor6F4vP+21fPHF8LUXgBbVWUSWBddjqsvO6Bv1LwMChmgQZZqwUvgJSHlu8HFHAPZmA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^3.0.0",
|
"chalk": "^3.0.0",
|
||||||
@@ -7507,9 +7513,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.8.2",
|
"version": "3.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
|
||||||
"integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==",
|
"integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
|
|||||||
20
package.json
20
package.json
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "actions-github-pages",
|
"name": "actions-github-pages",
|
||||||
"version": "3.4.0",
|
"version": "3.6.0-0",
|
||||||
"description": "GitHub Actions for GitHub Pages",
|
"description": "GitHub Actions for GitHub Pages",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.14.1",
|
"node": ">=12.16.1",
|
||||||
"npm": ">=6.13.7"
|
"npm": ">=6.14.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint ./{src,__tests__}/**/*.ts",
|
"lint": "eslint ./{src,__tests__}/**/*.ts",
|
||||||
@@ -50,26 +50,28 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/peaceiris/actions-gh-pages#readme",
|
"homepage": "https://github.com/peaceiris/actions-gh-pages#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.2",
|
"@actions/core": "^1.2.3",
|
||||||
"@actions/exec": "^1.0.3",
|
"@actions/exec": "^1.0.3",
|
||||||
"@actions/github": "^2.1.1",
|
"@actions/github": "^2.1.1",
|
||||||
"@actions/io": "^1.0.2"
|
"@actions/io": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^25.1.3",
|
"@types/jest": "^25.1.3",
|
||||||
|
"@types/js-yaml": "^3.12.2",
|
||||||
"@types/node": "~12",
|
"@types/node": "~12",
|
||||||
"@typescript-eslint/eslint-plugin": "^2.20.0",
|
"@typescript-eslint/eslint-plugin": "^2.22.0",
|
||||||
"@typescript-eslint/parser": "^2.20.0",
|
"@typescript-eslint/parser": "^2.22.0",
|
||||||
"@zeit/ncc": "^0.21.1",
|
"@zeit/ncc": "^0.21.1",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"eslint-plugin-jest": "^23.8.0",
|
"eslint-plugin-jest": "^23.8.2",
|
||||||
"husky": "^4.2.3",
|
"husky": "^4.2.3",
|
||||||
"jest": "^25.1.0",
|
"jest": "^25.1.0",
|
||||||
"jest-circus": "^25.1.0",
|
"jest-circus": "^25.1.0",
|
||||||
"lint-staged": "^10.0.7",
|
"js-yaml": "^3.13.1",
|
||||||
|
"lint-staged": "^10.0.8",
|
||||||
"prettier": "1.19.1",
|
"prettier": "1.19.1",
|
||||||
"standard-version": "^7.1.0",
|
"standard-version": "^7.1.0",
|
||||||
"ts-jest": "^25.2.1",
|
"ts-jest": "^25.2.1",
|
||||||
"typescript": "^3.8.2"
|
"typescript": "^3.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,50 @@
|
|||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import {Inputs} from './interfaces';
|
import {Inputs} from './interfaces';
|
||||||
|
|
||||||
function showInputs(inps: Inputs): void {
|
export function showInputs(inps: Inputs): void {
|
||||||
|
let authMethod = '';
|
||||||
if (inps.DeployKey) {
|
if (inps.DeployKey) {
|
||||||
core.info(`[INFO] DeployKey: true`);
|
authMethod = 'DeployKey';
|
||||||
} else if (inps.GithubToken) {
|
} else if (inps.GithubToken) {
|
||||||
core.info(`[INFO] GithubToken: true`);
|
authMethod = 'GithubToken';
|
||||||
} else if (inps.PersonalToken) {
|
} else if (inps.PersonalToken) {
|
||||||
core.info(`[INFO] PersonalToken: true`);
|
authMethod = 'PersonalToken';
|
||||||
}
|
}
|
||||||
|
|
||||||
core.info(`[INFO] PublishBranch: ${inps.PublishBranch}`);
|
core.info(`\
|
||||||
core.info(`[INFO] PublishDir: ${inps.PublishDir}`);
|
[INFO] ${authMethod}: true
|
||||||
core.info(`[INFO] ExternalRepository: ${inps.ExternalRepository}`);
|
[INFO] PublishBranch: ${inps.PublishBranch}
|
||||||
core.info(`[INFO] AllowEmptyCommit: ${inps.AllowEmptyCommit}`);
|
[INFO] PublishDir: ${inps.PublishDir}
|
||||||
core.info(`[INFO] KeepFiles: ${inps.KeepFiles}`);
|
[INFO] ExternalRepository: ${inps.ExternalRepository}
|
||||||
core.info(`[INFO] ForceOrphan: ${inps.ForceOrphan}`);
|
[INFO] AllowEmptyCommit: ${inps.AllowEmptyCommit}
|
||||||
core.info(`[INFO] UserName: ${inps.UserName}`);
|
[INFO] KeepFiles: ${inps.KeepFiles}
|
||||||
core.info(`[INFO] UserEmail: ${inps.UserEmail}`);
|
[INFO] ForceOrphan: ${inps.ForceOrphan}
|
||||||
core.info(`[INFO] CommitMessage: ${inps.CommitMessage}`);
|
[INFO] UserName: ${inps.UserName}
|
||||||
core.info(`[INFO] TagName: ${inps.TagName}`);
|
[INFO] UserEmail: ${inps.UserEmail}
|
||||||
core.info(`[INFO] TagMessage: ${inps.TagMessage}`);
|
[INFO] CommitMessage: ${inps.CommitMessage}
|
||||||
core.info(`[INFO] DisableNoJekyll: ${inps.DisableNoJekyll}`);
|
[INFO] TagName: ${inps.TagName}
|
||||||
core.info(`[INFO] CNAME: ${inps.CNAME}`);
|
[INFO] TagMessage: ${inps.TagMessage}
|
||||||
|
[INFO] EnableJekyll (DisableNoJekyll): ${inps.DisableNoJekyll}
|
||||||
|
[INFO] CNAME: ${inps.CNAME}
|
||||||
|
`);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getInputs(): Inputs {
|
export function getInputs(): Inputs {
|
||||||
|
let useBuiltinJekyll = false;
|
||||||
|
|
||||||
|
const enableJekyll: boolean =
|
||||||
|
(core.getInput('enable_jekyll') || 'false').toUpperCase() === 'TRUE';
|
||||||
|
const disableNoJekyll: boolean =
|
||||||
|
(core.getInput('disable_nojekyll') || 'false').toUpperCase() === 'TRUE';
|
||||||
|
|
||||||
|
if (enableJekyll && disableNoJekyll) {
|
||||||
|
throw new Error(`Use either of enable_jekyll or disable_nojekyll`);
|
||||||
|
} else if (enableJekyll) {
|
||||||
|
useBuiltinJekyll = true;
|
||||||
|
} else if (disableNoJekyll) {
|
||||||
|
useBuiltinJekyll = true;
|
||||||
|
}
|
||||||
|
|
||||||
const inps: Inputs = {
|
const inps: Inputs = {
|
||||||
DeployKey: core.getInput('deploy_key'),
|
DeployKey: core.getInput('deploy_key'),
|
||||||
GithubToken: core.getInput('github_token'),
|
GithubToken: core.getInput('github_token'),
|
||||||
@@ -44,12 +63,9 @@ export function getInputs(): Inputs {
|
|||||||
CommitMessage: core.getInput('commit_message'),
|
CommitMessage: core.getInput('commit_message'),
|
||||||
TagName: core.getInput('tag_name'),
|
TagName: core.getInput('tag_name'),
|
||||||
TagMessage: core.getInput('tag_message'),
|
TagMessage: core.getInput('tag_message'),
|
||||||
DisableNoJekyll:
|
DisableNoJekyll: useBuiltinJekyll,
|
||||||
(core.getInput('disable_nojekyll') || 'false').toUpperCase() === 'TRUE',
|
|
||||||
CNAME: core.getInput('cname')
|
CNAME: core.getInput('cname')
|
||||||
};
|
};
|
||||||
|
|
||||||
showInputs(inps);
|
|
||||||
|
|
||||||
return inps;
|
return inps;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,18 +17,29 @@ export async function copyAssets(
|
|||||||
publishDir: string,
|
publishDir: string,
|
||||||
workDir: string
|
workDir: string
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const copyOpts = {recursive: true, force: true};
|
if (process.platform === 'win32') {
|
||||||
const files = fs.readdirSync(publishDir);
|
const copyOpts = {recursive: true, force: true};
|
||||||
core.debug(`${files}`);
|
const files = fs.readdirSync(publishDir);
|
||||||
for await (const file of files) {
|
core.debug(`${files}`);
|
||||||
if (file.endsWith('.git') || file.endsWith('.github')) {
|
for await (const file of files) {
|
||||||
continue;
|
if (file.endsWith('.git') || file.endsWith('.github')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const filePath = path.join(publishDir, file);
|
||||||
|
await io.cp(filePath, `${workDir}/`, copyOpts);
|
||||||
|
core.info(`[INFO] copy ${file}`);
|
||||||
}
|
}
|
||||||
const filePath = path.join(publishDir, file);
|
} else {
|
||||||
await io.cp(filePath, `${workDir}/`, copyOpts);
|
await exec.exec('rsync', [
|
||||||
core.info(`[INFO] copy ${file}`);
|
'-rptgoDv',
|
||||||
|
'--copy-links',
|
||||||
|
'--copy-dirlinks',
|
||||||
|
"--exclude='.git'",
|
||||||
|
"--exclude='.github'",
|
||||||
|
`${publishDir}/`,
|
||||||
|
`${workDir}/`
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +105,7 @@ export async function setRepo(
|
|||||||
core.info(
|
core.info(
|
||||||
`[INFO] first deployment, create new branch ${inps.PublishBranch}`
|
`[INFO] first deployment, create new branch ${inps.PublishBranch}`
|
||||||
);
|
);
|
||||||
core.info(e);
|
core.info(e.message);
|
||||||
await createWorkDir(workDir);
|
await createWorkDir(workDir);
|
||||||
process.chdir(workDir);
|
process.chdir(workDir);
|
||||||
await createBranchForce(inps.PublishBranch);
|
await createBranchForce(inps.PublishBranch);
|
||||||
@@ -156,7 +167,7 @@ export async function commit(
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
core.info('[INFO] skip commit');
|
core.info('[INFO] skip commit');
|
||||||
core.debug(`[INFO] skip commit ${e}`);
|
core.debug(`[INFO] skip commit ${e.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ import * as main from './main';
|
|||||||
try {
|
try {
|
||||||
await main.run();
|
await main.run();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
core.setFailed(`Action failed with "${e}"`);
|
core.setFailed(`Action failed with "${e.message}"`);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
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 {Inputs} from './interfaces';
|
import {Inputs} from './interfaces';
|
||||||
import {getInputs} from './get-inputs';
|
import {showInputs, getInputs} from './get-inputs';
|
||||||
import {setTokens} from './set-tokens';
|
import {setTokens} from './set-tokens';
|
||||||
import * as git from './git-utils';
|
import * as git from './git-utils';
|
||||||
import {getWorkDirName, addNoJekyll, addCNAME} from './utils';
|
import {getWorkDirName, addNoJekyll, addCNAME} from './utils';
|
||||||
@@ -9,6 +9,7 @@ import {getWorkDirName, addNoJekyll, addCNAME} from './utils';
|
|||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const inps: Inputs = getInputs();
|
const inps: Inputs = getInputs();
|
||||||
|
showInputs(inps);
|
||||||
|
|
||||||
await git.setConfig(inps.UserName, inps.UserEmail);
|
await git.setConfig(inps.UserName, inps.UserEmail);
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ export async function run(): Promise<void> {
|
|||||||
try {
|
try {
|
||||||
await exec.exec('git', ['remote', 'rm', 'origin']);
|
await exec.exec('git', ['remote', 'rm', 'origin']);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
core.info(`[INFO] ${e}`);
|
core.info(`[INFO] ${e.message}`);
|
||||||
}
|
}
|
||||||
await exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
|
await exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
|
||||||
await exec.exec('git', ['add', '--all']);
|
await exec.exec('git', ['add', '--all']);
|
||||||
@@ -43,6 +44,6 @@ export async function run(): Promise<void> {
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw new Error(e);
|
throw new Error(e.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,6 @@ const cpexec = require('child_process').execFileSync;
|
|||||||
import {Inputs} from './interfaces';
|
import {Inputs} from './interfaces';
|
||||||
import {getHomeDir} from './utils';
|
import {getHomeDir} from './utils';
|
||||||
|
|
||||||
export function setPublishRepo(insp: Inputs): string {
|
|
||||||
if (insp.ExternalRepository) {
|
|
||||||
return insp.ExternalRepository;
|
|
||||||
}
|
|
||||||
return `${github.context.repo.owner}/${github.context.repo.repo}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function setSSHKey(
|
export async function setSSHKey(
|
||||||
inps: Inputs,
|
inps: Inputs,
|
||||||
publishRepo: string
|
publishRepo: string
|
||||||
@@ -66,57 +59,82 @@ Host github
|
|||||||
return `git@github.com:${publishRepo}.git`;
|
return `git@github.com:${publishRepo}.git`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setGithubToken(
|
export function setGithubToken(
|
||||||
inps: Inputs,
|
githubToken: string,
|
||||||
publishRepo: string
|
publishRepo: string,
|
||||||
): Promise<string> {
|
publishBranch: string,
|
||||||
|
externalRepository: string,
|
||||||
|
ref: string,
|
||||||
|
eventName: string
|
||||||
|
): string {
|
||||||
core.info('[INFO] setup GITHUB_TOKEN');
|
core.info('[INFO] setup GITHUB_TOKEN');
|
||||||
|
|
||||||
const context = github.context;
|
core.debug(`ref: ${ref}`);
|
||||||
core.debug(`ref: ${context.ref}`);
|
core.debug(`eventName: ${eventName}`);
|
||||||
core.debug(`eventName: ${context.eventName}`);
|
|
||||||
let isProhibitedBranch = false;
|
let isProhibitedBranch = false;
|
||||||
|
|
||||||
const ref = context.ref;
|
if (eventName === 'push') {
|
||||||
if (context.eventName === 'push') {
|
isProhibitedBranch = ref.includes(`refs/heads/${publishBranch}`);
|
||||||
isProhibitedBranch = ref.includes(`refs/heads/${inps.PublishBranch}`);
|
|
||||||
if (isProhibitedBranch) {
|
if (isProhibitedBranch) {
|
||||||
throw new Error(
|
throw new Error(`You deploy from ${publishBranch} to ${publishBranch}`);
|
||||||
`You deploy from ${inps.PublishBranch} to ${inps.PublishBranch}`
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inps.ExternalRepository) {
|
if (externalRepository) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'GITHUB_TOKEN does not support to push to an external repository'
|
'GITHUB_TOKEN does not support to push to an external repository'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `https://x-access-token:${inps.GithubToken}@github.com/${publishRepo}.git`;
|
return `https://x-access-token:${githubToken}@github.com/${publishRepo}.git`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setPersonalToken(
|
export function setPersonalToken(
|
||||||
inps: Inputs,
|
personalToken: string,
|
||||||
publishRepo: string
|
publishRepo: string
|
||||||
): Promise<string> {
|
): string {
|
||||||
core.info('[INFO] setup personal access token');
|
core.info('[INFO] setup personal access token');
|
||||||
return `https://x-access-token:${inps.PersonalToken}@github.com/${publishRepo}.git`;
|
return `https://x-access-token:${personalToken}@github.com/${publishRepo}.git`;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPublishRepo(
|
||||||
|
externalRepository: string,
|
||||||
|
owner: string,
|
||||||
|
repo: string
|
||||||
|
): string {
|
||||||
|
if (externalRepository) {
|
||||||
|
return externalRepository;
|
||||||
|
}
|
||||||
|
return `${owner}/${repo}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setTokens(inps: Inputs): Promise<string> {
|
export async function setTokens(inps: Inputs): Promise<string> {
|
||||||
try {
|
try {
|
||||||
const publishRepo = setPublishRepo(inps);
|
const publishRepo = getPublishRepo(
|
||||||
|
inps.ExternalRepository,
|
||||||
|
github.context.repo.owner,
|
||||||
|
github.context.repo.repo
|
||||||
|
);
|
||||||
if (inps.DeployKey) {
|
if (inps.DeployKey) {
|
||||||
return setSSHKey(inps, publishRepo);
|
return setSSHKey(inps, publishRepo);
|
||||||
} else if (inps.GithubToken) {
|
} else if (inps.GithubToken) {
|
||||||
return setGithubToken(inps, publishRepo);
|
const context = github.context;
|
||||||
|
const ref = context.ref;
|
||||||
|
const eventName = context.eventName;
|
||||||
|
return setGithubToken(
|
||||||
|
inps.GithubToken,
|
||||||
|
publishRepo,
|
||||||
|
inps.PublishBranch,
|
||||||
|
inps.ExternalRepository,
|
||||||
|
ref,
|
||||||
|
eventName
|
||||||
|
);
|
||||||
} else if (inps.PersonalToken) {
|
} else if (inps.PersonalToken) {
|
||||||
return setPersonalToken(inps, publishRepo);
|
return setPersonalToken(inps.PersonalToken, publishRepo);
|
||||||
} else {
|
} else {
|
||||||
throw new Error('not found deploy key or tokens');
|
throw new Error('not found deploy key or tokens');
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw new Error(e);
|
throw new Error(e.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user