# Test end-to-end by uploading two artifacts and then downloading them
- name:Create artifact files
run:|
mkdir -p path/to/dir-1
mkdir -p path/to/dir-2
mkdir -p path/to/dir-3
echo "Lorem ipsum dolor sit amet" > path/to/dir-1/file1.txt
echo "Hello world from file#2" > path/to/dir-2/file2.txt
echo "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip" > path/to/dir-3/gzip.txt
# Upload a single file artifact
- name:'Upload artifact #1'
uses:./
with:
name:'Artifact-A'
path:path/to/dir-1/file1.txt
# Upload using a wildcard pattern, name should default to 'artifact' if not provided
- name:'Upload artifact #2'
uses:./
with:
path:path/**/dir*/
# Upload a directory that contains a file that will be uploaded with GZip
- name:'Upload artifact #3'
uses:./
with:
name:'GZip-Artifact'
path:path/to/dir-3/
# Upload a directory that contains a file that will be uploaded with GZip
- name:'Upload artifact #4'
uses:./
with:
name:'Multi-Path-Artifact'
path:|
path/to/dir-1/*
path/to/dir-[23]/*
!path/to/dir-3/*.txt
# Verify artifacts. Switch to download-artifact@v2 once it's out of preview
# Download Artifact #1 and verify the correctness of the content
- name:'Download artifact #1'
uses:actions/download-artifact@v1
with:
name:'Artifact-A'
path:some/new/path
- name:'Verify Artifact #1'
run:|
$file = "some/new/path/file1.txt"
if(!(Test-Path -path $file))
{
Write-Error "Expected file does not exist"
}
if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifact are incorrect"
}
shell:pwsh
# Download Artifact #2 and verify the correctness of the content
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file#2"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell:pwsh
# Download Artifact #3 and verify the correctness of the content
- name:'Download artifact #3'
uses:actions/download-artifact@v1
with:
name:'GZip-Artifact'
path:gzip/artifact/path
# Because a directory was used as input during the upload the parent directories, path/to/dir-3/, should not be included in the uploaded artifact
- name:'Verify Artifact #3'
run:|
$gzipFile = "gzip/artifact/path/gzip.txt"
if(!(Test-Path -path $gzipFile))
{
Write-Error "Expected file do not exist"
}
if(!((Get-Content $gzipFile) -ceq "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip"))
{
Write-Error "File contents of downloaded artifact is incorrect"