1
0
Fork 0
mirror of https://github.com/actions/upload-artifact synced 2024-12-22 06:22:45 +00:00

add additional integration test for merge all behavior

This commit is contained in:
Rob Herley 2024-01-23 11:15:52 -05:00
parent 90b0f8eed8
commit 53ef6987b3
No known key found for this signature in database
GPG key ID: D1602042C3543B06
2 changed files with 44 additions and 7 deletions

View file

@ -181,11 +181,45 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
# Merge Artifact-A-* from previous jobs # Merge all artifacts from previous jobs
- name: Merge - name: Merge all artifacts in run
uses: ./merge/ uses: ./merge/
with:
# our matrix produces artifacts with the same file, this prevents "stomping" on each other, also makes it
# easier to identify each of the merged artifacts
separate-directories: true
- name: 'Download merged artifacts'
uses: actions/download-artifact@v4
with: with:
name: Merged-Artifacts name: Merged-Artifacts
path: all-merged-artifacts
- name: 'Check merged artifact has directories for each artifact'
run: |
$artifacts = @(
"Artifact-A-ubuntu-latest",
"Artifact-A-macos-latest",
"Artifact-A-windows-latest",
"Artifact-Wildcard-ubuntu-latest",
"Artifact-Wildcard-macos-latest",
"Artifact-Wildcard-windows-latest",
"Multi-Path-Artifact-ubuntu-latest",
"Multi-Path-Artifact-macos-latest",
"Multi-Path-Artifact-windows-latest"
)
foreach ($artifact in $artifacts) {
$path = "all-merged-artifacts/$artifact"
if (!(Test-Path $path)) {
Write-Error "$path does not exist."
}
}
shell: pwsh
# Merge Artifact-A-* from previous jobs
- name: Merge all Artifact-A
uses: ./merge/
with:
name: Merged-Artifact-As
pattern: 'Artifact-A-*' pattern: 'Artifact-A-*'
separate-directories: true separate-directories: true
@ -193,15 +227,15 @@ jobs:
- name: 'Download merged artifacts' - name: 'Download merged artifacts'
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: Merged-Artifacts name: Merged-Artifact-As
path: merged-artifacts path: merged-artifact-a
- name: 'Verify merged artifacts' - name: 'Verify merged artifacts'
run: | run: |
$files = @( $files = @(
"merged-artifacts/Artifact-A-ubuntu-latest/file1.txt", "merged-artifact-a/Artifact-A-ubuntu-latest/file1.txt",
"merged-artifacts/Artifact-A-macos-latest/file1.txt", "merged-artifact-a/Artifact-A-macos-latest/file1.txt",
"merged-artifacts/Artifact-A-windows-latest/file1.txt" "merged-artifact-a/Artifact-A-windows-latest/file1.txt"
) )
foreach ($file in $files) { foreach ($file in $files) {
@ -214,3 +248,4 @@ jobs:
} }
} }
shell: pwsh shell: pwsh

View file

@ -41,6 +41,8 @@ The release of upload-artifact@v4 and download-artifact@v4 are major changes to
For more information, see the [`@actions/artifact`](https://github.com/actions/toolkit/tree/main/packages/artifact) documentation. For more information, see the [`@actions/artifact`](https://github.com/actions/toolkit/tree/main/packages/artifact) documentation.
There is also a new sub-action, `actions/upload-artifact/merge`. For more info, check out that action's [README](./merge/README.md).
### Improvements ### Improvements
1. Uploads are significantly faster, upwards of 90% improvement in worst case scenarios. 1. Uploads are significantly faster, upwards of 90% improvement in worst case scenarios.