mirror of
https://github.com/actions/upload-pages-artifact.git
synced 2026-02-09 11:51:33 +00:00
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8641e8004 | ||
|
|
b27b6af8bf | ||
|
|
73907447a0 | ||
|
|
6da3417318 | ||
|
|
386aa88c28 | ||
|
|
90d4377601 | ||
|
|
79d3b41b30 | ||
|
|
7d0004809d | ||
|
|
1ca738b002 | ||
|
|
4103baae3e | ||
|
|
4506126207 | ||
|
|
6de1c7ae49 | ||
|
|
de1b81a30a | ||
|
|
61a978d261 | ||
|
|
3cb2c0f93b | ||
|
|
e02d70a4e3 | ||
|
|
73b4a0753a | ||
|
|
aff0f4398b | ||
|
|
42a1761ba2 | ||
|
|
12e73a1efa | ||
|
|
a597aecd27 | ||
|
|
fa880244ea | ||
|
|
70a14093be | ||
|
|
fb03cce750 | ||
|
|
287627f624 | ||
|
|
88565766e5 | ||
|
|
d3a918bb5e | ||
|
|
8ad82273b5 | ||
|
|
2f3239288b | ||
|
|
fc6db751bf | ||
|
|
888798aeba | ||
|
|
2ab5cde5b2 | ||
|
|
ae9ee82aa6 | ||
|
|
78f064a158 | ||
|
|
6b3212610f | ||
|
|
6a57e48bf6 | ||
|
|
724b9438f5 | ||
|
|
f422a5a910 | ||
|
|
0ab6893735 | ||
|
|
fd7afbc054 | ||
|
|
16e781d8a4 |
2
.github/workflows/draft-release.yml
vendored
2
.github/workflows/draft-release.yml
vendored
@@ -8,7 +8,7 @@ jobs:
|
||||
draft-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: release-drafter/release-drafter@v5
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -1,7 +1,7 @@
|
||||
name: Release
|
||||
on:
|
||||
release:
|
||||
types: [edited]
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
TAG_NAME:
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
steps:
|
||||
- name: Update the ${{ env.TAG_NAME }} tag
|
||||
id: update-major-tag
|
||||
uses: actions/publish-action@v0.1.0
|
||||
uses: actions/publish-action@v0.2.1
|
||||
with:
|
||||
source-tag: ${{ env.TAG_NAME }}
|
||||
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
|
||||
|
||||
52
.github/workflows/test-hosted-runners.yml
vendored
Normal file
52
.github/workflows/test-hosted-runners.yml
vendored
Normal 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
|
||||
21
README.md
21
README.md
@@ -1,6 +1,6 @@
|
||||
# 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
|
||||
|
||||
@@ -30,18 +30,13 @@ The [`tar` file][tar] must:
|
||||
|
||||
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
|
||||
|
||||
@@ -49,7 +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-workflow-runs]: /actions/workflows/release.yml
|
||||
[gzip]: https://en.wikipedia.org/wiki/Gzip
|
||||
[tar]: https://en.wikipedia.org/wiki/Tar_(computing)
|
||||
[tar]: https://en.wikipedia.org/wiki/Tar_(computing)
|
||||
|
||||
37
action.yml
37
action.yml
@@ -1,6 +1,11 @@
|
||||
name: "Upload Pages artifact"
|
||||
name: "Upload GitHub Pages artifact"
|
||||
description: "A composite action that prepares your static assets to be deployed to GitHub Pages"
|
||||
author: "GitHub"
|
||||
inputs:
|
||||
name:
|
||||
description: 'Artifact name'
|
||||
required: false
|
||||
default: 'github-pages'
|
||||
path:
|
||||
description: "Path of the directory containing the static assets."
|
||||
required: true
|
||||
@@ -13,29 +18,39 @@ runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Archive artifact
|
||||
shell: bash
|
||||
shell: sh
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
chmod -c -R +rX . | while read line; do
|
||||
echo "::warning title=Invalid file permissions automatically fixed::$line"
|
||||
done
|
||||
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
|
||||
shell: sh
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
chmod -v -R +rX . | while read line; do
|
||||
echo "::warning title=Invalid file permissions automatically fixed::$line"
|
||||
done
|
||||
gtar \
|
||||
--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 }}
|
||||
|
||||
# Massage the paths for Windows only
|
||||
- name: Archive artifact
|
||||
@@ -44,16 +59,18 @@ runs:
|
||||
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 \
|
||||
--force-local \
|
||||
"."
|
||||
env:
|
||||
INPUT_PATH: ${{ inputs.path }}
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@main
|
||||
with:
|
||||
name: github-pages
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ runner.temp }}/artifact.tar
|
||||
retention-days: ${{ inputs.retention-days }}
|
||||
|
||||
10
script/new-artifact.sh
Executable file
10
script/new-artifact.sh
Executable 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
|
||||
Reference in New Issue
Block a user