name: OpenPassport CI/CD on: push: branches: - main paths: - "circuits/circuits/**" - ".github/workflows/artifacts.yml" pull_request: branches: - main paths: - "circuits/circuits/**" - ".github/workflows/artifacts.yml" workflow_dispatch: jobs: build: runs-on: ['self-hosted', 'selfxyz-org', 'ubuntu-22-04', '128ram'] steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Install cpp dependencies run: | sudo apt-get update sudo apt-get install --yes \ build-essential \ libgmp-dev \ libsodium-dev \ nasm \ nlohmann-json3-dev \ wget # TODO(): Use caching - uses: actions/setup-node@v4 with: node-version: 20 - name: Install dependencies run: | corepack enable yarn set version 4.6.0 cd circuits && yarn - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Download Circom Binary v2.1.9 run: | mkdir -p /home/runner/work 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: Build cpp circuits run: | chmod +x circuits/scripts/build/build_cpp.sh && \ ./circuits/scripts/build/build_cpp.sh register && ./circuits/scripts/build/build_cpp.sh register_id && ./circuits/scripts/build/build_cpp.sh disclose && ./circuits/scripts/build/build_cpp.sh dsc - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: circuits path: output/