You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.5 KiB
YAML
93 lines
2.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Foundry
|
|
uses: onbjerg/foundry-toolchain@v1
|
|
with:
|
|
version: nightly
|
|
|
|
- name: Print forge version
|
|
run: forge --version
|
|
|
|
# Backwards compatibility checks.
|
|
- name: Check compatibility with 0.8.0
|
|
if: always()
|
|
run: forge build --skip test --use solc:0.8.0
|
|
|
|
- name: Check compatibility with 0.7.6
|
|
if: always()
|
|
run: forge build --skip test --use solc:0.7.6
|
|
|
|
- name: Check compatibility with 0.7.0
|
|
if: always()
|
|
run: forge build --skip test --use solc:0.7.0
|
|
|
|
- name: Check compatibility with 0.6.12
|
|
if: always()
|
|
run: forge build --skip test --use solc:0.6.12
|
|
|
|
- name: Check compatibility with 0.6.2
|
|
if: always()
|
|
run: forge build --skip test --use solc:0.6.2
|
|
|
|
# via-ir compilation time checks.
|
|
- name: Measure compilation time of Test with 0.8.17 --via-ir
|
|
if: always()
|
|
run: forge build --skip test --contracts test/compilation/CompilationTest.sol --use solc:0.8.17 --via-ir
|
|
|
|
- name: Measure compilation time of TestBase with 0.8.17 --via-ir
|
|
if: always()
|
|
run: forge build --skip test --contracts test/compilation/CompilationTestBase.sol --use solc:0.8.17 --via-ir
|
|
|
|
- name: Measure compilation time of Script with 0.8.17 --via-ir
|
|
if: always()
|
|
run: forge build --skip test --contracts test/compilation/CompilationScript.sol --use solc:0.8.17 --via-ir
|
|
|
|
- name: Measure compilation time of ScriptBase with 0.8.17 --via-ir
|
|
if: always()
|
|
run: forge build --skip test --contracts test/compilation/CompilationScriptBase.sol --use solc:0.8.17 --via-ir
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Foundry
|
|
uses: onbjerg/foundry-toolchain@v1
|
|
with:
|
|
version: nightly
|
|
|
|
- name: Print forge version
|
|
run: forge --version
|
|
|
|
- name: Run tests
|
|
run: forge test -vvv
|
|
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Foundry
|
|
uses: onbjerg/foundry-toolchain@v1
|
|
with:
|
|
version: nightly
|
|
|
|
- name: Print forge version
|
|
run: forge --version
|
|
|
|
- name: Check formatting
|
|
run: forge fmt --check
|