6 Commits

Author SHA1 Message Date
Jess Bees
f9b240399a Use latest actions/upload-artifact 2023-12-14 15:09:55 -05:00
James M. Greene
a753861a5d Merge pull request #69 from actions/reapply-chmod-removal-for-v2
Re-remove built-in `chmod` commands for `v2`
2023-07-10 13:12:45 -05:00
James M. Greene
dca6bac0e5 Merge branch 'main' into reapply-chmod-removal-for-v2 2023-07-10 13:04:16 -05:00
James M. Greene
3138c05496 Merge pull request #70 from actions/v2-docs-improvements
Update README for `v2`
2023-07-10 13:04:05 -05:00
James M. Greene
07f501f6a0 Update README for v2
Better topic hierarchy and more copy-paste-friendly `chmod` examples
2023-07-10 11:59:59 -05:00
James M. Greene
9c071e6bed Reapply PR #63 for v2 2023-07-10 11:05:03 -05:00
3 changed files with 40 additions and 37 deletions

View File

@@ -34,7 +34,7 @@ jobs:
path: artifact path: artifact
- name: Download artifact - name: Download artifact
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: github-pages name: github-pages
path: artifact2 path: artifact2

View File

@@ -2,17 +2,17 @@
A composite Action for packaging and uploading artifact that can be deployed to [GitHub Pages][pages]. A composite Action for packaging and uploading artifact that can be deployed to [GitHub Pages][pages].
# Scope ## Scope
⚠️ Official support for building Pages with Actions is in public beta at the moment. ⚠️ Official support for building Pages with Actions is in public beta at the moment.
# Usage ## Usage
See [action.yml](action.yml) See [action.yml](action.yml)
<!-- TODO: document custom workflow --> <!-- TODO: document custom workflow -->
# Artifact validation ## Artifact validation
While using this action is optional, we highly recommend it since it takes care of producing (mostly) valid artifacts. While using this action is optional, we highly recommend it since it takes care of producing (mostly) valid artifacts.
@@ -25,8 +25,9 @@ The [`tar` file][tar] must:
- be under 10GB in size - be under 10GB in size
- not contain any symbolic or hard links - not contain any symbolic or hard links
- contain only files and directories that all meet the expected minimum [file permissions](#file-permissions)
# File Permissions ### File permissions
When using this action, ensure that your files have appropriate file permissions. When using this action, ensure that your files have appropriate file permissions.
At a minimum, GitHub Pages expects: At a minimum, GitHub Pages expects:
@@ -35,34 +36,37 @@ At a minimum, GitHub Pages expects:
Failure to supply adequate permissions will result in a `deployment_perms_error` when attempting to deploy your artifacts to GitHub Pages. 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
```yaml ```yaml
...
runs:
using: composite
steps: steps:
- name: Archive artifact # ...
shell: sh - name: Fix permissions
if: runner.os == 'Linux'
run: | run: |
chmod -c -R +rX "$INPUT_PATH" | chmod -c -R +rX "_site/" | while read line; do
while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line" echo "::warning title=Invalid file permissions automatically fixed::$line"
done done
tar \ - name: Upload Pages artifact
--dereference --hard-dereference \ uses: actions/upload-pages-artifact@v3
--directory "$INPUT_PATH" \ # ...
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
env:
INPUT_PATH: ${{ inputs.path }}
...
``` ```
#### Example permissions fix for Mac
# Release instructions ```yaml
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@v3
# ...
```
## Release instructions
In order to release a new version of this Action: In order to release a new version of this Action:
@@ -74,7 +78,7 @@ In order to release a new version of this Action:
⚠️ Environment approval is required. Check the [Release workflow run list][release-workflow-runs]. ⚠️ Environment approval is required. Check the [Release workflow run list][release-workflow-runs].
# License ## License
The scripts and documentation in this project are released under the [MIT License](LICENSE). The scripts and documentation in this project are released under the [MIT License](LICENSE).

View File

@@ -14,6 +14,10 @@ inputs:
description: "Duration after which artifact will expire in days." description: "Duration after which artifact will expire in days."
required: false required: false
default: "1" default: "1"
outputs:
artifact_id:
description: "The ID of the artifact that was uploaded."
value: ${{ steps.upload-artifact.outputs.artifact-id }}
runs: runs:
using: composite using: composite
steps: steps:
@@ -21,9 +25,6 @@ runs:
shell: sh shell: sh
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: | run: |
chmod -c -R +rX "$INPUT_PATH" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
tar \ tar \
--dereference --hard-dereference \ --dereference --hard-dereference \
--directory "$INPUT_PATH" \ --directory "$INPUT_PATH" \
@@ -39,9 +40,6 @@ runs:
shell: sh shell: sh
if: runner.os == 'macOS' if: runner.os == 'macOS'
run: | run: |
chmod -v -R +rX "$INPUT_PATH" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
gtar \ gtar \
--dereference --hard-dereference \ --dereference --hard-dereference \
--directory "$INPUT_PATH" \ --directory "$INPUT_PATH" \
@@ -69,7 +67,8 @@ runs:
INPUT_PATH: ${{ inputs.path }} INPUT_PATH: ${{ inputs.path }}
- name: Upload artifact - name: Upload artifact
uses: actions/upload-artifact@v3 id: upload-artifact
uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.name }} name: ${{ inputs.name }}
path: ${{ runner.temp }}/artifact.tar path: ${{ runner.temp }}/artifact.tar