Merge branch 'dev' into releases/v4

This commit is contained in:
James Ives 2022-01-06 10:13:17 -05:00
commit fd3cf89aa3
22 changed files with 174 additions and 98 deletions

View File

@ -1,2 +1,2 @@
ARG VARIANT=12 ARG VARIANT=14
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:${VARIANT} FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:${VARIANT}

View File

@ -1,4 +1,4 @@
ARG VARIANT=12-buster ARG VARIANT=14-buster
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:dev-${VARIANT} FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:dev-${VARIANT}
# Install tslint, typescript. eslint is installed by javascript image # Install tslint, typescript. eslint is installed by javascript image

View File

@ -1,15 +1,17 @@
// https://github.com/microsoft/vscode-dev-containers/tree/master/containers/typescript-node // https://github.com/microsoft/vscode-dev-containers/tree/master/containers/typescript-node
{ {
"name": "Node.js & TypeScript", "name": "Node.js & TypeScript",
"build": { "build": {
"dockerfile": "Dockerfile", "dockerfile": "Dockerfile",
"args": { "args": {
"VARIANT": "12" "VARIANT": "14"
} }
}, },
"settings": { "settings": {
"terminal.integrated.shell.linux": "/bin/bash" "terminal.integrated.shell.linux": "/bin/bash"
}, },
"extensions": ["dbaeumer.vscode-eslint"], "extensions": [
"remoteUser": "node" "dbaeumer.vscode-eslint"
],
"remoteUser": "node"
} }

View File

@ -17,7 +17,11 @@ labels:
## Logs ## Logs
<!-- Please provide your deployment logs and a link or sample to/of your workflow. If the error message isn't revealing the problem please set ACTIONS_STEP_DEBUG to true in your repository's secrets menu and run the workflow again. --> <!-- Please provide your deployment logs. If the error message isn't revealing the problem please set ACTIONS_STEP_DEBUG to true in your repository's secrets menu and run the workflow again. -->
## Workflow
<!-- Please provide a link or snippet of your workflow yml file. -->
## Additional Comments ## Additional Comments

View File

@ -6,3 +6,10 @@ updates:
interval: daily interval: daily
time: '10:00' time: '10:00'
open-pull-requests-limit: 10 open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: '/'
schedule:
interval: daily
time: '10:00'
open-pull-requests-limit: 10

View File

@ -14,9 +14,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
@ -31,7 +31,7 @@ jobs:
yarn test yarn test
- name: Uploade CodeCov Report - name: Uploade CodeCov Report
uses: codecov/codecov-action@v1 uses: codecov/codecov-action@v2.1.0
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
@ -39,9 +39,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
@ -77,11 +77,11 @@ jobs:
max-parallel: 1 max-parallel: 1
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'

View File

@ -19,7 +19,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v1

View File

@ -8,12 +8,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
# Workflow dispatch event that pushes the current version to the release branch. # Workflow dispatch event that pushes the current version to the release branch.
# From here the secondary production deployment workflow will trigger to build the dependencies. # From here the secondary production deployment workflow will trigger to build the dependencies.
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.0.0 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
branch: releases/v4 branch: releases/v4
folder: . folder: .

View File

@ -20,10 +20,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
git-config-name: Montezuma git-config-name: Montezuma
git-config-email: montezuma@jamesiv.es git-config-email: montezuma@jamesiv.es
@ -44,7 +44,7 @@ jobs:
uses: actions/checkout@v1 uses: actions/checkout@v1
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
token: ${{ secrets.ACCESS_TOKEN }} token: ${{ secrets.ACCESS_TOKEN }}
branch: gh-pages branch: gh-pages
@ -55,7 +55,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -66,12 +66,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
branch: gh-pages branch: gh-pages
folder: integration folder: integration
@ -79,7 +79,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -94,7 +94,7 @@ jobs:
LANG: C.UTF-8 LANG: C.UTF-8
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
@ -103,7 +103,7 @@ jobs:
apt-get update && apt-get install -y rsync apt-get update && apt-get install -y rsync
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
branch: gh-pages branch: gh-pages
folder: integration folder: integration
@ -111,7 +111,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -122,12 +122,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
ssh-key: ${{ secrets.DEPLOY_KEY }} ssh-key: ${{ secrets.DEPLOY_KEY }}
branch: gh-pages branch: gh-pages
@ -136,7 +136,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -147,17 +147,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Install SSH Client - name: Install SSH Client
uses: webfactory/ssh-agent@v0.4.1 uses: webfactory/ssh-agent@v0.5.4
with: with:
ssh-private-key: ${{ secrets.DEPLOY_KEY }} ssh-private-key: ${{ secrets.DEPLOY_KEY }}
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
ssh-key: true ssh-key: true
branch: gh-pages branch: gh-pages
@ -166,7 +166,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -176,17 +176,17 @@ jobs:
needs: integration-ssh-third-party-client needs: integration-ssh-third-party-client
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
ssh-key: ${{ secrets.DEPLOY_KEY }} ssh-key: ${{ secrets.DEPLOY_KEY }}
branch: gh-pages branch: gh-pages
@ -195,7 +195,7 @@ jobs:
silent: true silent: true
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
ssh-key: ${{ secrets.DEPLOY_KEY }} ssh-key: ${{ secrets.DEPLOY_KEY }}
branch: gh-pages branch: gh-pages
@ -204,7 +204,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: gh-pages branches: gh-pages
@ -218,17 +218,17 @@ jobs:
integration-container, integration-container,
integration-ssh, integration-ssh,
integration-ssh-third-party-client, integration-ssh-third-party-client,
integration-env integration-env,
] ]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
token: ${{ secrets.ACCESS_TOKEN }} token: ${{ secrets.ACCESS_TOKEN }}
branch: gh-pages branch: gh-pages
@ -242,12 +242,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
persist-credentials: false persist-credentials: false
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
token: ${{ secrets.ACCESS_TOKEN }} token: ${{ secrets.ACCESS_TOKEN }}
branch: integration-test-delete-prod branch: integration-test-delete-prod
@ -256,7 +256,7 @@ jobs:
silent: true silent: true
- name: Build and Deploy - name: Build and Deploy
uses: JamesIves/github-pages-deploy-action@releases/v4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
token: ${{ secrets.ACCESS_TOKEN }} token: ${{ secrets.ACCESS_TOKEN }}
branch: integration-test-delete-prod branch: integration-test-delete-prod
@ -266,7 +266,7 @@ jobs:
silent: true silent: true
- name: Cleanup Generated Branch - name: Cleanup Generated Branch
uses: dawidd6/action-delete-branch@v2.0.1 uses: dawidd6/action-delete-branch@v3.1.0
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
branches: integration-test-delete-prod branches: integration-test-delete-prod

View File

@ -13,9 +13,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'

View File

@ -10,12 +10,12 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2.4.0
with: with:
ref: dev ref: dev
# Setup .npmrc file to publish to npm # Setup .npmrc file to publish to npm
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
@ -41,7 +41,7 @@ jobs:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# Setup .npmrc file to publish to GitHub Packages # Setup .npmrc file to publish to GitHub Packages
- uses: actions/setup-node@v1.4.4 - uses: actions/setup-node@v2.5.1
with: with:
node-version: 'v14.18.1' node-version: 'v14.18.1'
registry-url: 'https://npm.pkg.github.com' registry-url: 'https://npm.pkg.github.com'

View File

@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
- name: Generate Sponsors 💖 - name: Generate Sponsors 💖
uses: JamesIves/github-sponsors-readme-action@releases/v1 uses: JamesIves/github-sponsors-readme-action@1.0.6
with: with:
token: ${{ secrets.PAT }} token: ${{ secrets.PAT }}
file: 'README.md' file: 'README.md'
@ -20,7 +20,7 @@ jobs:
minimum: 500 minimum: 500
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
uses: JamesIves/github-pages-deploy-action@4.1.4 uses: JamesIves/github-pages-deploy-action@4.1.9
with: with:
branch: dev branch: dev
folder: '.' folder: '.'

View File

@ -52,7 +52,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2.3.1 uses: actions/checkout@v2.5.1
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
run: | run: |
@ -60,7 +60,7 @@ jobs:
npm run build npm run build
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
with: with:
branch: gh-pages # The branch the action should deploy to. branch: gh-pages # The branch the action should deploy to.
folder: build # The folder the action should deploy. folder: build # The folder the action should deploy.
@ -75,7 +75,7 @@ on:
- main - main
``` ```
It's recommended that you use [Dependabot](https://docs.github.com/en/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates) to keep your workflow up-to-date and [secure](https://github.com/features/security). You can find the latest tagged version on the [GitHub Marketplace](https://github.com/marketplace/actions/deploy-to-github-pages) or on the [releases page](https://github.com/JamesIves/github-pages-deploy-action/releases). It's recommended that you use [Dependabot](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically) to keep your workflow up-to-date and [secure](https://github.com/features/security). You can find the latest tagged version on the [GitHub Marketplace](https://github.com/marketplace/actions/deploy-to-github-pages) or on the [releases page](https://github.com/JamesIves/github-pages-deploy-action/releases).
#### Install as a Node Module 📦 #### Install as a Node Module 📦
@ -137,7 +137,7 @@ By default the action does not need any token configuration and uses the provide
| Key | Value Information | Type | Required | | Key | Value Information | Type | Required |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -------- | | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -------- |
| `git-config-name` | Allows you to customize the name that is attached to the git config which is used when pushing the deployment commits. If this is not included it will use the name in the GitHub context, followed by the name of the action. | `with` | **No** | | `git-config-name` | Allows you to customize the name that is attached to the git config which is used when pushing the deployment commits. If this is not included it will use the name in the GitHub context, followed by the name of the action. | `with` | **No** |
| `git-config-email` | Allows you to customize the email that is attached to the git config which is used when pushing the deployment commits. If this is not included it will use the email in the GitHub context, followed by a generic noreply GitHub email. You can include `<>` for the value if you wish to omit this field altogether and push the commits without an email. | `with` | **No** | | `git-config-email` | Allows you to customize the email that is attached to the git config which is used when pushing the deployment commits. If this is not included it will use the email in the GitHub context, followed by a generic noreply GitHub email. You can include `<>` for the value if you wish to omit this field altogether and push the commits without an email. | `with` | **No** |
| `repository-name` | Allows you to specify a different repository path so long as you have permissions to push to it. This should be formatted like so: `JamesIves/github-pages-deploy-action`. You'll need to use a PAT in the `token` input for this configuration option to work properly. | `with` | **No** | | `repository-name` | Allows you to specify a different repository path so long as you have permissions to push to it. This should be formatted like so: `JamesIves/github-pages-deploy-action`. You'll need to use a PAT in the `token` input for this configuration option to work properly. | `with` | **No** |
| `target-folder` | If you'd like to push the contents of the deployment folder into a specific directory on the deployment branch you can specify it here. | `with` | **No** | | `target-folder` | If you'd like to push the contents of the deployment folder into a specific directory on the deployment branch you can specify it here. | `with` | **No** |
| `commit-message` | If you need to customize the commit message for an integration you can do so. | `with` | **No** | | `commit-message` | If you need to customize the commit message for an integration you can do so. | `with` | **No** |
@ -178,7 +178,7 @@ With this configured you can then set the `ssh-key` part of the action to your p
```yml ```yml
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
with: with:
branch: gh-pages branch: gh-pages
folder: site folder: site
@ -199,7 +199,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2.3.1 uses: actions/checkout@v2.5.1
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
run: | run: |
@ -207,7 +207,7 @@ jobs:
npm run build npm run build
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
with: with:
branch: gh-pages branch: gh-pages
folder: build folder: build
@ -248,7 +248,7 @@ jobs:
runs-on: windows-latest # The first job utilizes windows-latest runs-on: windows-latest # The first job utilizes windows-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2.3.1 uses: actions/checkout@v2.5.1
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
run: | run: |
@ -266,7 +266,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2.3.1 uses: actions/checkout@v2.5.1
- name: Download Artifacts 🔻 # The built project is downloaded into the 'site' folder. - name: Download Artifacts 🔻 # The built project is downloaded into the 'site' folder.
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
@ -274,7 +274,7 @@ jobs:
name: site name: site
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
with: with:
branch: gh-pages branch: gh-pages
folder: 'site' # The deployment folder should match the name of the artifact. Even though our project builds into the 'build' folder the artifact name of 'site' must be placed here. folder: 'site' # The deployment folder should match the name of the artifact. Even though our project builds into the 'build' folder the artifact name of 'site' must be placed here.
@ -295,7 +295,7 @@ If you use a [container](https://help.github.com/en/actions/automating-your-work
apt-get update && apt-get install -y rsync apt-get update && apt-get install -y rsync
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
``` ```
--- ---
@ -318,7 +318,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v2.3.1 uses: actions/checkout@v2.5.1
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
run: | run: |
@ -326,7 +326,7 @@ jobs:
npm run build npm run build
- name: Deploy 🚀 - name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.9 uses: JamesIves/github-pages-deploy-action@4.2.0
with: with:
branch: gh-pages branch: gh-pages
folder: build folder: build

View File

@ -7,7 +7,7 @@ The current version is actively maintained and will receive frequent updates and
| Version | Supported | | Version | Supported |
| ------- | ------------------ | | ------- | ------------------ |
| 4.0.x | :white_check_mark: | | 4.0.x | :white_check_mark: |
| < 4.0.0 | :x: | | < 4.0.0 | :x: |
## Reporting a Vulnerability ## Reporting a Vulnerability

View File

@ -55,7 +55,7 @@ describe('git', () => {
}) })
await init(action) await init(action)
expect(execute).toBeCalledTimes(5) expect(execute).toBeCalledTimes(6)
}) })
it('should catch when a function throws an error', async () => { it('should catch when a function throws an error', async () => {
@ -102,7 +102,7 @@ describe('git', () => {
}) })
await init(action) await init(action)
expect(execute).toBeCalledTimes(5) expect(execute).toBeCalledTimes(6)
}) })
it('should not unset git config if a user is using ssh', async () => { it('should not unset git config if a user is using ssh', async () => {
@ -124,7 +124,7 @@ describe('git', () => {
}) })
await init(action) await init(action)
expect(execute).toBeCalledTimes(4) expect(execute).toBeCalledTimes(5)
process.env.CI = undefined process.env.CI = undefined
}) })
@ -145,7 +145,7 @@ describe('git', () => {
}) })
await init(action) await init(action)
expect(execute).toBeCalledTimes(5) expect(execute).toBeCalledTimes(6)
}) })
}) })

View File

@ -2,6 +2,7 @@
process.env['INPUT_FOLDER'] = 'build' process.env['INPUT_FOLDER'] = 'build'
process.env['GITHUB_SHA'] = '123' process.env['GITHUB_SHA'] = '123'
process.env['INPUT_DEBUG'] = 'debug' process.env['INPUT_DEBUG'] = 'debug'
process.env['GITHUB_REF_NAME'] = 'test'
import '../src/main' import '../src/main'
import {action, TestFlag} from '../src/constants' import {action, TestFlag} from '../src/constants'
@ -49,7 +50,7 @@ describe('main', () => {
debug: true debug: true
}) })
await run(action) await run(action)
expect(execute).toBeCalledTimes(15) expect(execute).toBeCalledTimes(16)
expect(rmRF).toBeCalledTimes(1) expect(rmRF).toBeCalledTimes(1)
expect(exportVariable).toBeCalledTimes(1) expect(exportVariable).toBeCalledTimes(1)
}) })
@ -69,7 +70,7 @@ describe('main', () => {
isTest: TestFlag.HAS_CHANGED_FILES isTest: TestFlag.HAS_CHANGED_FILES
}) })
await run(action) await run(action)
expect(execute).toBeCalledTimes(18) expect(execute).toBeCalledTimes(19)
expect(rmRF).toBeCalledTimes(1) expect(rmRF).toBeCalledTimes(1)
expect(exportVariable).toBeCalledTimes(1) expect(exportVariable).toBeCalledTimes(1)
}) })

View File

@ -2,7 +2,7 @@
"name": "@jamesives/github-pages-deploy-action", "name": "@jamesives/github-pages-deploy-action",
"description": "GitHub action for building a project and deploying it to GitHub pages.", "description": "GitHub action for building a project and deploying it to GitHub pages.",
"author": "James Ives <iam@jamesiv.es> (https://jamesiv.es)", "author": "James Ives <iam@jamesiv.es> (https://jamesiv.es)",
"version": "4.1.8", "version": "4.1.9",
"license": "MIT", "license": "MIT",
"main": "lib/lib.js", "main": "lib/lib.js",
"types": "lib/lib.d.ts", "types": "lib/lib.d.ts",

View File

@ -148,3 +148,21 @@ export enum Status {
SKIPPED = 'skipped', SKIPPED = 'skipped',
RUNNING = 'running' RUNNING = 'running'
} }
/* Platform codes. */
export enum OperatingSystems {
LINUX = 'Linux',
WINDOWS = 'Windows',
MACOS = 'macOS'
}
export const SupportedOperatingSystems = [OperatingSystems.LINUX]
/* Excluded files. */
export enum DefaultExcludedFiles {
CNAME = 'CNAME',
NOJEKYLL = '.nojekyll',
SSH = '.ssh',
GIT = '.git',
GITHUB = '.github'
}

View File

@ -1,7 +1,12 @@
import {info} from '@actions/core' import {info} from '@actions/core'
import {mkdirP, rmRF} from '@actions/io' import {mkdirP, rmRF} from '@actions/io'
import fs from 'fs' import fs from 'fs'
import {ActionInterface, Status, TestFlag} from './constants' import {
ActionInterface,
DefaultExcludedFiles,
Status,
TestFlag
} from './constants'
import {execute} from './execute' import {execute} from './execute'
import {generateWorktree} from './worktree' import {generateWorktree} from './worktree'
import { import {
@ -21,12 +26,19 @@ export async function init(action: ActionInterface): Promise<void | Error> {
action.workspace, action.workspace,
action.silent action.silent
) )
await execute( await execute(
`git config user.email "${action.email}"`, `git config user.email "${action.email}"`,
action.workspace, action.workspace,
action.silent action.silent
) )
await execute(
`git config core.ignorecase false`,
action.workspace,
action.silent
)
try { try {
if ((process.env.CI && !action.sshKey) || action.isTest) { if ((process.env.CI && !action.sshKey) || action.isTest) {
/* Ensures that previously set Git configs do not interfere with the deployment. /* Ensures that previously set Git configs do not interfere with the deployment.
@ -129,16 +141,22 @@ export async function deploy(action: ActionInterface): Promise<Status> {
} ${ } ${
action.clean action.clean
? `--delete ${excludes} ${ ? `--delete ${excludes} ${
!fs.existsSync(`${action.folderPath}/CNAME`) !fs.existsSync(
? '--exclude CNAME' `${action.folderPath}/${DefaultExcludedFiles.CNAME}`
)
? `--exclude ${DefaultExcludedFiles.CNAME}`
: '' : ''
} ${ } ${
!fs.existsSync(`${action.folderPath}/.nojekyll`) !fs.existsSync(
? '--exclude .nojekyll' `${action.folderPath}/${DefaultExcludedFiles.NOJEKYLL}`
)
? `--exclude ${DefaultExcludedFiles.NOJEKYLL}`
: '' : ''
}` }`
: '' : ''
} --exclude .ssh --exclude .git --exclude .github ${ } --exclude ${DefaultExcludedFiles.SSH} --exclude ${
DefaultExcludedFiles.GIT
} --exclude ${DefaultExcludedFiles.GITHUB} ${
action.folderPath === action.workspace action.folderPath === action.workspace
? `--exclude ${temporaryDeploymentDirectory}` ? `--exclude ${temporaryDeploymentDirectory}`
: '' : ''

View File

@ -23,12 +23,12 @@ export default async function run(
info(` info(`
GitHub Pages Deploy Action 🚀 GitHub Pages Deploy Action 🚀
🚀 Getting Started Guide: https://github.com/marketplace/actions/deploy-to-github-pages 💖 Support: https://github.com/sponsors/JamesIves
Discussions / Q&A: https://github.com/JamesIves/github-pages-deploy-action/discussions
🔧 Report a Bug: https://github.com/JamesIves/github-pages-deploy-action/issues
📣 Maintained by James Ives: https://jamesiv.es 📣 Maintained by James Ives: https://jamesiv.es
💖 Support: https://github.com/sponsors/JamesIves`)
🚀 Getting Started Guide: https://github.com/JamesIves/github-pages-deploy-action
Discussions / Q&A: https://github.com/JamesIves/github-pages-deploy-action/discussions
🔧 Report a Bug: https://github.com/JamesIves/github-pages-deploy-action/issues`)
info('Checking configuration and starting deployment… 🚦') info('Checking configuration and starting deployment… 🚦')

View File

@ -1,7 +1,12 @@
import {isDebug} from '@actions/core' import {isDebug, info} from '@actions/core'
import {existsSync} from 'fs' import {existsSync} from 'fs'
import path from 'path' import path from 'path'
import {ActionInterface, RequiredActionParameters} from './constants' import {
ActionInterface,
OperatingSystems,
RequiredActionParameters,
SupportedOperatingSystems
} from './constants'
/* Replaces all instances of a match in a string. */ /* Replaces all instances of a match in a string. */
const replaceAll = (input: string, find: string, replace: string): string => const replaceAll = (input: string, find: string, replace: string): string =>
@ -66,6 +71,16 @@ export const checkParameters = (action: ActionInterface): void => {
`The directory you're trying to deploy named ${action.folderPath} doesn't exist. Please double check the path and any prerequisite build scripts and try again. ❗` `The directory you're trying to deploy named ${action.folderPath} doesn't exist. Please double check the path and any prerequisite build scripts and try again. ❗`
) )
} }
if (
SupportedOperatingSystems.includes(
process.env.RUNNER_OS as OperatingSystems
)
) {
info(
`The operating system you're using is not supported and results may be varied. Please refer to the documentation for more details. ❗`
)
}
} }
/* Suppresses sensitive information from being exposed in error messages. */ /* Suppresses sensitive information from being exposed in error messages. */

View File

@ -43,28 +43,39 @@ export async function generateWorktree(
action.workspace, action.workspace,
action.silent action.silent
) )
const checkout = new GitCheckout(action.branch) const checkout = new GitCheckout(action.branch)
if (branchExists) { if (branchExists) {
// There's existing data on the branch to check out // There's existing data on the branch to check out
checkout.commitish = `origin/${action.branch}` checkout.commitish = `origin/${action.branch}`
} }
if (!branchExists || action.singleCommit) {
// Create a new history if we don't have the branch, or if we want to reset it if (
!branchExists ||
(action.singleCommit && action.branch !== process.env.GITHUB_REF_NAME)
) {
/* Create a new history if we don't have the branch, or if we want to reset it.
If the ref name is the same as the branch name, do not attempt to create an orphan of it. */
checkout.orphan = true checkout.orphan = true
} }
await execute( await execute(
checkout.toString(), checkout.toString(),
`${action.workspace}/${worktreedir}`, `${action.workspace}/${worktreedir}`,
action.silent action.silent
) )
if (!branchExists) { if (!branchExists) {
info(`Created the ${action.branch} branch… 🔧`) info(`Created the ${action.branch} branch… 🔧`)
// Our index is in HEAD state, reset // Our index is in HEAD state, reset
await execute( await execute(
'git reset --hard', 'git reset --hard',
`${action.workspace}/${worktreedir}`, `${action.workspace}/${worktreedir}`,
action.silent action.silent
) )
if (!action.singleCommit) { if (!action.singleCommit) {
// New history isn't singleCommit, create empty initial commit // New history isn't singleCommit, create empty initial commit
await execute( await execute(