2022-08-10 14:03:15 -05:00
# upload-pages-artifact
2022-05-24 14:46:39 -07:00
2022-08-10 14:12:37 -05:00
A composite Action for packaging and uploading artifact that can be deployed to [GitHub Pages][pages].
2022-05-24 14:46:39 -07:00
# Scope
2022-07-13 11:47:37 -07:00
⚠️ Official support for building Pages with Actions is in public beta at the moment.
2022-05-24 14:46:39 -07:00
# Usage
See [action.yml ](action.yml )
<!-- TODO: document custom workflow -->
2022-07-13 11:47:37 -07:00
# Artifact validation
While using this action is optional, we highly recommend it since it takes care of producing (mostly) valid artifacts.
A Pages artifact must:
- Be called `github-pages`
- Be a single [`gzip` archive][gzip] containing a single [`tar` file][tar]
The [`tar` file][tar] must:
- be under 10GB in size
- not contain any symbolic or hard links
2023-06-19 12:48:14 -05:00
# File Permissions
2023-06-23 11:25:45 +02:00
When using this action, ensure that your files have appropriate file permissions.
We expect, at a minimum, for the files to have read permission for the current user (e.g 0744).
2023-06-19 12:48:14 -05:00
Failure to do so will result in a `deployment_perms_error` when attempting to deploy your artifacts.
```yaml
...
runs :
using : composite
steps :
- name : Archive artifact
shell : sh
if : runner.os == 'Linux'
run : |
chmod -c -R +rX "$INPUT_PATH" |
while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
tar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
env :
INPUT_PATH : ${{ inputs.path }}
...
```
2022-05-24 15:20:30 -07:00
# Release instructions
In order to release a new version of this Action:
2022-08-10 14:12:37 -05:00
1. Locate the semantic version of the [upcoming release][release-list] (a draft is maintained by the [`draft-release` workflow][draft-release]).
2022-05-24 15:20:30 -07:00
2022-08-10 14:12:37 -05:00
2. Publish the draft release from the `main` branch with semantic version as the tag name, _with_ the checkbox to publish to the GitHub Marketplace checked. :ballot_box_with_check:
2022-05-24 15:20:30 -07:00
2022-08-10 14:12:37 -05:00
3. After publishing the release, the [`release` workflow][release] will automatically run to create/update the corresponding the major version tag such as `v0` .
2022-05-24 15:20:30 -07:00
2022-08-10 14:12:37 -05:00
⚠️ Environment approval is required. Check the [Release workflow run list][release-workflow-runs].
2022-05-24 15:20:30 -07:00
2022-05-24 14:46:39 -07:00
# License
The scripts and documentation in this project are released under the [MIT License ](LICENSE ).
<!-- references -->
[pages]: https://pages.github.com
2023-02-10 21:34:01 -06:00
[release-list]: https://github.com/actions/upload-pages-artifact/releases
2022-05-24 15:20:30 -07:00
[draft-release]: .github/workflows/draft-release.yml
2022-07-13 11:47:37 -07:00
[release]: .github/workflows/release.yml
2023-06-12 14:11:29 -04:00
[release-workflow-runs]: https://github.com/actions/upload-pages-artifact/actions/workflows/release.yml
2022-07-13 11:47:37 -07:00
[gzip]: https://en.wikipedia.org/wiki/Gzip
2022-08-10 14:03:15 -05:00
[tar]: https://en.wikipedia.org/wiki/Tar_(computing)