name: PR CI on: pull_request: branches: - main types: - opened - synchronize - reopened - ready_for_review permissions: contents: read concurrency: group: pr-ci-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: unit-tests: name: Unit Tests runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Run tests run: python3 -m unittest discover -s tests -p 'test_*.py' docker-build: name: Docker Build runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build image uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile platforms: linux/amd64 push: false tags: openclaw-hf:pr-${{ github.sha }} build-args: | OPENCLAW_VERSION=latest cache-from: type=gha cache-to: type=gha,mode=max