Release v2.0.0 (#10)
Changes for peaceiris/actions-gh-pages * update: yaml example of GitHub Actions v2 settings for MkDocs, close #8 * revert: support ACTIONS_DEPLOY_KEY (ssh deploy) again * upgrade: Hugo to v0.58.0 at example yaml * remove: steps if statement from example yaml, close #12 Changes for this repository * gha: add lint job (shellcheck and hadolint) * gha: remove tag filter * gha: remove steps if statement, close #12 * gha: add action.yml * fix: FUNDING.yml
This commit is contained in:
parent
500440b181
commit
9dbd791001
|
@ -4,8 +4,7 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
tags:
|
- 'release-v*'
|
||||||
- invalid-tag
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
@ -15,19 +14,34 @@ jobs:
|
||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
if: github.event.deleted == false
|
|
||||||
env:
|
env:
|
||||||
DOCKER_IMAGE: docker.pkg.github.com/${{ github.repository }}/action:latest
|
DOCKER_IMAGE: docker.pkg.github.com/${{ github.repository }}/action:latest
|
||||||
run: |
|
run: |
|
||||||
docker build . --file Dockerfile --tag ${DOCKER_IMAGE} ||
|
docker build . --file Dockerfile --tag ${DOCKER_IMAGE} ||
|
||||||
(echo -e "\e[31m[${GITHUB_WORKFLOW}] failed to build\e[m" && exit 1)
|
(echo -e "\e[31m[${GITHUB_WORKFLOW}] failed to build\e[m" && exit 1)
|
||||||
|
|
||||||
- name: push latest image
|
# - name: push latest image
|
||||||
if: success() && endsWith(github.ref, 'master')
|
# if: endsWith(github.ref, 'master')
|
||||||
env:
|
# env:
|
||||||
DOCKER_IMAGE: docker.pkg.github.com/${{ github.repository }}/action:latest
|
# DOCKER_IMAGE: docker.pkg.github.com/${{ github.repository }}/action:latest
|
||||||
PKG_GITHUB_TOKEN: ${{ secrets.PKG_GITHUB_TOKEN }}
|
# PKG_GITHUB_TOKEN: ${{ secrets.PKG_GITHUB_TOKEN }}
|
||||||
|
# run: |
|
||||||
|
# echo ${PKG_GITHUB_TOKEN} | docker login docker.pkg.github.com -u ${GITHUB_ACTOR} --password-stdin &&
|
||||||
|
# docker push ${DOCKER_IMAGE} &&
|
||||||
|
# docker logout
|
||||||
|
|
||||||
|
shellcheck:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
- name: shellcheck
|
||||||
|
run: shellcheck ./entrypoint.sh
|
||||||
|
|
||||||
|
hadolint:
|
||||||
|
runs-on: macOS-10.14
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
- name: hadolint
|
||||||
run: |
|
run: |
|
||||||
echo ${PKG_GITHUB_TOKEN} | docker login docker.pkg.github.com -u ${GITHUB_ACTOR} --password-stdin &&
|
brew install hadolint
|
||||||
docker push ${DOCKER_IMAGE} &&
|
hadolint ./Dockerfile
|
||||||
docker logout
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
ignored:
|
||||||
|
- DL3008
|
|
@ -1,14 +1,5 @@
|
||||||
FROM ubuntu:18.04
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
LABEL "com.github.actions.name"="Deploy to GitHub Pages for Static Site Generator"
|
|
||||||
LABEL "com.github.actions.description"="A GitHub Action to deploy your static site to GitHub Pages with Static Site Generator"
|
|
||||||
LABEL "com.github.actions.icon"="upload-cloud"
|
|
||||||
LABEL "com.github.actions.color"="blue"
|
|
||||||
|
|
||||||
LABEL "repository"="https://github.com/peaceiris/actions-gh-pages"
|
|
||||||
LABEL "homepage"="https://github.com/peaceiris/actions-gh-pages"
|
|
||||||
LABEL "maintainer"="peaceiris"
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
git \
|
git \
|
||||||
openssh-client \
|
openssh-client \
|
||||||
|
|
121
README.md
121
README.md
|
@ -18,9 +18,25 @@ A GitHub Action to deploy your static site to GitHub Pages with [Static Site Gen
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
### Create `.github/workflows/gh-pages.yml`
|
### (1) Add ssh deploy key
|
||||||
|
|
||||||
An example with Hugo action.
|
Generate your deploy key with the following command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-keygen -t rsa -b 4096 -C "your@email.com" -f gh-pages -N ""
|
||||||
|
# You will get 2 files:
|
||||||
|
# gh-pages.pub (public key)
|
||||||
|
# gh-pages (private key)
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, Go to **Repository Settings**
|
||||||
|
|
||||||
|
- Go to **Deploy Keys** and add your public key with the **Allow write access**
|
||||||
|
- Go to **Secrets** and add your private key as `ACTIONS_DEPLOY_KEY`
|
||||||
|
|
||||||
|
### (2) Create `.github/workflows/gh-pages.yml`
|
||||||
|
|
||||||
|
An example yaml file with Hugo action.
|
||||||
|
|
||||||
- [peaceiris/actions-hugo: GitHub Actions for Hugo extended](https://github.com/peaceiris/actions-hugo)
|
- [peaceiris/actions-hugo: GitHub Actions for Hugo extended](https://github.com/peaceiris/actions-hugo)
|
||||||
|
|
||||||
|
@ -40,63 +56,92 @@ jobs:
|
||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-18.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
uses: peaceiris/actions-hugo@v0.57.2
|
uses: peaceiris/actions-hugo@v0.58.0
|
||||||
if: github.event.deleted == false
|
|
||||||
with:
|
with:
|
||||||
args: --gc --minify --cleanDestinationDir
|
args: --gc --minify --cleanDestinationDir
|
||||||
|
|
||||||
- name: deploy
|
- name: deploy
|
||||||
uses: peaceiris/actions-gh-pages@v1.1.0
|
uses: peaceiris/actions-gh-pages@v2.0.0
|
||||||
if: success()
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||||
PUBLISH_BRANCH: gh-pages
|
PUBLISH_BRANCH: gh-pages
|
||||||
PUBLISH_DIR: ./public
|
PUBLISH_DIR: ./public
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
#### Pull action image from Docker Hub
|
||||||
|
|
||||||
|
You can pull a public docker image from Docker Hub.
|
||||||
|
By pulling docker images, you can reduce the overall execution time of your workflow. In addition, `latest` tag is provided.
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- uses: peaceiris/actions-gh-pages@v2.0.0
|
||||||
|
+ uses: docker://peaceiris/gh-pages:v2.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
- [peaceiris/gh-pages - Docker Hub](https://hub.docker.com/r/peaceiris/gh-pages)
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- uses: peaceiris/actions-hugo@v0.58.0
|
||||||
|
+ uses: docker://peaceiris/gha-hugo:v0.58.0
|
||||||
|
```
|
||||||
|
|
||||||
|
- [peaceiris/gha-hugo - Docker Hub](https://hub.docker.com/r/peaceiris/gha-hugo)
|
||||||
|
|
||||||
|
### `GITHUB_TOKEN`
|
||||||
|
|
||||||
|
> **NOTES**: This action supports `GITHUB_TOKEN` but it has some problems to deploy to GitHub Pages. See #9
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||||
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
### MkDocs
|
### MkDocs
|
||||||
|
|
||||||
- [peaceiris/actions-pipenv: GitHub Actions for pipenv](https://github.com/peaceiris/actions-pipenv)
|
|
||||||
- [main.workflow - peaceiris/mkdocs-material-boilerplate](https://github.com/peaceiris/mkdocs-material-boilerplate/blob/master/.github/main.workflow)
|
|
||||||
|
|
||||||
![peaceiris/actions-gh-pages latest version](https://img.shields.io/github/release/peaceiris/actions-gh-pages.svg?label=peaceiris%2Factions-gh-pages)
|
![peaceiris/actions-gh-pages latest version](https://img.shields.io/github/release/peaceiris/actions-gh-pages.svg?label=peaceiris%2Factions-gh-pages)
|
||||||
|
|
||||||
```hcl
|
```yaml
|
||||||
workflow "MkDocs workflow" {
|
name: github pages
|
||||||
on = "push"
|
|
||||||
resolves = ["deploy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
action "branch-filter" {
|
on:
|
||||||
uses = "actions/bin/filter@master"
|
push:
|
||||||
args = "branch master"
|
branches:
|
||||||
}
|
- master
|
||||||
|
|
||||||
action "pipenv-sync" {
|
jobs:
|
||||||
needs = ["branch-filter"]
|
build-deploy:
|
||||||
uses = "peaceiris/actions-pipenv@3.6"
|
runs-on: ubuntu-18.04
|
||||||
args = "sync"
|
steps:
|
||||||
}
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
action "mkdocs-build" {
|
- name: Set up Python
|
||||||
needs = ["pipenv-sync"]
|
uses: actions/setup-python@v1
|
||||||
uses = "peaceiris/actions-pipenv@3.6"
|
with:
|
||||||
args = ["run", "mkdocs", "build", "--config-file", "./mkdocs-sample.yml"]
|
python-version: '3.6'
|
||||||
}
|
architecture: 'x64'
|
||||||
|
|
||||||
action "deploy" {
|
- name: Install dependencies
|
||||||
needs = ["mkdocs-build"]
|
run: |
|
||||||
uses = "peaceiris/actions-gh-pages@v1.1.0"
|
pip install --upgrade pip
|
||||||
env = {
|
pip install -r ./requirements.txt
|
||||||
PUBLISH_DIR = "./site"
|
|
||||||
PUBLISH_BRANCH = "gh-pages"
|
- name: Build with MkDocs
|
||||||
}
|
run: mkdocs build
|
||||||
secrets = ["GITHUB_TOKEN"]
|
|
||||||
}
|
- name: Deploy to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v2.0.0
|
||||||
|
env:
|
||||||
|
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||||
|
PUBLISH_BRANCH: gh-pages
|
||||||
|
PUBLISH_DIR: ./site
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
name: 'Deploy to GitHub Pages for Static Site Generator'
|
||||||
|
description: 'A GitHub Action to deploy your static site to GitHub Pages with Static Site Generator'
|
||||||
|
author: 'peaceiris'
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: 'Dockerfile'
|
||||||
|
branding:
|
||||||
|
icon: 'upload-cloud'
|
||||||
|
color: 'blue'
|
|
@ -12,8 +12,25 @@ function print_info() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# check values
|
# check values
|
||||||
if [ -z "${GITHUB_TOKEN}" ]; then
|
if [ -n "${ACTIONS_DEPLOY_KEY}" ]; then
|
||||||
print_error "not found GITHUB_TOKEN"
|
|
||||||
|
print_info "setup with ACTIONS_DEPLOY_KEY"
|
||||||
|
|
||||||
|
mkdir /root/.ssh
|
||||||
|
ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts
|
||||||
|
echo "${ACTIONS_DEPLOY_KEY}" > /root/.ssh/id_rsa
|
||||||
|
chmod 400 /root/.ssh/id_rsa
|
||||||
|
|
||||||
|
remote_repo="git@github.com:${GITHUB_REPOSITORY}.git"
|
||||||
|
|
||||||
|
elif [ -n "${GITHUB_TOKEN}" ]; then
|
||||||
|
|
||||||
|
print_info "setup with GITHUB_TOKEN"
|
||||||
|
|
||||||
|
remote_repo="https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
||||||
|
|
||||||
|
else
|
||||||
|
print_error "not found ACTIONS_DEPLOY_KEY or GITHUB_TOKEN"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -27,7 +44,6 @@ if [ -z "${PUBLISH_DIR}" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
remote_repo="https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
|
||||||
remote_branch="${PUBLISH_BRANCH}"
|
remote_branch="${PUBLISH_BRANCH}"
|
||||||
|
|
||||||
local_dir="${HOME}/$(tr -cd 'a-f0-9' < /dev/urandom | head -c 32)"
|
local_dir="${HOME}/$(tr -cd 'a-f0-9' < /dev/urandom | head -c 32)"
|
||||||
|
|
Loading…
Reference in New Issue