86 Commits

Author SHA1 Message Date
Jess Bees
7b1f4a764d Merge pull request #127 from heavymachinery/pin-sha
Pin `actions/upload-artifact` to SHA
2025-08-14 10:24:33 -04:00
Dylan
4cc19c7d3f Pin actions/upload-artifact to SHA 2025-08-13 21:03:10 -05:00
Yoann Chaudet
2d163be3dd Merge pull request #107 from KittyChiu/main
Fix: README linting
2024-10-10 16:17:41 -07:00
Kitty Chiu
c70484322b fix: linted README 2024-10-11 10:01:46 +11:00
Yoann Chaudet
9605915f1d Merge pull request #106 from KittyChiu/kittychiu/update-readme-1
Updated usage section in readme
2024-10-10 15:41:37 -07:00
Kitty Chiu
e59cdfe6d6 Update README.md
Co-authored-by: Yoann Chaudet <yoannchaudet@github.com>
2024-10-11 08:09:29 +11:00
Kitty Chiu
a2d6704326 doc: updated usage section in readme 2024-10-10 13:59:05 +11:00
Joel Ambass
984864e7b7 Merge pull request #105 from actions/Jcambass-patch-1
Add workflow file for publishing releases to immutable action package
2024-10-01 09:54:26 +02:00
Joel Ambass
45dc78884c Add workflow file for publishing releases to immutable action package
This workflow file publishes new action releases to the immutable action package of the same name as this repo.

This is part of the Immutable Actions project which is not yet fully released to the public. First party actions like this one are part of our initial testing of this feature.
2024-09-23 15:41:49 +02:00
Fabian Aguilar Gomez
efaad07812 Merge pull request #102 from actions/hidden-files
ignore all hidden files when creating zip
2024-09-11 13:09:57 -05:00
Fabian Aguilar Gomez
fc056d0994 Merge branch 'main' into hidden-files 2024-09-11 13:09:25 -05:00
Fabian Aguilar Gomez
717c17dd70 Updates from editor 2024-09-09 15:34:39 -05:00
Fabian Aguilar Gomez
5ed71eacfa Updates from editor 2024-09-09 15:30:05 -05:00
Fabian Aguilar Gomez
2219f71d09 Updates from editor 2024-09-09 15:28:03 -05:00
Fabian Aguilar Gomez
b83d5a118e Updates from editor 2024-09-09 15:27:19 -05:00
Fabian Aguilar Gomez
a16f4a08dd Update test-hosted-runners.yml 2024-09-09 15:23:36 -05:00
Fabian Aguilar Gomez
a5aa90da21 add hidden files 2024-09-09 15:01:26 -05:00
Mingzi
2eb9582f11 Merge pull request #103 from actions/pin-release-drafter-version
pin release drafter version
2024-09-06 14:39:12 -07:00
Mingzi Yi
68c8fd1023 pin release drafter version 2024-09-06 14:27:54 -07:00
Fabian Aguilar Gomez
b73e0a2c88 Update test-hosted-runners.yml 2024-09-06 15:49:08 -05:00
Fabian Aguilar Gomez
aefddd41c8 Updates from editor 2024-09-06 15:40:26 -05:00
Fabian Aguilar Gomez
7abc80a9c4 ignore all hidden files when creating zip 2024-09-06 15:26:51 -05:00
James M. Greene
1780dfc2ce Merge pull request #72 from actions/JamesMGreene-patch-1
Update README.md to clarify tarball size limit
2024-05-01 21:25:35 -05:00
James M. Greene
36a9e8110d Merge branch 'main' into JamesMGreene-patch-1 2024-05-01 21:25:02 -05:00
James M. Greene
bb87865510 Merge pull request #96 from actions/dependabot/github_actions/release-drafter/release-drafter-6
Bump release-drafter/release-drafter from 5 to 6
2024-05-01 21:24:26 -05:00
James M. Greene
c7522bd753 Merge branch 'main' into dependabot/github_actions/release-drafter/release-drafter-6 2024-05-01 21:23:55 -05:00
James M. Greene
a8628efa7f Merge pull request #100 from actions/JamesMGreene-patch-2
README tidy up
2024-04-25 13:14:49 -05:00
James M. Greene
b443e1f622 README tidy up 2024-04-25 13:11:46 -05:00
Jess Bees
ff11fa5c8a Merge pull request #99 from actions/remove-permissions-mention
Remove mention of file permissions in README
2024-04-25 14:07:10 -04:00
Jess Bees
4ee80ee697 Remove mention of file permissions in README 2024-04-25 13:48:29 -04:00
dependabot[bot]
f98d42fd3a Bump release-drafter/release-drafter from 5 to 6
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 5 to 6.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v5...v6)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 06:18:34 +00:00
James M. Greene
56afc609e7 Merge pull request #94 from SilverRainZ/main
Group tar's output to prevent it from messing up action logs
2024-02-07 00:58:38 -06:00
James M. Greene
d12fdfb149 Merge branch 'main' into main 2024-02-07 00:57:59 -06:00
James M. Greene
aef5542762 Merge pull request #88 from uiolee/patch-1
Update README.md
2024-02-07 00:55:14 -06:00
James M. Greene
29cedd75fc Merge branch 'main' into patch-1 2024-02-07 00:54:43 -06:00
James M. Greene
a69c22e32e Merge pull request #92 from actions/dependabot/github_actions/non-breaking-changes-e893b3f303
Bump the non-breaking-changes group with 1 update
2024-02-06 23:55:47 -06:00
Shengyu Zhang
794e304fb3 Group tar's output to prevent it from messing up logs
When it is used as a component of a composite action.
2024-02-02 21:10:10 +08:00
dependabot[bot]
14007f6464 Bump the non-breaking-changes group with 1 update
Bumps the non-breaking-changes group with 1 update: [actions/publish-action](https://github.com/actions/publish-action).


Updates `actions/publish-action` from 0.2.2 to 0.3.0
- [Commits](https://github.com/actions/publish-action/compare/v0.2.2...v0.3.0)

---
updated-dependencies:
- dependency-name: actions/publish-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 17:27:38 +00:00
James M. Greene
0191170de1 Merge pull request #91 from actions/dependabot-grouping
Update Dependabot config to group non-breaking changes
2024-01-31 11:26:51 -06:00
James M. Greene
0e7832dab2 Update Dependabot config to group non-breaking changes 2024-01-31 00:33:34 -06:00
Uiolee
1a6d9fac9a Update README.md 2024-01-24 21:14:06 +08:00
Yoann Chaudet
027b0ddc3d Merge pull request #76 from actions/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-12-21 15:02:02 -08:00
Yoann Chaudet
53e19ad193 Merge branch 'main' into dependabot/github_actions/actions/checkout-4 2023-12-21 15:01:33 -08:00
Jess Bees
0252fc4ba7 Merge pull request #81 from actions/artifacts-next
Use artifacts v4
2023-12-18 20:42:36 -05:00
Jess Bees
2a5c144074 Use actions/download-artifact@v4 in test 2023-12-14 15:31:31 -05:00
Jess Bees
7e3f6bb53b Merge pull request #80 from robherley/patch-1
Use `v4` upload-artifact tag
2023-12-14 15:28:39 -05:00
Rob Herley
257e666c05 Use v4 upload-artifact tag
Artifacts v4 have been GA'd:
- https://github.blog/changelog/2023-12-14-github-actions-artifacts-v4-is-now-generally-available

We should use that tag going forward!
2023-12-14 14:04:50 -05:00
James M. Greene
0313a19afa Merge pull request #78 from konradpabjan/main
Upload pages artifact with upload-artifact v4-beta
2023-10-27 11:48:18 -05:00
Konrad Pabjan
1228e65686 Update action.yml
Co-authored-by: James M. Greene <JamesMGreene@github.com>
2023-10-27 11:19:41 -04:00
Konrad Pabjan
eb31309b6c Update artifact names in tests 2023-10-27 10:12:08 -04:00
Konrad Pabjan
241a975ec2 Correct artifact name during download 2023-10-26 14:59:03 -04:00
Konrad Pabjan
ef95519d72 Unique artifact name per job 2023-10-26 14:57:05 -04:00
Konrad Pabjan
ecdd3edff7 Switch to using download@v4-beta 2023-10-26 14:50:49 -04:00
Konrad Pabjan
e699324f6a Upload pages artifact with upload-artifact@v4-beta 2023-10-26 13:48:59 -04:00
dependabot[bot]
405e4260b4 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 07:01:08 +00:00
James M. Greene
39a95dabfa Update README.md to clarify tarball size limit 2023-07-21 22:40: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
84bb4cd4b7 Merge pull request #65 from tshepang/patch-1
readme: fix/improve note about permissions
2023-07-10 11:49:41 -05:00
James M. Greene
8f17ae6041 Update README.md 2023-07-10 11:48:50 -05:00
James M. Greene
bc7aff665b Update README.md 2023-07-10 11:48:45 -05:00
James M. Greene
6327a23a11 Merge branch 'main' into patch-1 2023-07-10 11:35:16 -05:00
James M. Greene
81e1caf958 Merge pull request #68 from actions/revert-chmod-for-v1
Revert `chmod` removal for `v1`
2023-07-10 11:26:08 -05:00
James M. Greene
9c071e6bed Reapply PR #63 for v2 2023-07-10 11:05:03 -05:00
James M. Greene
75e09bde99 Revert PR #63
It represents a breaking change that we should move into a v2.0.0 release
2023-07-10 10:54:54 -05:00
Tshepang Mbambo
74d0f02a66 readme: fix/improve note about permissions 2023-06-23 11:25:45 +02:00
Fabian Aguilar Gomez
6e866d065b Merge pull request #64 from actions/file-perms-error-docs
Add file perms handling
2023-06-19 12:59:47 -05:00
Fabian Aguilar Gomez
a3f792f9c5 Update README.md 2023-06-19 12:48:14 -05:00
Fabian Aguilar Gomez
66b63f4a7d Merge pull request #63 from actions/chmod-delete
Chmod delete
2023-06-16 13:37:20 -05:00
Mingzi
82a6ae9add Merge branch 'main' into chmod-delete 2023-06-16 11:33:49 -07:00
Fabian Aguilar Gomez
dd7005653b Update action.yml 2023-06-15 12:37:17 -05:00
Yoann Chaudet
f6a706f190 Merge pull request #62 from jsoref/use-absolute-url
Use absolute URL
2023-06-15 10:31:33 -07:00
Fabian Aguilar Gomez
2642ae83d2 Update action.yml 2023-06-13 16:33:18 -05:00
Josh Soref
4d8166c5f5 Use absolute URL 2023-06-12 14:11:29 -04:00
James M. Greene
64bcae551a Merge pull request #55 from actions/err-if-no-files-found
Fail if no artifact file is found to upload
2023-03-24 10:12:27 -05:00
James M. Greene
d07e4817c2 Lock in at a major version of actions/upload-artifact to prevent potential future breaks 2023-03-24 10:10:04 -05:00
James M. Greene
07744da919 Fail if no artifact file is found to upload
Fixes #24
2023-03-23 22:37:03 -05:00
James M. Greene
a3acd10bdf Merge pull request #53 from waldyrious/patch-1
Fix link to releases in README
2023-02-10 21:34:47 -06:00
James M. Greene
1e171d0d53 Use absolute URL 2023-02-10 21:34:01 -06:00
Waldir Pimenta
c06cea93b0 Fix link to releases in README 2023-02-05 09:27:34 +00:00
Yoann Chaudet
d8fa6d6dc2 Merge pull request #47 from actions/dependabot/github_actions/actions/publish-action-0.2.2
Bump actions/publish-action from 0.2.1 to 0.2.2
2023-01-13 14:39:12 -08:00
dependabot[bot]
2b33ce347b Bump actions/publish-action from 0.2.1 to 0.2.2
Bumps [actions/publish-action](https://github.com/actions/publish-action) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/actions/publish-action/releases)
- [Commits](https://github.com/actions/publish-action/compare/v0.2.1...v0.2.2)

---
updated-dependencies:
- dependency-name: actions/publish-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-13 22:35:44 +00:00
James M. Greene
6fae3a4821 Merge pull request #46 from actions/dependabot-config
Add Dependabot config for Actions usage updates
2023-01-13 16:35:20 -06:00
James M. Greene
c55689491b Add Dependabot config for Actions usage updates 2023-01-13 15:57:36 -06:00
8 changed files with 124 additions and 29 deletions

9
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
non-breaking-changes:
update-types: [minor, patch]

View File

@@ -8,7 +8,7 @@ jobs:
draft-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: release-drafter/release-drafter@v5
- uses: actions/checkout@v4
- uses: release-drafter/release-drafter@3f0f87098bd6b5c5b9a36d49c41d998ea58f9348
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,20 @@
name: 'Publish Immutable Action Version'
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
- name: Checking out
uses: actions/checkout@v4
- name: Publish
id: publish
uses: actions/publish-immutable-action@0.0.3

View File

@@ -24,7 +24,7 @@ jobs:
steps:
- name: Update the ${{ env.TAG_NAME }} tag
id: update-major-tag
uses: actions/publish-action@v0.2.1
uses: actions/publish-action@v0.3.0
with:
source-tag: ${{ env.TAG_NAME }}
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}

View File

@@ -22,7 +22,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Generate files
run: mkdir artifact && mkdir artifact2 && cd artifact && ../script/new-artifact.sh
@@ -31,20 +31,27 @@ jobs:
- name: Upload Pages artifact
uses: ./
with:
name: pages-artifact-${{ matrix.os }}
path: artifact
- name: Download artifact
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: github-pages
name: pages-artifact-${{ matrix.os }}
path: artifact2
- name: Extract artifact
run: tar -xf artifact2/artifact.tar -C artifact2 && rm artifact2/artifact.tar
shell: bash
- name: Check for absence of hidden files
run: if [ $(find artifact2 -regex ".*/\..*" | wc -l) != 0 ]; then echo "Hidden files found"; exit 1; fi
shell: bash
- name: Compare files
run: diff -qr artifact artifact2
run: |
rm artifact/.hidden
diff -qr artifact artifact2
shell: bash
- name: Check for absence of symlinks

View File

@@ -2,31 +2,77 @@
A composite Action for packaging and uploading artifact that can be deployed to [GitHub Pages][pages].
# Scope
## Usage
⚠️ Official support for building Pages with Actions is in public beta at the moment.
See [action.yml](action.yml) for the various `inputs` this action supports (or [below](#inputs-📥)).
# Usage
If you breakdown your workflow in two jobs (`build` and `deploy`), we recommend this action to be used in your `build` job:
See [action.yml](action.yml)
```yaml
jobs:
# Build job
build:
# Specify runner + build & upload the static files as an artifact
runs-on: ubuntu-latest
steps:
- name: Build static files
id: build
run: |
# <Not provided for brevity>
# At a minimum this step should build the static files of your site
# <Not provided for brevity>
<!-- TODO: document custom workflow -->
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v3 # or specific "vX.X.X" version tag for this action
with:
path: build_outputs_folder/
# Artifact validation
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
```
While using this action is optional, we highly recommend it since it takes care of producing (mostly) valid artifacts.
### Inputs 📥
A Pages artifact must:
| Input | Required? | Default | Description |
| ---------------- | --------- | -------------- | -------------------------------------------------- |
| `name` | `false` | `github-pages` | Artifact name |
| `path` | `true` | `_site/` | Path of the directory containing the static assets |
| `retention-days` | `false` | `1` | Duration after which artifact will expire in days |
- Be called `github-pages`
### Outputs 📤
| Output | Description |
| ------------- | ---------------------------------------- |
| `artifact_id` | The ID of the artifact that was uploaded |
## 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 [`gzip` archive][gzip] containing a single [`tar` file][tar]
The [`tar` file][tar] must:
- be under 10GB in size
- be under 10GB in size (we recommend under 1 GB!)
- :warning: The GitHub Pages [officially supported maximum size limit is 1GB][pages-usage-limits], so the subsequent deployment of larger tarballs are not guaranteed to succeed &mdash; 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
# Release instructions
## Release instructions
In order to release a new version of this Action:
@@ -34,19 +80,20 @@ In order to release a new version of this Action:
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:
3. After publishing the release, the [`release` workflow][release] will automatically run to create/update the corresponding the major version tag such as `v0`.
3. After publishing the release, the [`release` workflow][release] will automatically run to create/update the corresponding major version tag such as `v0`.
⚠️ 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).
<!-- references -->
[pages]: https://pages.github.com
[release-list]: /releases
[release-list]: https://github.com/actions/upload-pages-artifact/releases
[draft-release]: .github/workflows/draft-release.yml
[release]: .github/workflows/release.yml
[release-workflow-runs]: /actions/workflows/release.yml
[release-workflow-runs]: https://github.com/actions/upload-pages-artifact/actions/workflows/release.yml
[gzip]: https://en.wikipedia.org/wiki/Gzip
[tar]: https://en.wikipedia.org/wiki/Tar_(computing)
[pages-usage-limits]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#usage-limits

View File

@@ -14,6 +14,10 @@ inputs:
description: "Duration after which artifact will expire in days."
required: false
default: "1"
outputs:
artifact_id:
description: "The ID of the artifact that was uploaded."
value: ${{ steps.upload-artifact.outputs.artifact-id }}
runs:
using: composite
steps:
@@ -21,16 +25,16 @@ runs:
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
echo ::group::Archive artifact
tar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
--exclude=".[^/]*" \
.
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
@@ -39,16 +43,16 @@ runs:
shell: sh
if: runner.os == 'macOS'
run: |
chmod -v -R +rX "$INPUT_PATH" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
echo ::group::Archive artifact
gtar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
--exclude=".[^/]*" \
.
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
@@ -57,20 +61,25 @@ runs:
shell: bash
if: runner.os == 'Windows'
run: |
echo ::group::Archive artifact
tar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP\artifact.tar" \
--exclude=.git \
--exclude=.github \
--exclude=".[^/]*" \
--force-local \
"."
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
- name: Upload artifact
uses: actions/upload-artifact@main
id: upload-artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ runner.temp }}/artifact.tar
retention-days: ${{ inputs.retention-days }}
if-no-files-found: error

View File

@@ -8,3 +8,6 @@ echo 'world' > subdir/world.txt
# Add some symlinks (which we should dereference properly when archiving)
ln -s subdir subdir-link
ln -s hello.txt bonjour.txt
# Create some hidden files
echo 'foo' > .hidden