Skip to content

CI checks

CI checks #13

Workflow file for this run

on: [pull_request, workflow_dispatch]
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
prettify:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 20
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
- name: Run Prettier
run: npx prettier -c '**/*.{md,yml,yaml}'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Check Solidity formatting with forge fmt
run: |
# Stash changes from the checkout step to ignore in the formatting check
git stash -u
# Remember the current HEAD commit
BEFORE_FMT=$(git rev-parse HEAD)
# Run forge fmt to format Solidity files
forge fmt
# Check if there are any changes by comparing the current HEAD to the tree after running forge fmt
if [ -n "$(git diff $BEFORE_FMT)" ]; then
echo "Solidity files are not formatted correctly. Please run 'forge fmt' locally and commit the changes."
git diff $BEFORE_FMT
exit 1
else
echo "All Solidity files are formatted correctly."
fi
# Optional: Revert changes made by forge fmt to leave the working directory clean
- name: Revert formatting changes
if: failure()
run: git reset --hard $BEFORE_FMT
codespell:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run codespell
uses: codespell-project/[email protected]
with:
check_filenames: true
ignore_words_list: wee
skip: ./.git
validate-links:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
ruby_version:
- 3.3
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
bundler-cache: true
- name: Install awesome_bot
run: gem install awesome_bot
- name: Validate URLs
run: awesome_bot ./*.md src/**/*.sol --allow-dupe --allow-redirect --request-delay 0.4 --whitelist mainnet.infura.io/v3,localhost