| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- name: Starknet contract
- on:
- pull_request:
- paths:
- - target_chains/starknet/contracts/**
- push:
- branches:
- - main
- paths:
- - target_chains/starknet/contracts/**
- jobs:
- check:
- name: Starknet Foundry tests
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: target_chains/starknet/contracts/
- steps:
- - uses: actions/checkout@v3
- - name: Install Scarb
- uses: software-mansion/setup-scarb@v1
- with:
- tool-versions: target_chains/starknet/contracts/.tool-versions
- - name: Install Starknet Foundry
- uses: foundry-rs/setup-snfoundry@v3
- with:
- tool-versions: target_chains/starknet/contracts/.tool-versions
- - name: Install Starkli
- run: curl https://get.starkli.sh | sh && . ~/.config/.starkli/env && starkliup -v $(awk '/starkli/{print $2}' .tool-versions)
- - name: Install Katana
- run: curl -L https://install.dojoengine.org | bash && PATH="$PATH:$HOME/.config/.dojo/bin" dojoup -v $(awk '/dojo/{print $2}' .tool-versions)
- - name: Check formatting
- run: scarb fmt --check
- - name: Run tests
- run: snforge test
- - name: Build contracts
- run: scarb build
- - name: Check ABI files
- run: |
- cat target/dev/pyth_pyth.contract_class.json | jq .abi > /tmp/pyth.json
- cat target/dev/pyth_ERC20.contract_class.json | jq .abi > /tmp/erc20.json
- if ! cmp --silent /tmp/pyth.json ../sdk/js/src/abi/pyth.json ; then
- >&2 echo ABI file mismatch for sdk/js/src/abi/pyth.json
- exit 1
- fi
- if ! cmp --silent /tmp/erc20.json ../sdk/js/src/abi/erc20.json ; then
- >&2 echo ABI file mismatch for sdk/js/src/abi/erc20.json
- exit 1
- fi
- - name: Test local deployment script
- run: bash -c 'PATH="$PATH:$HOME/.config/.dojo/bin" katana & . ~/.config/.starkli/env && deploy/deploy.sh'
- - name: Verify version
- run: |
- version1=$(grep version Scarb.toml | cut -d '"' -f 2)
- version2=$(grep -A1 "fn version" src/pyth.cairo | grep "'" | cut -d "'" -f 2)
- if [ "${version1}" != "${version2}" ]; then
- >&2 echo Version mismatch in Scarb.toml and src/pyth.cairo
- exit 1
- fi
|