name: Test Near Contract

on:
  pull_request:
    paths:
      - target_chains/near/**
      - wormhole_attester/sdk/rust/**
      - .github/workflows/ci-near-contract.yml
  push:
    branches:
      - main

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: Workspace test
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: target_chains/near/receiver
    steps:
      - uses: actions/checkout@v2
      - uses: Swatinem/rust-cache@v2
        with:
          workspaces: "target_chains/near/receiver -> target"
      - name: Test
        run: ./workspace-test.sh
  reproducible-build:
    name: Reproducible build
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: target_chains/near/receiver
    steps:
      - uses: actions/checkout@v2
      - uses: Swatinem/rust-cache@v2
        with:
          workspaces: "target_chains/near/receiver -> target"
      - run: sudo apt-get update && sudo apt-get install -y libudev-dev
      - run: cargo +stable install --locked cargo-near@0.13.3
      - run: cargo near build reproducible-wasm
      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: pyth_near.wasm
          path: target_chains/near/receiver/target/near/pyth_near.wasm
          retention-days: 90
