Skip to content

accomodate faster local deploy (#65) #45

accomodate faster local deploy (#65)

accomodate faster local deploy (#65) #45

Workflow file for this run

name: Checks
on:
pull_request:
branches:
- master
push:
branches:
- master
env:
WORKING_DIR: contracts/internal/host-chain
KEY: "0x0000000000000000000000000000000000000000000000000000000000000001"
KEY2: "0x0000000000000000000000000000000000000000000000000000000000000002"
AGGREGATOR_KEY: "0x0000000000000000000000000000000000000000000000000000000000000003"
jobs:
lint-solhint:
name: Solhint Lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts/internal/host-chain
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('contracts/internal/host-chain/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Run Solhint
run: pnpm lint:sol
storage-layout:
name: Storage Layout Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts/internal/host-chain
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('contracts/internal/host-chain/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Compile contracts
run: pnpm compile
- name: Check storage layout
run: pnpm storage-layout:check
contract-size:
name: Contract Size Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts/internal/host-chain
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('contracts/internal/host-chain/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Compile contracts
run: pnpm compile
- name: Check contract sizes
run: pnpm check:size
slither:
name: Slither Analysis
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts/internal/host-chain
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('contracts/internal/host-chain/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Compile contracts
run: pnpm compile
- name: Run Slither
uses: crytic/slither-action@v0.4.0
with:
target: contracts/internal/host-chain
solc-version: "0.8.25"
slither-config: contracts/internal/host-chain/slither.config.json
fail-on: medium
gas-report:
name: Gas Report
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts/internal/host-chain
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('contracts/internal/host-chain/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Run tests with gas reporting
run: pnpm test
env:
REPORT_GAS: "true"
GAS_REPORT_FILE: gas-report.txt
- name: Upload gas report
uses: actions/upload-artifact@v4
if: always()
with:
name: gas-report
path: contracts/internal/host-chain/gas-report.txt
retention-days: 30