ci: add CI pipeline for FFI code

This commit is contained in:
2025-11-12 23:10:04 +01:00
parent 5227384e0c
commit 29e7e59ffb
2 changed files with 84 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
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: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull OCCT builder image
run: |
docker pull ghcr.io/${{ github.repository }}/occt-builder:latest || echo "OCCT image not found, will build from source"
- 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
+17
View File
@@ -30,8 +30,25 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Make script executable
run: chmod +x ./ci/scripts/occt.sh
- name: Build OCCT and run tests
run: ./ci/scripts/occt.sh --unit-testing
- name: Tag and push OCCT image
if: github.event_name != 'pull_request'
run: |
docker tag occt-builder:latest ghcr.io/${{ github.repository }}/occt-builder:latest
docker push ghcr.io/${{ github.repository }}/occt-builder:latest