diff options
Diffstat (limited to 'pkg/artifacts/testdata/upload-and-download/artifacts.yml')
-rw-r--r-- | pkg/artifacts/testdata/upload-and-download/artifacts.yml | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/pkg/artifacts/testdata/upload-and-download/artifacts.yml b/pkg/artifacts/testdata/upload-and-download/artifacts.yml new file mode 100644 index 0000000..a24c061 --- /dev/null +++ b/pkg/artifacts/testdata/upload-and-download/artifacts.yml @@ -0,0 +1,230 @@ + +name: "Test that artifact uploads and downloads succeed" +on: push + +jobs: + test-artifacts: + runs-on: ubuntu-latest + steps: + - run: mkdir -p path/to/artifact + - run: echo hello > path/to/artifact/world.txt + - uses: actions/upload-artifact@v2 + with: + name: my-artifact + path: path/to/artifact/world.txt + + - run: rm -rf path + + - uses: actions/download-artifact@v2 + with: + name: my-artifact + - name: Display structure of downloaded files + run: ls -la + + # 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 + mkdir -p path/to/dir-5 + mkdir -p path/to/dir-6 + mkdir -p path/to/dir-7 + 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 + dd if=/dev/random of=path/to/dir-5/file5.rnd bs=1024 count=1024 + dd if=/dev/random of=path/to/dir-6/file6.rnd bs=1024 count=$((10*1024)) + dd if=/dev/random of=path/to/dir-7/file7.rnd bs=1024 count=$((10*1024)) + + # Upload a single file artifact + - name: 'Upload artifact #1' + uses: actions/upload-artifact@v2 + 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: actions/upload-artifact@v2 + with: + path: path/**/dir*/ + + # Upload a directory that contains a file that will be uploaded with GZip + - name: 'Upload artifact #3' + uses: actions/upload-artifact@v2 + 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: actions/upload-artifact@v2 + with: + name: 'Multi-Path-Artifact' + path: | + path/to/dir-1/* + path/to/dir-[23]/* + !path/to/dir-3/*.txt + + # Upload a mid-size file artifact + - name: 'Upload artifact #5' + uses: actions/upload-artifact@v2 + with: + name: 'Mid-Size-Artifact' + path: path/to/dir-5/file5.rnd + + # Upload a big file artifact + - name: 'Upload artifact #6' + uses: actions/upload-artifact@v2 + with: + name: 'Big-Artifact' + path: path/to/dir-6/file6.rnd + + # Upload a big file artifact twice + - name: 'Upload artifact #7 (First)' + uses: actions/upload-artifact@v2 + with: + name: 'Big-Uploaded-Twice' + path: path/to/dir-7/file7.rnd + + # Upload a big file artifact twice + - name: 'Upload artifact #7 (Second)' + uses: actions/upload-artifact@v2 + with: + name: 'Big-Uploaded-Twice' + path: path/to/dir-7/file7.rnd + + # 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@v2 + with: + name: 'Artifact-A' + path: some/new/path + + - name: 'Verify Artifact #1' + run: | + file="some/new/path/file1.txt" + if [ ! -f $file ] ; then + echo "Expected file does not exist" + exit 1 + fi + if [ "$(cat $file)" != "Lorem ipsum dolor sit amet" ] ; then + echo "File contents of downloaded artifact are incorrect" + exit 1 + fi + + # Download Artifact #2 and verify the correctness of the content + - name: 'Download artifact #2' + uses: actions/download-artifact@v2 + with: + name: 'artifact' + path: some/other/path + + - name: 'Verify Artifact #2' + run: | + file1="some/other/path/to/dir-1/file1.txt" + file2="some/other/path/to/dir-2/file2.txt" + if [ ! -f $file1 -o ! -f $file2 ] ; then + echo "Expected files do not exist" + exit 1 + fi + if [ "$(cat $file1)" != "Lorem ipsum dolor sit amet" -o "$(cat $file2)" != "Hello world from file #2" ] ; then + echo "File contents of downloaded artifacts are incorrect" + exit 1 + fi + + # Download Artifact #3 and verify the correctness of the content + - name: 'Download artifact #3' + uses: actions/download-artifact@v2 + 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 [ ! -f $gzipFile ] ; then + echo "Expected file do not exist" + exit 1 + fi + if [ "$(cat $gzipFile)" != "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" ] ; then + echo "File contents of downloaded artifact is incorrect" + exit 1 + fi + + - name: 'Download artifact #4' + uses: actions/download-artifact@v2 + with: + name: 'Multi-Path-Artifact' + path: multi/artifact + + - name: 'Verify Artifact #4' + run: | + file1="multi/artifact/dir-1/file1.txt" + file2="multi/artifact/dir-2/file2.txt" + if [ ! -f $file1 -o ! -f $file2 ] ; then + echo "Expected files do not exist" + exit 1 + fi + if [ "$(cat $file1)" != "Lorem ipsum dolor sit amet" -o "$(cat $file2)" != "Hello world from file #2" ] ; then + echo "File contents of downloaded artifacts are incorrect" + exit 1 + fi + + - name: 'Download artifact #5' + uses: actions/download-artifact@v2 + with: + name: 'Mid-Size-Artifact' + path: mid-size/artifact/path + + - name: 'Verify Artifact #5' + run: | + file="mid-size/artifact/path/file5.rnd" + if [ ! -f $file ] ; then + echo "Expected file does not exist" + exit 1 + fi + if ! diff $file path/to/dir-5/file5.rnd ; then + echo "File contents of downloaded artifact are incorrect" + exit 1 + fi + + - name: 'Download artifact #6' + uses: actions/download-artifact@v2 + with: + name: 'Big-Artifact' + path: big/artifact/path + + - name: 'Verify Artifact #6' + run: | + file="big/artifact/path/file6.rnd" + if [ ! -f $file ] ; then + echo "Expected file does not exist" + exit 1 + fi + if ! diff $file path/to/dir-6/file6.rnd ; then + echo "File contents of downloaded artifact are incorrect" + exit 1 + fi + + - name: 'Download artifact #7' + uses: actions/download-artifact@v2 + with: + name: 'Big-Uploaded-Twice' + path: big-uploaded-twice/artifact/path + + - name: 'Verify Artifact #7' + run: | + file="big-uploaded-twice/artifact/path/file7.rnd" + if [ ! -f $file ] ; then + echo "Expected file does not exist" + exit 1 + fi + if ! diff $file path/to/dir-7/file7.rnd ; then + echo "File contents of downloaded artifact are incorrect" + exit 1 + fi |