name: Engine image on: workflow_dispatch: push: branches: [main] paths: - 'src/**' - 'benchmarks/learn/engine_trace*.py' - 'benchmarks/learn/engine_task_entry.py' - 'benchmarks/unseen/replay_entry.py' - 'benchmarks/learn/engine_worker_service.py' - 'Dockerfile' - 'plane/Dockerfile.engine-task' - 'plane/Dockerfile.search-task' - 'ops/frontend-retention/install.py' - 'pyproject.toml' - '.github/workflows/engine-image.yml' permissions: contents: read packages: write concurrency: group: engine-image-${{ github.ref }} cancel-in-progress: false jobs: image: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - package: openultrasast dockerfile: Dockerfile - package: ousast-engine-task dockerfile: plane/Dockerfile.engine-task target: engine - package: ousast-replay-task dockerfile: plane/Dockerfile.engine-task target: replay - package: ousast-search-task dockerfile: plane/Dockerfile.search-task steps: - uses: actions/checkout@v5 - uses: docker/setup-buildx-action@v3 - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - id: names env: OWNER: ${{ github.repository_owner }} PACKAGE: ${{ matrix.package }} run: | echo "image=ghcr.io/${OWNER,,}/$PACKAGE" >> "$GITHUB_OUTPUT" echo "sha=sha-${GITHUB_SHA:0:7}" >> "$GITHUB_OUTPUT" - id: build uses: docker/build-push-action@v6 with: context: . file: ${{ matrix.dockerfile }} target: ${{ matrix.target }} platforms: linux/amd64 push: true tags: | ${{ steps.names.outputs.image }}:${{ steps.names.outputs.sha }} ${{ steps.names.outputs.image }}:main - env: IMAGE: ${{ steps.names.outputs.image }} DIGEST: ${{ steps.build.outputs.digest }} run: | echo "$IMAGE@$DIGEST" echo "$IMAGE@$DIGEST" >> "$GITHUB_STEP_SUMMARY"