name: FFI CI on: workflow_run: workflows: ["OCCT CI"] types: - completed push: branches: [master, dev-occt**, dev-ffi**] paths: - "src/ffi/**" - "test/ffi/**" - "ci/scripts/ffi.sh" - "ci/ffi.Dockerfile" - "Cargo.toml" - "Cargo.lock" - "build.rs" pull_request: branches: [master, dev-occt, dev-ffi] paths: - "src/ffi/**" - "test/ffi/**" - "ci/scripts/ffi.sh" - "Cargo.toml" - "Cargo.lock" - "build.rs" jobs: build-ffi: name: Build FFI runs-on: ubuntu-24.04 if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name != 'workflow_run' }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Download OCCT build artifacts uses: actions/download-artifact@v4 with: name: occt-build-artifacts path: build/ - name: Make script executable run: chmod +x ./ci/scripts/ffi.sh - name: Build FFI and run tests run: ./ci/scripts/ffi.sh --tests - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: ffi-test-results path: | target/debug/ **/test-results/ retention-days: 7