chore(cairo): bound openzeppelin_interfaces to the 2.x line (#733) #1607
This file contains hidden or 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
| name: Next.js CI | |
| on: | |
| push: | |
| paths: | |
| - "packages/snfoundry/contracts/**" | |
| - "packages/nextjs/**" | |
| pull_request: | |
| branches: | |
| - main | |
| - develop | |
| paths: | |
| - "packages/nextjs/**" | |
| - "packages/snfoundry/**" | |
| permissions: | |
| contents: read | |
| jobs: | |
| ci: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| node: [lts/*] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@master | |
| - name: Check starknet-foundry version sync | |
| run: | | |
| TOOL_VER=$(grep 'starknet-foundry' .tool-versions | awk '{print $2}' | tr -d '\r') | |
| if [ ! -f "packages/snfoundry/contracts/Scarb.lock" ]; then | |
| echo "Error: Scarb.lock not found. Cannot determine resolved snforge_std version." | |
| exit 1 | |
| fi | |
| SCARB_VER=$(awk '/name = "snforge_std"/{f=1} f && /^version = /{gsub(/"/,"",$3); print $3; exit}' packages/snfoundry/contracts/Scarb.lock | tr -d '\r') | |
| if [ -z "$SCARB_VER" ]; then | |
| echo "Error: snforge_std not found in Scarb.lock. Cannot determine resolved version." | |
| exit 1 | |
| fi | |
| echo "starknet-foundry in .tool-versions: $TOOL_VER" | |
| echo "snforge_std in Scarb.lock: $SCARB_VER" | |
| if [ "$TOOL_VER" != "$SCARB_VER" ]; then | |
| echo "Error: Version mismatch! .tool-versions has starknet-foundry $TOOL_VER but Scarb.lock resolved snforge_std $SCARB_VER" | |
| exit 1 | |
| fi | |
| - name: Setup node env | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: "yarn" | |
| - name: Install dependencies (Next.js) | |
| run: yarn install --immutable | |
| working-directory: ./packages/nextjs | |
| - name: Install scarb | |
| uses: software-mansion/setup-scarb@v1 | |
| with: | |
| tool-versions: ./.tool-versions | |
| scarb-lock: ./packages/snfoundry/contracts/Scarb.lock | |
| - name: Install snfoundryup | |
| uses: foundry-rs/setup-snfoundry@v3 | |
| with: | |
| tool-versions: ./.tool-versions | |
| - name: Build Contracts | |
| run: yarn compile | |
| - name: Run smart contract tests | |
| run: | | |
| set -o pipefail | |
| yarn test 2>&1 | tee test_output.log | |
| TEST_EXIT=${PIPESTATUS[0]} | |
| if grep -i "snforge_std" test_output.log | grep -iq "version requirement"; then | |
| echo "Error: snforge_std version mismatch warning detected by snforge!" | |
| exit 1 | |
| fi | |
| exit $TEST_EXIT | |
| - name: Check Code Format | |
| run: yarn format:check | |
| - name: Run Next.js lint | |
| run: yarn next:lint --max-warnings=0 | |
| working-directory: ./packages/nextjs | |
| - name: Check typings on Next.js | |
| run: yarn next:check-types | |
| working-directory: ./packages/nextjs | |
| - name: Run Next.js tests | |
| run: yarn test | |
| working-directory: ./packages/nextjs | |
| - name: Build Next.js project | |
| run: yarn build | |
| working-directory: ./packages/nextjs |