upload-pages-artifact
A composite Action for packaging and uploading artifact that can be deployed to GitHub Pages.
Scope
⚠️ Official support for building Pages with Actions is in public beta at the moment.
Usage
See action.yml
Artifact validation
While choosing to use this action as part of your approach to deploying to GitHub Pages is technically optional, we highly recommend it since it takes care of producing (mostly) valid artifacts.
However, if you do not choose to use this action but still want to deploy to Pages using an Actions workflow, then you must upload an Actions artifact that meets the following criteria:
- Be named
github-pages - Be a single
gziparchive containing a singletarfile
The tar file must:
- be under 10GB in size (we recommend under 1 GB!)
- ⚠️ The GitHub Pages officially supported maximum size limit is 1GB, so the subsequent deployment of larger tarballs are not guaranteed to succeed — often because they are more prone to exceeding the maximum deployment timeout of 10 minutes.
- ⛔ However, there is also an unofficial absolute maximum size limit of 10GB, which Pages will not even attempt to deploy.
- not contain any symbolic or hard links
- contain only files and directories that all meet the expected minimum file permissions
File permissions
When using this action, ensure that your files have appropriate file permissions. At a minimum, GitHub Pages expects:
- files to have read permission for the current user and the "Others" user role (e.g.
0744,0644,0444) - directories to have read and execute permissions for the current user and the "Others" user role (e.g.
0755,0555)
Failure to supply adequate permissions will result in a deployment_perms_error when attempting to deploy your artifacts to GitHub Pages.
Example permissions fix for Linux
steps:
# ...
- name: Fix permissions
run: |
chmod -c -R +rX "_site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v2
# ...
Example permissions fix for Mac
steps:
# ...
- name: Fix permissions
run: |
chmod -v -R +rX "_site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v2
# ...
Release instructions
In order to release a new version of this Action:
-
Locate the semantic version of the upcoming release (a draft is maintained by the
draft-releaseworkflow). -
Publish the draft release from the
mainbranch with semantic version as the tag name, with the checkbox to publish to the GitHub Marketplace checked. ☑️ -
After publishing the release, the
releaseworkflow will automatically run to create/update the corresponding the major version tag such asv0.⚠️ Environment approval is required. Check the Release workflow run list.
License
The scripts and documentation in this project are released under the MIT License.