32 Commits
v0 ... v1.0.4

Author SHA1 Message Date
James M. Greene
a597aecd27 Merge pull request #19 from kylewlacy/handle-weird-paths
Handle weird input paths
2022-09-02 17:16:39 -05:00
James M. Greene
fa880244ea Remove redundant environment variable 2022-09-02 17:14:45 -05:00
Kyle Lacy
70a14093be Handle weird input paths by passing as env var 2022-08-27 12:42:58 -07:00
James M. Greene
fb03cce750 Merge pull request #18 from actions/major-update-on-published
Run major version updates only on newly published releases
2022-08-19 13:25:51 -05:00
James M. Greene
287627f624 Trigger on "released" to avoid prereleases 2022-08-19 12:31:18 -05:00
James M. Greene
88565766e5 Only update the major tag upon publishing release 2022-08-19 12:29:14 -05:00
Yoann Chaudet
d3a918bb5e Merge pull request #16 from actions/add-tests
Add tests
2022-08-19 08:56:20 -07:00
Yoann Chaudet
8ad82273b5 Update script/new-artifact.sh
Co-authored-by: James M. Greene <JamesMGreene@github.com>
2022-08-19 08:55:21 -07:00
Yoann Chaudet
2f3239288b Update .github/workflows/test-hosted-runners.yml
Co-authored-by: James M. Greene <JamesMGreene@github.com>
2022-08-19 08:55:15 -07:00
Yoann Chaudet
fc6db751bf doc 2022-08-18 17:43:49 -07:00
Yoann Chaudet
888798aeba Add symlink check 2022-08-18 16:49:51 -07:00
Yoann Chaudet
2ab5cde5b2 Normalize 2022-08-18 16:42:34 -07:00
Yoann Chaudet
ae9ee82aa6 Add extract 2022-08-18 16:41:23 -07:00
Yoann Chaudet
78f064a158 Fix path 2022-08-18 16:36:57 -07:00
Yoann Chaudet
6b3212610f Add tests 2022-08-18 16:33:31 -07:00
James M. Greene
6a57e48bf6 Merge pull request #12 from actions/release-procedure
Update release procedure
2022-08-10 14:20:53 -05:00
James M. Greene
724b9438f5 Update release procedure 2022-08-10 14:12:37 -05:00
James M. Greene
f422a5a910 Lowercase the README title 2022-08-10 14:03:15 -05:00
James M. Greene
0ab6893735 Merge pull request #11 from actions/marketplace-action-rename
Rename to include "GitHub" in "GitHub Pages" for Marketplace
2022-08-10 14:02:16 -05:00
James M. Greene
fd7afbc054 Add author 2022-08-10 13:59:28 -05:00
James M. Greene
16e781d8a4 Update action.yml 2022-08-10 12:49:12 -05:00
Yoann Chaudet
f4e69017a7 Merge pull request #10 from Robert-96/main
Add support for macOS-based workflows
2022-08-09 11:57:32 -07:00
Dezmerean Robert
e361946409 Apply suggestions from code review
Co-authored-by: Yoann Chaudet <yoannchaudet@github.com>
2022-08-09 21:49:27 +03:00
Robert-96
ef7661905b Add support for macOS-based workflows 2022-08-09 02:25:59 +03:00
Yoann Chaudet
780ca3f8cd Merge pull request #7 from meowsbits/patch-1
fix syntax typo
2022-08-04 09:36:09 -07:00
meowsbits
4fe9084ffa fix syntax typo 2022-08-03 08:05:15 -07:00
Yoann Chaudet
ceec27c96b Merge pull request #5 from yoannchaudet/main
Add support for `tar` on Windows
2022-08-01 16:17:14 -07:00
Yoann Chaudet
4143b6e8b8 Add support for tar on Windows 2022-08-01 06:53:06 -07:00
Yoann Chaudet
9bd2be6899 Merge pull request #1 from actions/doc
Document artifacts validation + reformat a few things
2022-07-13 12:15:18 -07:00
Yoann Chaudet
763007bcf1 Merge pull request #2 from actions/ignore-gh
Also .github folder from artifacts
2022-07-13 12:14:47 -07:00
Yoann Chaudet
f4df6221cc Also .github folder from artifacts 2022-07-13 11:56:17 -07:00
Yoann Chaudet
8b46ca5bf4 Document artifacts validation + reformat a few things 2022-07-13 11:47:37 -07:00
7 changed files with 158 additions and 45 deletions

3
.github/CODEOWNERS vendored
View File

@@ -1 +1,2 @@
* @paper-spa/pages
# Default PR reviewers
* @actions/pages

View File

@@ -1,6 +1,6 @@
---
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
template: |
# Changelog
@@ -8,33 +8,33 @@ template: |
See details of [all code changes](https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION) since previous release.
categories:
- title: '🚀 Features'
- title: "🚀 Features"
labels:
- 'feature'
- 'enhancement'
- title: '🐛 Bug Fixes'
- "feature"
- "enhancement"
- title: "🐛 Bug Fixes"
labels:
- 'fix'
- 'bugfix'
- 'bug'
- title: '🧰 Maintenance'
- "fix"
- "bugfix"
- "bug"
- title: "🧰 Maintenance"
labels:
- 'infrastructure'
- 'automation'
- 'documentation'
- title: '🏎 Performance'
label: 'performance'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
- "infrastructure"
- "automation"
- "documentation"
- title: "🏎 Performance"
label: "performance"
change-template: "- $TITLE @$AUTHOR (#$NUMBER)"
version-resolver:
major:
labels:
- 'type: breaking'
- "type: breaking"
minor:
labels:
- 'type: enhancement'
- "type: enhancement"
patch:
labels:
- 'type: bug'
- 'type: maintenance'
- 'type: documentation'
default: patch
- "type: bug"
- "type: maintenance"
- "type: documentation"
default: patch

View File

@@ -1,7 +1,7 @@
name: Release
on:
release:
types: [edited]
types: [released]
workflow_dispatch:
inputs:
TAG_NAME:

View File

@@ -0,0 +1,52 @@
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:
path: artifact
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: github-pages
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

View File

@@ -1,10 +1,10 @@
# Upload-Pages-Artifact
# upload-pages-artifact
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
⚠️ Official support for building Pages with Actions is in public beta at the moment. The scope is currently limited to **public repositories only**.
⚠️ Official support for building Pages with Actions is in public beta at the moment.
# Usage
@@ -12,22 +12,31 @@ See [action.yml](action.yml)
<!-- TODO: document custom workflow -->
# 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
# Release instructions
In order to release a new version of this Action:
1. Locate the semantic version of the upcoming release (a draft is maintained by the [`draft-release` workflow][draft-release])
1. Locate the semantic version of the [upcoming release][release-list] (a draft is maintained by the [`draft-release` workflow][draft-release]).
2. Push a matching tag, for instance for `v0.1.0`:
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:
```bash
git tag v0.1.0
git push origin v0.1.0
```
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. Publish the draft release (the major tag such as `v0` will be created/updated by the [`release` workflow][release])
⚠️ Environment approval is required.
⚠️ Environment approval is required. Check the [Release workflow run list][release-workflow-runs].
# License
@@ -35,5 +44,9 @@ The scripts and documentation in this project are released under the [MIT Licens
<!-- references -->
[pages]: https://pages.github.com
[release-list]: /releases
[draft-release]: .github/workflows/draft-release.yml
[release]: .github/workflows/release.yml
[release]: .github/workflows/release.yml
[release-workflow-runs]: /actions/workflows/release.yml
[gzip]: https://en.wikipedia.org/wiki/Gzip
[tar]: https://en.wikipedia.org/wiki/Tar_(computing)

View File

@@ -1,26 +1,63 @@
name: 'Upload Pages artifact'
description: 'A composite action that prepares your static assets to be deployed to GitHub Pages'
name: "Upload GitHub Pages artifact"
description: "A composite action that prepares your static assets to be deployed to GitHub Pages"
author: "GitHub"
inputs:
path:
description: 'Path of the directoring containing the static assets.'
description: "Path of the directory containing the static assets."
required: true
default: '_site/'
default: "_site/"
retention-days:
description: 'Duration after which artifact will expire in days.'
description: "Duration after which artifact will expire in days."
required: false
default: '1'
default: "1"
runs:
using: composite
steps:
- name: Archive artifact
shell: bash
if: runner.os == 'Linux'
run: |
tar \
--dereference --hard-dereference \
--directory ${{ inputs.path }} \
-cvf ${{ runner.temp }}/artifact.tar \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
env:
INPUT_PATH: ${{ inputs.path }}
# Switch to gtar (GNU tar instead of bsdtar which is the default in the MacOS runners so we can use --hard-dereference)
- name: Archive artifact
shell: bash
if: runner.os == 'macOS'
run: |
gtar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
env:
INPUT_PATH: ${{ inputs.path }}
# Massage the paths for Windows only
- name: Archive artifact
shell: bash
if: runner.os == 'Windows'
run: |
tar \
--dereference --hard-dereference \
--directory "$INPUT_PATH" \
-cvf "$RUNNER_TEMP\artifact.tar" \
--exclude=.git \
--exclude=.github \
--force-local \
"."
env:
INPUT_PATH: ${{ inputs.path }}
- name: Upload artifact
uses: actions/upload-artifact@main
with:

10
script/new-artifact.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env sh
# Create some files and directories in the current folder
echo 'hello' > hello.txt
mkdir subdir
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