CI checks #17
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: we | |
skip: ./.git,./lib,./certora | |
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 --white-list mainnet.infura.io/v3,localhost |