Skip to content

feat(ci): Store contract api files in repository #5

feat(ci): Store contract api files in repository

feat(ci): Store contract api files in repository #5

Workflow file for this run

name: Check API files are up to date
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
check:
runs-on: kuberunner
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install golang
uses: actions/setup-go@v5
with:
go-version: '1.20.1'
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build ethereum smart-contracts
run: forge build
working-directory: ./ethereum
- name: Build gear programs
run: cargo build --release -p bridging-payment -p erc20-relay -p vft-manager -p wrapped-vara
- name: Check that files match
run: |
stored=(
"./api/gear/bridging_payment.idl"
"./api/gear/erc20_relay.idl"
"./api/gear/vft_manager.idl"
"./api/gear/wrapped_vara.idl"
)
generated=(
"./target/wasm32-unknown-unknown/release/bridging_payment.idl"
"./target/wasm32-unknown-unknown/release/erc20_relay.idl"
"./target/wasm32-unknown-unknown/release/vft_manager.idl"
"./target/wasm32-unknown-unknown/release/wrapped_vara.idl"
)
for i in "${!stored[@]}"; do
if ! cmp -s "${stored[$i]}" "${generated[$i]}"; then
echo "API files ${stored[$i]} and ${generated[$i]} don't match."
diff "${stored[$i]}" "${generated[$i]}"
exit 1
fi
done