|
40287
|
25745
|
139
|
5
|
9000827ccba6bdab643e8b6fd33ac0654aef8333
|
0
|
Build (ubuntu-latest)
|
1
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- ubuntu-latest
...
|
build
|
null
|
["ubuntu-latest"]
|
33374
|
2
|
1791858764
|
1791858794
|
1791844748
|
1791858794
|
|
0
|
|
0
|
Edit
Delete
|
|
40288
|
25745
|
139
|
5
|
9000827ccba6bdab643e8b6fd33ac0654aef8333
|
0
|
Build (windows-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (windows-latest)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- windows-latest
...
|
build
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844748
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40289
|
25746
|
139
|
5
|
70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3
|
0
|
Build (macos-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (macos-latest)
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
strategy:
fail-fast: "false"
matrix:
runs-on:
- macos-latest
...
|
build
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844748
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40290
|
25746
|
139
|
5
|
70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3
|
0
|
Build (ubuntu-latest)
|
1
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
strategy:
fail-fast: "false"
matrix:
runs-on:
- ubuntu-latest
...
|
build
|
null
|
["ubuntu-latest"]
|
33375
|
2
|
1791858794
|
1791858963
|
1791844748
|
1791858963
|
|
0
|
|
0
|
Edit
Delete
|
|
40291
|
25746
|
139
|
5
|
70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3
|
0
|
Build (windows-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (windows-latest)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
strategy:
fail-fast: "false"
matrix:
runs-on:
- windows-latest
...
|
build
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844748
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40292
|
25747
|
139
|
5
|
3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
0
|
Build (macos-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (macos-latest)
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- macos-latest
...
|
build
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844749
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40293
|
25747
|
139
|
5
|
3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
0
|
Build (ubuntu-latest)
|
1
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- ubuntu-latest
...
|
build
|
null
|
["ubuntu-latest"]
|
33376
|
2
|
1791858964
|
1791858994
|
1791844749
|
1791858994
|
|
0
|
|
0
|
Edit
Delete
|
|
40294
|
25747
|
139
|
5
|
3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
0
|
Build (windows-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (windows-latest)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- windows-latest
...
|
build
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844749
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40295
|
25748
|
139
|
5
|
9000827ccba6bdab643e8b6fd33ac0654aef8333
|
0
|
Build (macos-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (macos-latest)
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- macos-latest
...
|
build
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844749
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40296
|
25748
|
139
|
5
|
9000827ccba6bdab643e8b6fd33ac0654aef8333
|
0
|
Build (ubuntu-latest)
|
1
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- ubuntu-latest
...
|
build
|
null
|
["ubuntu-latest"]
|
33377
|
2
|
1791858994
|
1791859024
|
1791844749
|
1791859024
|
|
0
|
|
0
|
Edit
Delete
|
|
40297
|
25748
|
139
|
5
|
9000827ccba6bdab643e8b6fd33ac0654aef8333
|
0
|
Build (windows-latest)
|
0
|
name: Test
"on":
push:
paths-i name: Test
"on":
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
name: Build (windows-latest)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 24
uses: actions/setup-node@v4
with:
cache: npm
node-version: 24.x
- name: npm install
run: npm install
- name: Compile
run: npm run build
- name: Lint
run: npm run lint
- name: Format
run: npm run format-check
- name: Run Unit Tests
run: npm test
- name: Create artifacts
run: |
mkdir -p path/to/artifact-A
mkdir -p path/to/artifact-B
echo "Lorem ipsum dolor sit amet" > path/to/artifact-A/file-A.txt
echo "Hello world from file B" > path/to/artifact-B/file-B.txt
- name: Upload artifact A
uses: actions/upload-artifact@v4
with:
name: Artifact-A-${{ matrix.runs-on }}
path: path/to/artifact-A
- name: Upload artifact B
uses: actions/upload-artifact@v4
with:
name: Artifact-B-${{ matrix.runs-on }}
path: path/to/artifact-B
- name: Download artifact A (absolute path)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: some/new/path
- name: Download artifact A (tilde expansion)
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.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 "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
path: some/other/path
- name: Verify successful download
run: |
$fileA = "some/other/path/Artifact-A-${{ matrix.runs-on }}/file-A.txt"
$fileB = "some/other/path/Artifact-B-${{ matrix.runs-on }}/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download all Artifacts
uses: ./
with:
merge-multiple: "true"
path: single/directory
pattern: Artifact-*
- name: Verify successful download
run: |
$fileA = "single/directory/file-A.txt"
$fileB = "single/directory/file-B.txt"
if(!(Test-Path -path $fileA) -or !(Test-Path -path $fileB))
{
Write-Error "Expected files do not exist"
}
if(!((Get-Content $fileA) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $fileB) -ceq "Hello world from file B"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh
- name: Download artifact A without decompressing
uses: ./
with:
name: Artifact-A-${{ matrix.runs-on }}
path: skip-decompress-test
skip-decompress: "true"
- name: Verify skip-decompress download
run: |
$rawFile = "skip-decompress-test/Artifact-A-${{ matrix.runs-on }}.zip"
if(!(Test-Path -path $rawFile))
{
Write-Error "Expected raw artifact file does not exist at $rawFile"
}
$fileInfo = Get-Item $rawFile
if($fileInfo.Length -eq 0)
{
Write-Error "Downloaded artifact file is empty"
}
Write-Host "Successfully downloaded artifact without decompressing: $rawFile (size: $($fileInfo.Length) bytes)"
shell: pwsh
- name: Create and upload archived artifact with misleading extension
run: |
mkdir -p path/to/extension-test
echo '{"key": "value"}' > path/to/extension-test/data.json
shell: bash
- uses: actions/upload-artifact@v4
with:
name: report.txt-${{ matrix.runs-on }}.json
path: path/to/extension-test/data.json
- name: Download misleading-extension artifact without decompressing
uses: ./
with:
name: report.txt-${{ matrix.runs-on }}.json
path: ext-test/raw
skip-decompress: "true"
- name: Verify downloaded file has .zip extension appended
run: |
expected="ext-test/raw/report.txt-${{ matrix.runs-on }}.json.zip"
if [ -f "$expected" ]; then
echo "PASS: Downloaded file has .zip appended: $expected"
else
echo "FAIL: Expected $expected but got:"
ls -al ext-test/raw/
exit 1
fi
shell: bash
- name: Create artifacts with CJK names
run: |
mkdir -p path/to/cjk-artifacts
# Chinese - 土 (U+571F) known to fail, 日 (U+65E5) known to work
echo "Content for 土" > "path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt"
echo "Content for 中文测试" > "path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt"
# Japanese - katakana and kanji
echo "Content for テスト" > "path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt"
echo "Content for 東京タワー" > "path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt"
# Korean - Hangul
echo "Content for 테스트" > "path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt"
echo "Content for 서울시" > "path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt"
shell: bash
- name: Upload CJK artifact - Chinese 土
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-土-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Chinese 中文测试
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-中文测试-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese テスト
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-テスト-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Japanese 東京タワー
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-東京タワー-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 테스트
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-테스트-${{ matrix.runs-on }}.txt
- name: Upload CJK artifact - Korean 서울시
uses: actions/upload-artifact@v7
with:
archive: "false"
path: path/to/cjk-artifacts/file-서울시-${{ matrix.runs-on }}.txt
- name: Download CJK artifact - Chinese 土
uses: ./
with:
name: file-土-${{ matrix.runs-on }}.txt
path: cjk-download/土
- name: Download CJK artifact - Chinese 中文测试
uses: ./
with:
name: file-中文测试-${{ matrix.runs-on }}.txt
path: cjk-download/中文测试
- name: Download CJK artifact - Japanese テスト
uses: ./
with:
name: file-テスト-${{ matrix.runs-on }}.txt
path: cjk-download/テスト
- name: Download CJK artifact - Japanese 東京タワー
uses: ./
with:
name: file-東京タワー-${{ matrix.runs-on }}.txt
path: cjk-download/東京タワー
- name: Download CJK artifact - Korean 테스트
uses: ./
with:
name: file-테스트-${{ matrix.runs-on }}.txt
path: cjk-download/테스트
- name: Download CJK artifact - Korean 서울시
uses: ./
with:
name: file-서울시-${{ matrix.runs-on }}.txt
path: cjk-download/서울시
- name: Verify CJK artifact downloads
run: |
set -e
fail=0
check_file() {
local file="$1"
local expected="$2"
if [ ! -f "$file" ]; then
echo "FAIL: Missing file: $file"
fail=1
return
fi
actual=$(cat "$file")
if [ "$actual" != "$expected" ]; then
echo "FAIL: Content mismatch in $file"
echo " Expected: '$expected'"
echo " Got: '$actual'"
fail=1
return
fi
echo "PASS: $file"
}
echo "=== Chinese ==="
check_file "cjk-download/土/file-土-${{ matrix.runs-on }}.txt" "Content for 土"
check_file "cjk-download/中文测试/file-中文测试-${{ matrix.runs-on }}.txt" "Content for 中文测试"
echo "=== Japanese ==="
check_file "cjk-download/テスト/file-テスト-${{ matrix.runs-on }}.txt" "Content for テスト"
check_file "cjk-download/東京タワー/file-東京タワー-${{ matrix.runs-on }}.txt" "Content for 東京タワー"
echo "=== Korean ==="
check_file "cjk-download/테스트/file-테스트-${{ matrix.runs-on }}.txt" "Content for 테스트"
check_file "cjk-download/서울시/file-서울시-${{ matrix.runs-on }}.txt" "Content for 서울시"
if [ "$fail" -ne 0 ]; then
echo "Some CJK artifact checks failed"
ls -alR cjk-download/ || true
exit 1
fi
echo "All CJK artifact downloads verified successfully"
shell: bash
strategy:
fail-fast: "false"
matrix:
runs-on:
- windows-latest
...
|
build
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844749
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40298
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Fetch current list of all Cosign releases for test Fetch current list of all Cosign releases for testing...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
get_all_cosign_releases:
name: Fetch current list of all Cosign releases for testing
runs-on: ubuntu-latest
steps:
- id: get_tags
name: Get release tags
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
retries: "3"
script: |
const response = await github.rest.repos.listReleases({owner:'sigstore',repo:'cosign'});
const releases = response.data.map(release => release.tag_name);
console.log("Found releases: " + releases);
// filter out versions below v2.0.0
return releases.filter(rel => {
const version = rel.replace(/^v/, '');
const majorVersion = parseInt(version.split('.')[0]);
return majorVersion >= 2;
});
outputs:
releases: ${{ steps.get_tags.outputs.result }}
permissions:
contents: read
permissions: {}
...
|
get_all_cosign_releases
|
null
|
["ubuntu-latest"]
|
33378
|
2
|
1791859024
|
1791859054
|
1791844750
|
1791859055
|
|
0
|
|
0
|
Edit
Delete
|
|
40299
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install default version Cosign and test presence i Install default version Cosign and test presence in path (macos-latest)...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_default_version_cosign_action:
name: Install default version Cosign and test presence in path (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
- name: Check install!
run: cosign version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
echo 'should be clean'
exit 1
else
exit 0
fi
shell: bash
strategy:
matrix:
os:
- macos-latest
permissions:
contents: read
permissions: {}
...
|
test_default_version_cosign_action
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40300
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install default version Cosign and test presence i Install default version Cosign and test presence in path (ubuntu-latest)...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_default_version_cosign_action:
name: Install default version Cosign and test presence in path (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
- name: Check install!
run: cosign version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
echo 'should be clean'
exit 1
else
exit 0
fi
shell: bash
strategy:
matrix:
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_default_version_cosign_action
|
null
|
["ubuntu-latest"]
|
33379
|
2
|
1791859055
|
1791859085
|
1791844750
|
1791859085
|
|
0
|
|
0
|
Edit
Delete
|
|
40301
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install default version Cosign and test presence i Install default version Cosign and test presence in path (windows-latest)...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_default_version_cosign_action:
name: Install default version Cosign and test presence in path (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
- name: Check install!
run: cosign version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
echo 'should be clean'
exit 1
else
exit 0
fi
shell: bash
strategy:
matrix:
os:
- windows-latest
permissions:
contents: read
permissions: {}
...
|
test_default_version_cosign_action
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40302
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install existing release of Cosign and test presen Install existing release of Cosign and test presence in path (ubuntu-latest)...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_existing_release_action:
name: Install existing release of Cosign and test presence in path (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: sigstore/cosign-installer@dd6b2e2b610a11fd73dd187a43d57cc1394e35f9
- name: Check install!
run: cosign version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
echo 'should be clean'
exit 1
else
exit 0
fi
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_existing_release_action
|
null
|
["ubuntu-latest"]
|
33380
|
2
|
1791859085
|
1791859115
|
1791844750
|
1791859115
|
|
0
|
|
0
|
Edit
Delete
|
|
40303
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install Cosign ${{ matrix.cosign_release }} on ${{ Install Cosign ${{ matrix.cosign_release }} on ${{ matrix.os }} and test presence in path...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_custom:
name: Install Cosign ${{ matrix.cosign_release }} on ${{ matrix.os }} and test presence in path
runs-on: ""
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
cosign-release: ${{ matrix.cosign_release }}
- name: Check install!
run: cosign version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
echo 'should be clean'
exit 1
else
exit 0
fi
shell: bash
strategy:
fail-fast: "false"
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_custom
|
["get_all_cosign_releases"]
|
[""]
|
0
|
4
|
0
|
0
|
1791844750
|
1791859055
|
|
1
|
|
0
|
Edit
Delete
|
|
40304
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.5.0 fails on macos-lat Test unsupported version v0.5.0 fails on macos-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.5.0 fails on macos-latest
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
version:
- v0.5.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40305
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.6.0 fails on macos-lat Test unsupported version v0.6.0 fails on macos-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.6.0 fails on macos-latest
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
version:
- v0.6.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40306
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.0.0 fails on macos-lat Test unsupported version v1.0.0 fails on macos-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.0.0 fails on macos-latest
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
version:
- v1.0.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40307
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.13.6 fails on macos-la Test unsupported version v1.13.6 fails on macos-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.13.6 fails on macos-latest
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
version:
- v1.13.6
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40308
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.5.0 fails on ubuntu-la Test unsupported version v0.5.0 fails on ubuntu-latest...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.5.0 fails on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
version:
- v0.5.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["ubuntu-latest"]
|
33381
|
2
|
1791859115
|
1791859206
|
1791844750
|
1791859206
|
|
0
|
|
0
|
Edit
Delete
|
|
40309
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.6.0 fails on ubuntu-la Test unsupported version v0.6.0 fails on ubuntu-latest...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.6.0 fails on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
version:
- v0.6.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["ubuntu-latest"]
|
33382
|
1
|
1791859206
|
1791859209
|
1791844750
|
1791859209
|
|
0
|
|
0
|
Edit
Delete
|
|
40310
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.0.0 fails on ubuntu-la Test unsupported version v1.0.0 fails on ubuntu-latest...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.0.0 fails on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
version:
- v1.0.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["ubuntu-latest"]
|
33383
|
1
|
1791859209
|
1791859211
|
1791844750
|
1791859212
|
|
0
|
|
0
|
Edit
Delete
|
|
40311
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.13.6 fails on ubuntu-l Test unsupported version v1.13.6 fails on ubuntu-latest...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.13.6 fails on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
version:
- v1.13.6
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["ubuntu-latest"]
|
33384
|
1
|
1791859212
|
1791859214
|
1791844750
|
1791859214
|
|
0
|
|
0
|
Edit
Delete
|
|
40312
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.5.0 fails on windows-l Test unsupported version v0.5.0 fails on windows-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.5.0 fails on windows-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
version:
- v0.5.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40313
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v0.6.0 fails on windows-l Test unsupported version v0.6.0 fails on windows-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v0.6.0 fails on windows-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
version:
- v0.6.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40314
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.0.0 fails on windows-l Test unsupported version v1.0.0 fails on windows-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.0.0 fails on windows-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
version:
- v1.0.0
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40315
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Test unsupported version v1.13.6 fails on windows- Test unsupported version v1.13.6 fails on windows-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_unsupported_versions:
name: Test unsupported version v1.13.6 fails on windows-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- id: install-attempt
name: Install Cosign (should fail)
uses: ./
with:
cosign-release: ${{ matrix.version }}
continue-on-error: true
- name: Verify installation failed
run: |
if [[ "${{ steps.install-attempt.outcome }}" == "failure" ]]; then
echo "✅ Installation correctly failed for unsupported version ${{ matrix.version }}"
else
echo "❌ Installation should have failed for unsupported version ${{ matrix.version }}"
exit 1
fi
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
version:
- v1.13.6
permissions: {}
permissions: {}
...
|
test_unsupported_versions
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40316
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install a wrong Cosign (macos-latest)
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_wrong:
name: Try to install a wrong Cosign (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
cosign-release: honk
continue-on-error: true
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_wrong
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40317
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install a wrong Cosign (ubuntu-latest)
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_wrong:
name: Try to install a wrong Cosign (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
cosign-release: honk
continue-on-error: true
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_wrong
|
null
|
["ubuntu-latest"]
|
33385
|
1
|
1791859214
|
1791860087
|
1791844750
|
1791860087
|
|
0
|
|
0
|
Edit
Delete
|
|
40318
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install a wrong Cosign (windows-latest)
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_wrong:
name: Try to install a wrong Cosign (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
cosign-release: honk
continue-on-error: true
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_wrong
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40319
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install Custom Cosign and test presence in path (m Install Custom Cosign and test presence in path (macos-latest)...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_custom_dir:
name: Install Custom Cosign and test presence in path (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
install-dir: $HOME/.cosigntest
- name: Check install!
run: cosign version
- name: Check install dir!
run: |
[[ $(dirname "$(which cosign)") == "$HOME/.cosigntest" ]]
shell: bash
- name: Check root directory
run: |
[[ -z $(git diff --stat) ]]
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_custom_dir
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40320
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install Custom Cosign and test presence in path (u Install Custom Cosign and test presence in path (ubuntu-latest)...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_custom_dir:
name: Install Custom Cosign and test presence in path (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
install-dir: $HOME/.cosigntest
- name: Check install!
run: cosign version
- name: Check install dir!
run: |
[[ $(dirname "$(which cosign)") == "$HOME/.cosigntest" ]]
shell: bash
- name: Check root directory
run: |
[[ -z $(git diff --stat) ]]
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_custom_dir
|
null
|
["ubuntu-latest"]
|
33386
|
2
|
1791860087
|
1791863774
|
1791844750
|
1791863775
|
|
0
|
|
0
|
Edit
Delete
|
|
40321
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install Custom Cosign and test presence in path (w Install Custom Cosign and test presence in path (windows-latest)...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_custom_dir:
name: Install Custom Cosign and test presence in path (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
install-dir: $HOME/.cosigntest
- name: Check install!
run: cosign version
- name: Check install dir!
run: |
[[ $(dirname "$(which cosign)") == "$HOME/.cosigntest" ]]
shell: bash
- name: Check root directory
run: |
[[ -z $(git diff --stat) ]]
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_custom_dir
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40322
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Install Custom Cosign and test presence in path wi Install Custom Cosign and test presence in path with custom root dir (ubuntu-latest)...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_action_custom_dir_root:
name: Install Custom Cosign and test presence in path with custom root dir (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- name: Install Cosign
uses: ./
with:
install-dir: /usr/bin
use-sudo: "true"
- name: Check install!
run: cosign version
- name: Check install dir!
run: |
[[ $(dirname "$(which cosign)") == /usr/bin ]]
shell: bash
- name: Check root directory
run: |
[[ -z $(git diff --stat) ]]
shell: bash
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_action_custom_dir_root
|
null
|
["ubuntu-latest"]
|
33387
|
1
|
1791863775
|
1791869030
|
1791844750
|
1791869030
|
|
0
|
|
0
|
Edit
Delete
|
|
40323
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install cosign with go 1.26 on macos-latest
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_with_go_install:
name: Try to install cosign with go 1.26 on macos-latest
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
with:
check-latest: "true"
go-version: ${{ matrix.go_version }}
- name: Install Cosign
uses: ./
with:
cosign-release: main
- name: Check install!
run: cosign version
strategy:
fail-fast: "false"
matrix:
go_version:
- "1.26"
os:
- macos-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_with_go_install
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|
|
40324
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install cosign with go 1.26 on ubuntu-lates Try to install cosign with go 1.26 on ubuntu-latest...
|
1
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_with_go_install:
name: Try to install cosign with go 1.26 on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
with:
check-latest: "true"
go-version: ${{ matrix.go_version }}
- name: Install Cosign
uses: ./
with:
cosign-release: main
- name: Check install!
run: cosign version
strategy:
fail-fast: "false"
matrix:
go_version:
- "1.26"
os:
- ubuntu-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_with_go_install
|
null
|
["ubuntu-latest"]
|
33388
|
2
|
1791869030
|
1791871808
|
1791844750
|
1791871808
|
|
0
|
|
0
|
Edit
Delete
|
|
40325
|
25749
|
140
|
5
|
af595e623eec1ede52d6322f53b635d5def0a95a
|
0
|
Try to install cosign with go 1.26 on windows-late Try to install cosign with go 1.26 on windows-latest...
|
0
|
name: test-cosign
"on":
pull_request:
name: test-cosign
"on":
pull_request:
push:
branches:
- 'main'
jobs:
test_cosign_with_go_install:
name: Try to install cosign with go 1.26 on windows-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: "false"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
with:
check-latest: "true"
go-version: ${{ matrix.go_version }}
- name: Install Cosign
uses: ./
with:
cosign-release: main
- name: Check install!
run: cosign version
strategy:
fail-fast: "false"
matrix:
go_version:
- "1.26"
os:
- windows-latest
permissions:
contents: read
permissions: {}
...
|
test_cosign_with_go_install
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844750
|
1791950483
|
|
0
|
|
0
|
Edit
Delete
|