Skip to content

Commit e734994

Browse files
authored
v1.7.0
2 parents 9157364 + 4658ed8 commit e734994

File tree

3 files changed

+126
-111
lines changed

3 files changed

+126
-111
lines changed

.github/workflows/ArtifactsUpload.yml

Lines changed: 63 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ jobs:
2828
fail-fast: false
2929
matrix:
3030
os:
31-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
32-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
33-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
31+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
32+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
33+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
3434
defaults:
3535
run:
3636
shell: bash
@@ -92,9 +92,9 @@ jobs:
9292
fail-fast: false
9393
matrix:
9494
os:
95-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
96-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
97-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
95+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
96+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
97+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
9898
defaults:
9999
run:
100100
shell: bash
@@ -127,9 +127,9 @@ jobs:
127127
fail-fast: false
128128
matrix:
129129
os:
130-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
131-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
132-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
130+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
131+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
132+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
133133
defaults:
134134
run:
135135
shell: bash
@@ -162,9 +162,9 @@ jobs:
162162
fail-fast: false
163163
matrix:
164164
os:
165-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
166-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
167-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
165+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
166+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
167+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
168168
defaults:
169169
run:
170170
shell: bash
@@ -199,9 +199,9 @@ jobs:
199199
fail-fast: false
200200
matrix:
201201
os:
202-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
203-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
204-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
202+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
203+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
204+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
205205
defaults:
206206
run:
207207
shell: bash
@@ -238,9 +238,9 @@ jobs:
238238
fail-fast: false
239239
matrix:
240240
os:
241-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
242-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
243-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
241+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
242+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
243+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
244244
defaults:
245245
run:
246246
shell: bash
@@ -275,9 +275,9 @@ jobs:
275275
fail-fast: false
276276
matrix:
277277
os:
278-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
279-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
280-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
278+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
279+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
280+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
281281
defaults:
282282
run:
283283
shell: bash
@@ -310,9 +310,9 @@ jobs:
310310
fail-fast: false
311311
matrix:
312312
os:
313-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
314-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
315-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
313+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
314+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
315+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
316316
defaults:
317317
run:
318318
shell: bash
@@ -348,9 +348,9 @@ jobs:
348348
fail-fast: false
349349
matrix:
350350
os:
351-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
352-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
353-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
351+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
352+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
353+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
354354
defaults:
355355
run:
356356
shell: bash
@@ -387,9 +387,9 @@ jobs:
387387
fail-fast: false
388388
matrix:
389389
os:
390-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
391-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
392-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
390+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
391+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
392+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
393393
defaults:
394394
run:
395395
shell: bash
@@ -426,9 +426,9 @@ jobs:
426426
fail-fast: false
427427
matrix:
428428
os:
429-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
430-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
431-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
429+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
430+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
431+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
432432

433433
steps:
434434
- name: ⏬ Checkout repository to use local actions
@@ -469,9 +469,10 @@ jobs:
469469
fail-fast: false
470470
matrix:
471471
os:
472-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
473-
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
474-
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
472+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
473+
- {icon: '🍏', name: 'macOS', image: 'macos-14' }
474+
- {icon: '🪟', name: 'Windows', image: 'windows-2022'}
475+
475476
defaults:
476477
run:
477478
shell: bash
@@ -543,10 +544,10 @@ jobs:
543544
fail-fast: false
544545
matrix:
545546
os:
546-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
547+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
547548
task:
548-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
549-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
549+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
550+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
550551
defaults:
551552
run:
552553
shell: bash
@@ -597,10 +598,10 @@ jobs:
597598
fail-fast: false
598599
matrix:
599600
os:
600-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
601+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
601602
task:
602-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
603-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
603+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
604+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
604605
defaults:
605606
run:
606607
shell: bash
@@ -653,10 +654,10 @@ jobs:
653654
fail-fast: false
654655
matrix:
655656
os:
656-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
657+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
657658
task:
658-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
659-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
659+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
660+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
660661
defaults:
661662
run:
662663
shell: bash
@@ -709,10 +710,10 @@ jobs:
709710
fail-fast: false
710711
matrix:
711712
os:
712-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
713+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
713714
task:
714-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
715-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
715+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
716+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
716717
defaults:
717718
run:
718719
shell: bash
@@ -769,10 +770,10 @@ jobs:
769770
fail-fast: false
770771
matrix:
771772
os:
772-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
773+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
773774
task:
774-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
775-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
775+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
776+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
776777
defaults:
777778
run:
778779
shell: bash
@@ -821,10 +822,10 @@ jobs:
821822
fail-fast: false
822823
matrix:
823824
os:
824-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
825+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
825826
task:
826-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
827-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
827+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
828+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
828829
defaults:
829830
run:
830831
shell: bash
@@ -877,10 +878,10 @@ jobs:
877878
fail-fast: false
878879
matrix:
879880
os:
880-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
881+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
881882
task:
882-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
883-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
883+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
884+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
884885
defaults:
885886
run:
886887
shell: bash
@@ -943,10 +944,10 @@ jobs:
943944
fail-fast: false
944945
matrix:
945946
os:
946-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
947+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
947948
task:
948-
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
949-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
949+
- {name: 'inspect', artifact: 'github', action: 'actions/upload-artifact'}
950+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
950951
defaults:
951952
run:
952953
shell: bash
@@ -1003,9 +1004,9 @@ jobs:
10031004
fail-fast: false
10041005
matrix:
10051006
os:
1006-
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
1007+
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04'}
10071008
task:
1008-
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
1009+
- {name: 'verify' , artifact: 'pyTooling', action: 'pyTooling/upload-artifact'}
10091010
defaults:
10101011
run:
10111012
shell: bash

README.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[![GitHub Workflow - Build and Test Status](https://img.shields.io/github/actions/workflow/status/pyTooling/upload-artifact/.github%2Fworkflows%2FArtifactsUpload.yml?branch=dev&logo=githubactions)](https://GitHub.com/pyTooling/upload-artifact/actions/workflows/ArtifactsUpload.yml)
2+
[![Sourcecode License](https://img.shields.io/badge/code-MIT%20License-green?longCache=true&style=flat-square&logoColor=fff)](LICENSE.md)
3+
14
# Artifact Upload Action with File Permission Preservation
25

36
This composite action, based on [`actions/upload-artifact`](https://github.com/actions/upload-artifact) and packaging
@@ -95,19 +98,27 @@ jobs:
9598

9699
## Limitations of `tar`
97100

98-
This action uses `tar` as provided by the GitHub runner's operating system images.
101+
This composite action uses `tar`/`gtar` (GNU tar) as provided by the GitHub runner's operating system images.
99102

100-
### On Linux and Windows (GNU tar)
103+
### On Linux, macOS and Windows (GNU tar)
101104

102105
To ensure files starting with a dash aren't considered command line options to `tar`, `tar` is called with
103106
`--verbatim-files-from` option.
104107

105108
To ensure files are extracted and assigned to the owner/group of the extracting user, options `--owner=root:0` and
106109
`--group=root:0` are used when creating the tarball.
107110

111+
In case, parameter `include-hidden-files` isn't set, hidden files (dot-files) are removed from the tarball in a further
112+
cleanup step using the `--delete` command. This step is needed to ensure compatibility with the original
113+
`actions/upload-artifact` action provided by GitHub.
114+
115+
### Alternative BSD tar on macOS
108116

109-
### On macOS (BSD tar)
117+
BSD tar has even worse limitations than GNU tar and offers fewer features. Thus, this composite action uses GNU tar on
118+
macOS, too. Fortunately, GNU tar (`gtar`) is already preinstalled via homebrew on all macOS runner images provided by
119+
GitHub. For more details on BSD tar expand the following collapsible section.
110120

121+
<details><summary>Unused BSD tar on macOS </summary>
111122
⚠ BSD tar doesn't support a `--delete` option. Thus, hidden files (dot files) can't be removed (excluded) from tarballs.
112123
Removing discovered hidden files afterward from created tarballs is used on runner OS providing GNU tar. This technique
113124
can't be applied to BSD tar. [^2]
@@ -126,7 +137,7 @@ as a command line option.
126137

127138
To ensure files are extracted and assigned to the owner/group of the extracting user, options `--gname=root`, `--gid=0`,
128139
`--uname=root` and `--uid=0` are used when creating the tarball.
129-
140+
</details>
130141

131142
## Dependencies
132143

0 commit comments

Comments
 (0)