Skip to content

Update ccip-1.6.2 installation callout #21463

Update ccip-1.6.2 installation callout

Update ccip-1.6.2 installation callout #21463

Workflow file for this run

name: Test
on: [push, pull_request]
# Cancel any in-progress job or run
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
FOUNDRY_PROFILE: ci
# Set default permissions as restrictive as possible
permissions:
actions: write # Required for upload-artifact
contents: read # Required for checkout and other read operations
checks: write # Required for test results
jobs:
# Setup job to install and cache dependencies
setup:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Cache node_modules
uses: actions/cache@v4
id: cache-node-modules
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Install Dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: |
echo "Cache miss, installing dependencies..."
npm ci --prefer-offline --no-audit
# Job 1: Check Solidity Compilation and Solhint
solidity:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@50d5a8956f2e319df19e6b57539d7e2acb9f8c1e # v1.5
with:
version: stable
cache: false
- name: Show Forge version
run: forge --version
- name: Restore node_modules
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Ensure Dependencies
run: |
if [ ! -d "node_modules" ]; then
echo "node_modules not found, installing dependencies..."
npm ci --prefer-offline --no-audit
fi
- name: Check Solidity Formatting
run: npm run sol:fmt:check
- name: Check Solidity Compilation
run: forge build --sizes
- name: Check Solidity Linting
run: npm run lint-solc
# Job 2: Check ESLint
eslint:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Restore node_modules
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Ensure Dependencies
run: |
if [ ! -d "node_modules" ]; then
echo "node_modules not found, installing dependencies..."
npm ci --prefer-offline --no-audit
fi
- name: Check ESLint
run: |
echo "Running ESLint with cache..."
npm run lint -- --cache --cache-strategy content
- name: Check Formatting
run: |
echo "Running Prettier with cache..."
npm run format:check -- --cache
# Job 3: Check Internal Links
linkcheck-internal:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Restore node_modules
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Ensure Dependencies
run: |
if [ ! -d "node_modules" ]; then
echo "node_modules not found, installing dependencies..."
npm ci --prefer-offline --no-audit
fi
- name: Check Internal Links
run: npm run linkcheck-internal
# Job 4: Check Types
typecheck:
needs: [setup]
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Restore node_modules
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Ensure Dependencies
run: |
if [ ! -d "node_modules" ]; then
echo "node_modules not found, installing dependencies..."
npm ci --prefer-offline --no-audit
fi
- name: Generate Astro types
run: |
echo "Generating Astro types..."
npm run astro sync
- name: Check Types
run: |
echo "Running type check..."
npm run typecheck
# Job 5: Run Jest Tests
jest:
needs: [setup]
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
fail-fast: false
steps:
- name: Checkout Repo
uses: actions/checkout@v5
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Restore node_modules
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Ensure Dependencies
run: |
if [ ! -d "node_modules" ]; then
echo "node_modules not found, installing dependencies..."
npm ci --prefer-offline --no-audit
fi
- name: Run Jest Tests
run: npm test -- --coverage
- name: Upload Test Coverage
if: always()
uses: actions/upload-artifact@v5
with:
name: coverage-report-node-${{ matrix.node-version }}
path: coverage/
retention-days: 30