ci(workflow): add 'npm' cache for actions/setup-node in .github/workflows

This commit is contained in:
Oscar Dominguez 2021-07-05 02:42:20 +02:00
parent 11e311c8b5
commit eafd8355c3
2 changed files with 133 additions and 133 deletions

View file

@ -13,8 +13,7 @@ on:
pull_request: pull_request:
branches: branches:
- main - main
workflow_dispatch: workflow_dispatch: null
jobs: jobs:
check-dist: check-dist:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -23,9 +22,10 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set Node.js 12.x - name: Set Node.js 12.x
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: 12.x node-version: 12.x
cache: npm
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci

View file

@ -4,13 +4,12 @@ on:
branches: branches:
- main - main
paths-ignore: paths-ignore:
- '**.md' - "**.md"
pull_request: pull_request:
paths-ignore: paths-ignore:
- '**.md' - "**.md"
jobs: jobs:
build: build:
name: Build name: Build
@ -22,149 +21,150 @@ jobs:
runs-on: ${{ matrix.runs-on }} runs-on: ${{ matrix.runs-on }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js 12.x - name: Set Node.js 12.x
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: 12.x node-version: 12.x
cache: npm
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Compile - name: Compile
run: npm run build run: npm run build
- name: npm test - name: npm test
run: npm test run: npm test
- name: Lint - name: Lint
run: npm run lint run: npm run lint
- name: Format - name: Format
run: npm run format-check run: npm run format-check
# Test end-to-end by uploading two artifacts and then downloading them # Test end-to-end by uploading two artifacts and then downloading them
- name: Create artifact files - name: Create artifact files
run: | run: |
mkdir -p path/to/dir-1 mkdir -p path/to/dir-1
mkdir -p path/to/dir-2 mkdir -p path/to/dir-2
mkdir -p path/to/dir-3 mkdir -p path/to/dir-3
echo "Lorem ipsum dolor sit amet" > path/to/dir-1/file1.txt echo "Lorem ipsum dolor sit amet" > path/to/dir-1/file1.txt
echo "Hello world from file #2" > path/to/dir-2/file2.txt echo "Hello world from file #2" > path/to/dir-2/file2.txt
echo "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip" > path/to/dir-3/gzip.txt echo "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip" > path/to/dir-3/gzip.txt
# Upload a single file artifact # Upload a single file artifact
- name: 'Upload artifact #1' - name: "Upload artifact #1"
uses: ./ uses: ./
with: with:
name: 'Artifact-A' name: "Artifact-A"
path: path/to/dir-1/file1.txt path: path/to/dir-1/file1.txt
# Upload using a wildcard pattern, name should default to 'artifact' if not provided # Upload using a wildcard pattern, name should default to 'artifact' if not provided
- name: 'Upload artifact #2' - name: "Upload artifact #2"
uses: ./ uses: ./
with: with:
path: path/**/dir*/ path: path/**/dir*/
# Upload a directory that contains a file that will be uploaded with GZip # Upload a directory that contains a file that will be uploaded with GZip
- name: 'Upload artifact #3' - name: "Upload artifact #3"
uses: ./ uses: ./
with: with:
name: 'GZip-Artifact' name: "GZip-Artifact"
path: path/to/dir-3/ path: path/to/dir-3/
# Upload a directory that contains a file that will be uploaded with GZip # Upload a directory that contains a file that will be uploaded with GZip
- name: 'Upload artifact #4' - name: "Upload artifact #4"
uses: ./ uses: ./
with: with:
name: 'Multi-Path-Artifact' name: "Multi-Path-Artifact"
path: | path: |
path/to/dir-1/* path/to/dir-1/*
path/to/dir-[23]/* path/to/dir-[23]/*
!path/to/dir-3/*.txt !path/to/dir-3/*.txt
# Verify artifacts. Switch to download-artifact@v2 once it's out of preview # Verify artifacts. Switch to download-artifact@v2 once it's out of preview
# Download Artifact #1 and verify the correctness of the content # Download Artifact #1 and verify the correctness of the content
- name: 'Download artifact #1' - name: "Download artifact #1"
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'Artifact-A' name: "Artifact-A"
path: some/new/path path: some/new/path
- name: 'Verify Artifact #1' - name: "Verify Artifact #1"
run: | run: |
$file = "some/new/path/file1.txt" $file = "some/new/path/file1.txt"
if(!(Test-Path -path $file)) if(!(Test-Path -path $file))
{ {
Write-Error "Expected file does not exist" Write-Error "Expected file does not exist"
} }
if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet")) if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet"))
{ {
Write-Error "File contents of downloaded artifact are incorrect" Write-Error "File contents of downloaded artifact are incorrect"
} }
shell: pwsh shell: pwsh
# Download Artifact #2 and verify the correctness of the content # Download Artifact #2 and verify the correctness of the content
- name: 'Download artifact #2' - name: "Download artifact #2"
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'artifact' name: "artifact"
path: some/other/path path: some/other/path
- name: 'Verify Artifact #2' - name: "Verify Artifact #2"
run: | run: |
$file1 = "some/other/path/to/dir-1/file1.txt" $file1 = "some/other/path/to/dir-1/file1.txt"
$file2 = "some/other/path/to/dir-2/file2.txt" $file2 = "some/other/path/to/dir-2/file2.txt"
if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) if(!(Test-Path -path $file1) -or !(Test-Path -path $file2))
{ {
Write-Error "Expected files do not exist" Write-Error "Expected files do not exist"
} }
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2")) if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2"))
{ {
Write-Error "File contents of downloaded artifacts are incorrect" Write-Error "File contents of downloaded artifacts are incorrect"
} }
shell: pwsh shell: pwsh
# Download Artifact #3 and verify the correctness of the content # Download Artifact #3 and verify the correctness of the content
- name: 'Download artifact #3' - name: "Download artifact #3"
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'GZip-Artifact' name: "GZip-Artifact"
path: gzip/artifact/path path: gzip/artifact/path
# Because a directory was used as input during the upload the parent directories, path/to/dir-3/, should not be included in the uploaded artifact # Because a directory was used as input during the upload the parent directories, path/to/dir-3/, should not be included in the uploaded artifact
- name: 'Verify Artifact #3' - name: "Verify Artifact #3"
run: | run: |
$gzipFile = "gzip/artifact/path/gzip.txt" $gzipFile = "gzip/artifact/path/gzip.txt"
if(!(Test-Path -path $gzipFile)) if(!(Test-Path -path $gzipFile))
{ {
Write-Error "Expected file do not exist" Write-Error "Expected file do not exist"
} }
if(!((Get-Content $gzipFile) -ceq "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip")) if(!((Get-Content $gzipFile) -ceq "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip"))
{ {
Write-Error "File contents of downloaded artifact is incorrect" Write-Error "File contents of downloaded artifact is incorrect"
} }
shell: pwsh shell: pwsh
- name: 'Download artifact #4' - name: "Download artifact #4"
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'Multi-Path-Artifact' name: "Multi-Path-Artifact"
path: multi/artifact path: multi/artifact
- name: 'Verify Artifact #4' - name: "Verify Artifact #4"
run: | run: |
$file1 = "multi/artifact/dir-1/file1.txt" $file1 = "multi/artifact/dir-1/file1.txt"
$file2 = "multi/artifact/dir-2/file2.txt" $file2 = "multi/artifact/dir-2/file2.txt"
if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) if(!(Test-Path -path $file1) -or !(Test-Path -path $file2))
{ {
Write-Error "Expected files do not exist" Write-Error "Expected files do not exist"
} }
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2")) if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2"))
{ {
Write-Error "File contents of downloaded artifacts are incorrect" Write-Error "File contents of downloaded artifacts are incorrect"
} }
shell: pwsh shell: pwsh