name: Self Circuits CI/CD
on:
  push:
    branches:
      - dev
      - main
      - openpassportv2
    paths:
      - 'circuits/**'
      - 'common/**'
  pull_request:
    branches:
      - dev
      - main
      - openpassportv2
    paths:
      - 'circuits/**'
      - 'common/**'
jobs:
  run_circuit_tests:
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-latest
    environment: development
    steps:
      - uses: actions/checkout@v4

      # Circom installation from https://github.com/erhant/circomkit/blob/main/.github/workflows/tests.yml
      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install --yes \
            build-essential \
            libgmp-dev \
            libsodium-dev \
            nasm \
            nlohmann-json3-dev

      - name: Set Node.js 18.x
        uses: actions/setup-node@v4
        with:
          node-version: 18
      - name: Setup Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Download Circom Binary v2.1.9
        run: |
          wget -qO /home/runner/work/circom https://github.com/iden3/circom/releases/download/v2.1.9/circom-linux-amd64
          chmod +x /home/runner/work/circom
          sudo mv /home/runner/work/circom /bin/circom

      - name: Print Circom version
        run: circom --version
      - name: "enable yarn"
        run: corepack enable yarn
      - name: Install Yarn dependencies
        run: yarn workspaces focus @selfxyz/circuits

      - name: Run lint
        run: yarn workspace @selfxyz/circuits lint
      - name: Run Tests (Circuits)
        env:
          FULL_TEST_SUITE: false
        run: yarn workspace @selfxyz/circuits test
