Go to file
Yannik Rödel 0c20c87f97
Add input options related to copy() (#161)
* Add absolute_build_dir input option

This commit adds absolute_build_dir as an additional input. If the
option is set, the provided build_dir argument won't be treated as a
relative path to the current working directory anymore. This is helpful
in environments like Nix, where the build is output to a static folder
(for example /nix/store).

Closes #159.

* Add follow_symlinks option

This option allows symbolic links in the source directory to be
followed, recursively copying the entire directory structure.

* Update outputs

* Add missing inputs to action.yml

* Add default values to input options

This concerns absolute_build_dir and follow_symlinks.

Co-authored-by: CrazyMax <github@crazymax.dev>

Co-authored-by: CrazyMax <github@crazymax.dev>
2022-01-13 10:51:54 +01:00
.github Update ci workflow 2022-01-12 10:03:22 +01:00
.yarn Bump @actions/core from 1.2.7 to 1.3.0 (#148) 2021-05-30 04:27:36 +02:00
dist Add input options related to copy() (#161) 2022-01-13 10:51:54 +01:00
hack Fix build.Dockerfile 2021-10-15 13:26:57 +02:00
src Add input options related to copy() (#161) 2022-01-13 10:51:54 +01:00
.dockerignore Yarn v2 (#146) 2021-05-14 23:25:37 +02:00
.editorconfig Update editorconfig 2020-04-09 03:37:51 +02:00
.gitattributes Yarn v2 (#146) 2021-05-14 23:25:37 +02:00
.gitignore Yarn v2 (#146) 2021-05-14 23:25:37 +02:00
.prettierignore Yarn v2 (#146) 2021-05-14 23:25:37 +02:00
.prettierrc.json Match vars and inputs 2019-11-06 03:02:59 +01:00
.yarnrc.yml Bump @actions/core from 1.2.7 to 1.3.0 (#148) 2021-05-30 04:27:36 +02:00
action.yml Add input options related to copy() (#161) 2022-01-13 10:51:54 +01:00
CHANGELOG.md Update CHANGELOG 2021-05-30 05:03:09 +02:00
docker-bake.hcl Yarn v2 (#146) 2021-05-14 23:25:37 +02:00
LICENSE 2021 2021-01-06 19:04:13 +01:00
package.json Bump @actions/core from 1.5.0 to 1.6.0 (#156) 2022-01-12 10:14:02 +01:00
README.md Add input options related to copy() (#161) 2022-01-13 10:51:54 +01:00
tsconfig.json Use major version of actions 2020-11-08 02:55:49 +01:00
yarn.lock Bump @actions/core from 1.5.0 to 1.6.0 (#156) 2022-01-12 10:14:02 +01:00

GitHub release GitHub marketplace CI workflow Become a sponsor Paypal Donate

About

A GitHub Action to deploy to GitHub Pages

If you are interested, check out my other :octocat: GitHub Actions!

GitHub Pages


Usage

Workflow

Below is a simple snippet to deploy to GitHub Pages with a dummy HTML page.

A workflow is also available for this repository and deploys everyday to GitHub pages.

name: website

on: push

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Gen dummy page
        run: |
          mkdir public
          cat > public/index.html <<EOL
          <!doctype html>
          <html>
            <head>
              <title>GitHub Pages deployed!</title>
            </head>
            <body>
              <p>GitHub Pages with <strong>${{ github.sha }}</strong> commit ID has been deployed through <a href="https://github.com/marketplace/actions/github-pages">GitHub Pages action</a> successfully.</p>
            </body>
          </html>
          EOL          
      -
        name: Deploy to GitHub Pages
        if: success()
        uses: crazy-max/ghaction-github-pages@v2
        with:
          target_branch: gh-pages
          build_dir: public
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Sign commits

You can use the Import GPG GitHub Action along with this one to sign commits:

      -
        name: Import GPG key
        uses: crazy-max/ghaction-import-gpg@v3
        with:
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          passphrase: ${{ secrets.PASSPHRASE }}
          git-user-signingkey: true
          git-commit-gpgsign: true
      -
        name: Deploy to GitHub Pages
        if: success()
        uses: crazy-max/ghaction-github-pages@v2
        with:
          target_branch: gh-pages
          build_dir: public
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Check availability of GitHub Pages

You can use the GitHub Status Action along with this one to check availability of GitHub Pages before deploying:

      -
        name: Check GitHub Pages status
        uses: crazy-max/ghaction-github-status@v2
        with:
          pages_threshold: major_outage
      -
        name: Deploy to GitHub Pages
        if: success()
        uses: crazy-max/ghaction-github-pages@v2
        with:
          target_branch: gh-pages
          build_dir: public
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Customizing

inputs

Following inputs can be used as step.with keys

Name Type Description
domain String Git domain (default github.com)
repo String GitHub repository where assets will be deployed (default $GITHUB_REPOSITORY)
target_branch String Git branch where assets will be deployed (default gh-pages)
keep_history Bool Create incremental commit instead of doing push force (default false)
allow_empty_commit Bool Allow an empty commit to be created (default true)
build_dir String Build directory to deploy (required)
absolute_build_dir Bool Whether to treat build_dir as an absolute path (defaults to false, making it relative to the working directory)
follow_symlinks Bool If enabled, the content of symbolic links will be copied (default false)
committer String Committer name and email address as Display Name <joe@foo.bar> (defaults to the GitHub Actions bot user)
author String Author name and email address as Display Name <joe@foo.bar> (defaults to the GitHub Actions bot user)
commit_message String Commit message (default Deploy to GitHub pages)
fqdn String Write the given domain name to the CNAME file
jekyll Bool Allow Jekyll to build your site (default true)
dry_run Bool If enabled, nothing will be pushed (default false)
verbose Bool Enable verbose output (default false)

environment variables

Following environment variables can be used as step.env keys

Name Description
GITHUB_TOKEN GITHUB_TOKEN as provided by secrets
GH_PAT Use a Personal Access Token if you want to deploy to another repo

Contributing

Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. If you want to open a pull request, please read the contributing guidelines.

You can also support this project by becoming a sponsor on GitHub or by making a Paypal donation to ensure this journey continues indefinitely!

Thanks again for your support, it is much appreciated! 🙏

License

MIT. See LICENSE for more details.