Skip to content

feat(ci): add fmt workflow #6

feat(ci): add fmt workflow

feat(ci): add fmt workflow #6

Workflow file for this run

name: Forge CI to build, test and format
on:
pull_request:
push:
branches:
- main
- release/**
tags:
- "*"
env:
FOUNDRY_PROFILE: ci
jobs:
setup:
uses: ./.github/workflows/foundry-setup.yml
build:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v4
- name: Restore Foundry binaries cache
uses: actions/cache/restore@v3
with:
path: |
~/.foundry
key: ${{ needs.setup.outputs.key }}
- name: Build
run: forge build
- name: Add comment for build failure
if: failure()
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'The build has failed. Please check the logs.'
})
- name: Cache build artifacts (not binaries)
uses: actions/cache/save@v3
with:
path: |
./out
./cache
./broadcast
key: ${{ runner.os }}-build-${{ github.sha }}
test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Restore Foundry binaries cache
uses: actions/cache/restore@v3
with:
path: |
~/.foundry
key: ${{ needs.setup.outputs.key }}
- name: Restore build artifacts
uses: actions/cache/restore@v3
with:
path: |
./out
./cache
./broadcast
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Run tests
run: forge test -vvv
- name: Add comment for test failure
if: failure()
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'The tests have failed. Please check the logs.'
})
fmt:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Restore Foundry binaries cache
uses: actions/cache/restore@v3
with:
path: |
~/.foundry
key: ${{ needs.setup.outputs.key }}
- name: Restore build artifacts
uses: actions/cache/restore@v3
with:
path: |
./out
./cache
./broadcast
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Check formatting
run: forge fmt --check
- name: Add comment for format failure
if: failure()
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'The code is not formatted correctly. Please run `forge fmt` and push the changes.'
})