Compare commits

...

57 Commits

Author SHA1 Message Date
claude-ceo-assistant 17dfca638d chore: remove upstream CI workflows (mirror inertization per internal#233) 2026-05-10 14:28:28 +00:00
claude-ceo-assistant c94abe622f chore: remove upstream CI workflows (mirror inertization per internal#233) 2026-05-10 14:28:27 +00:00
claude-ceo-assistant c880721688 chore: remove upstream CI workflows (mirror inertization per internal#233) 2026-05-10 14:28:27 +00:00
claude-ceo-assistant 1620699294 chore: remove upstream CI workflows (mirror inertization per internal#233) 2026-05-10 14:28:26 +00:00
Fabian fc324d3547 Merge pull request #139 from Tom-van-Woudenberg/patch-1
Update upload-artifact action to version 7
2026-04-08 14:09:19 -05:00
Tom van Woudenberg fe9d4b7d84 Merge branch 'main' into patch-1 2026-04-08 21:07:21 +02:00
Fabian 0ca16172ca Merge pull request #137 from jonchurch/include-hidden-files
feat: add `include-hidden-files` input
2026-03-26 12:20:46 -05:00
Tom van Woudenberg 57f0e8492b Update action.yml
Co-authored-by: Martin Costello <martin@martincostello.com>
2026-03-26 07:40:27 +01:00
Tom van Woudenberg 4a90348b29 v7 --> hash 2026-03-23 08:16:10 +01:00
Tom van Woudenberg 56f665a6f2 Update upload-artifact action to version 7
As required for https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-03-11 16:16:36 +01:00
Jon Church f7615f5917 Add include-hidden-files input
# The Problem

Hidden files and directories (e.g. `.well-known`) are unconditionally excluded from the tar archive. There is no way to include them. (#129)

# The Solution

Add an `include-hidden-files` input (default `false`) that skips the `--exclude=.[^/]*` pattern when set to `true`. `.git` and `.github` are always excluded regardless. Test coverage added for the new option.

I think this is the right approach rather than #134. Keep the default behavior safe, and give a sane option to users who know what they're doing. It was safe enough for upload-artifact, it should be safe enough here.

# Context

`actions/upload-artifact` introduced hidden file exclusion and a corresponding `include-hidden-files` option in [v4.4.0](https://github.com/actions/upload-artifact/releases/tag/v4.4.0). This action adopted the same exclusion behavior in its tar step but never added the equivalent option. This PR closes that gap.

The only sane workaround without this option is to drop this action, manually create the tar, and hand it to `upload-artifact` directly. See [expressjs/expressjs.com#2173](https://github.com/expressjs/expressjs.com/pull/2173) for an example.
2026-01-30 14:03:56 -05:00
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
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
7 changed files with 79 additions and 149 deletions
+3
View File
@@ -4,3 +4,6 @@ updates:
directory: "/"
schedule:
interval: "weekly"
groups:
non-breaking-changes:
update-types: [minor, patch]
-14
View File
@@ -1,14 +0,0 @@
name: Draft release
on:
push:
branches:
- main
jobs:
draft-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-30
View File
@@ -1,30 +0,0 @@
name: Release
on:
release:
types: [released]
workflow_dispatch:
inputs:
TAG_NAME:
description: "Tag name that the major tag will point to"
required: true
env:
TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }}
permissions:
contents: write
jobs:
update_tag:
name: Update the major tag to include the ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} changes
runs-on: ubuntu-latest
environment:
# Note: this environment is protected
name: Release
steps:
- name: Update the ${{ env.TAG_NAME }} tag
id: update-major-tag
uses: actions/publish-action@v0.2.2
with:
source-tag: ${{ env.TAG_NAME }}
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
-53
View File
@@ -1,53 +0,0 @@
name: Run Tests
#
# Create some files with script/new-artifact.sh and confirm they are properly packaged and uploaded
# as artifacts with the actions.
#
# This is tested on all OS platforms where we have hosted runners.
#
on:
push:
branches:
- main
pull_request:
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Generate files
run: mkdir artifact && mkdir artifact2 && cd artifact && ../script/new-artifact.sh
shell: bash
- name: Upload Pages artifact
uses: ./
with:
name: pages-artifact-${{ matrix.os }}
path: artifact
- name: Download artifact
uses: actions/download-artifact@v4
with:
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: Compare files
run: diff -qr artifact artifact2
shell: bash
- name: Check for absence of symlinks
run: if [ $(find artifact2 -type l | wc -l) != 0 ]; then echo "Symlinks found"; exit 1; fi
shell: bash
+59 -51
View File
@@ -2,69 +2,76 @@
A composite Action for packaging and uploading artifact that can be deployed to [GitHub Pages][pages].
## Scope
⚠️ Official support for building Pages with Actions is in public beta at the moment.
## Usage
See [action.yml](action.yml)
See [action.yml](action.yml) for the various `inputs` this action supports (or [below](#inputs-📥)).
<!-- TODO: document custom workflow -->
If you breakdown your workflow in two jobs (`build` and `deploy`), we recommend this action to be used in your `build` job:
```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>
- 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/
# 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
```
### Inputs 📥
| 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 |
| `include-hidden-files` | `false` | `false` | Include hidden files and directories (those starting with a dot) in the artifact. Excludes `.git` and `.github` regardless. |
### Outputs 📤
| Output | Description |
| ------------- | ---------------------------------------- |
| `artifact_id` | The ID of the artifact that was uploaded |
## Artifact validation
While using this action is optional, we highly recommend it since it takes care of producing (mostly) valid artifacts.
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.
A Pages artifact must:
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 called `github-pages`
- 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 that all meet the expected minimum [file permissions](#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
```yaml
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
```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@v2
# ...
```
- contain only files and directories
## Release instructions
@@ -74,7 +81,7 @@ 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].
@@ -90,3 +97,4 @@ The scripts and documentation in this project are released under the [MIT Licens
[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
+14 -1
View File
@@ -14,6 +14,10 @@ inputs:
description: "Duration after which artifact will expire in days."
required: false
default: "1"
include-hidden-files:
description: "Include hidden files and directories (those starting with a dot) in the artifact. Excludes .git and .github regardless."
required: false
default: "false"
outputs:
artifact_id:
description: "The ID of the artifact that was uploaded."
@@ -25,13 +29,16 @@ runs:
shell: sh
if: runner.os == 'Linux'
run: |
echo ::group::Archive artifact
tar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
${{ inputs.include-hidden-files != 'true' && '--exclude=.[^/]*' || '' }} \
.
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
@@ -40,13 +47,16 @@ runs:
shell: sh
if: runner.os == 'macOS'
run: |
echo ::group::Archive artifact
gtar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
${{ inputs.include-hidden-files != 'true' && '--exclude=.[^/]*' || '' }} \
.
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
@@ -55,20 +65,23 @@ 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 \
${{ inputs.include-hidden-files != 'true' && '--exclude=.[^/]*' || '' }} \
--force-local \
"."
echo ::endgroup::
env:
INPUT_PATH: ${{ inputs.path }}
- name: Upload artifact
id: upload-artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ inputs.name }}
path: ${{ runner.temp }}/artifact.tar
+3
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