Create v4-beta #366
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
jobs: | |
build: | |
name: Build | |
strategy: | |
matrix: | |
runs-on: [ubuntu-latest, macos-latest, windows-latest] | |
fail-fast: false | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Node 16 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Compile | |
run: npm run build | |
- name: Lint | |
run: npm run lint | |
- name: Format | |
run: npm run format-check | |
- name: Test | |
run: npm run test | |
# 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 | |
# Download Artifact #1 and verify the correctness of the content | |
- name: 'Download artifact #1' | |
uses: actions/download-artifact@v3 | |
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 | |
- name: 'Download artifact #2' | |
uses: actions/download-artifact@v3 | |
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(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) | |
{ | |
Write-Error "Expected files do not exist" | |
} | |
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@v3 | |
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" | |
} | |
shell: pwsh | |
- name: 'Download artifact #4' | |
uses: actions/download-artifact@v3 | |
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(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) | |
{ | |
Write-Error "Expected files do not exist" | |
} | |
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 |