Update documentation for v4 #390
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@v4 | |
- name: Setup Node 20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.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 | |
# Upload a single file artifact | |
- name: 'Upload artifact #1' | |
uses: ./ | |
with: | |
name: 'Artifact-A-${{ matrix.runs-on }}' | |
path: path/to/dir-1/file1.txt | |
# Upload using a wildcard pattern | |
- name: 'Upload artifact #2' | |
uses: ./ | |
with: | |
name: 'Artifact-Wildcard-${{ matrix.runs-on }}' | |
path: path/**/dir*/ | |
# Upload a multi-path artifact | |
- name: 'Upload artifact #3' | |
uses: ./ | |
with: | |
name: 'Multi-Path-Artifact-${{ matrix.runs-on }}' | |
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@v4-beta | |
with: | |
name: 'Artifact-A-${{ matrix.runs-on }}' | |
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@v4-beta | |
with: | |
name: 'Artifact-Wildcard-${{ matrix.runs-on }}' | |
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 #4 and verify the correctness of the content | |
- name: 'Download artifact #4' | |
uses: actions/download-artifact@v4-beta | |
with: | |
name: 'Multi-Path-Artifact-${{ matrix.runs-on }}' | |
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 |