# How to Check shadPS4 Build Status: GitHub Actions CI Monitoring Guide

> Learn how to check shadPS4 build status directly from GitHub Actions, README badges, or via the API and CLI. Monitor your shadPS4-emu project efficiently.

- Repository: [shadps4-emu/shadPS4](https://github.com/shadps4-emu/shadPS4)
- Tags: how-to-guide
- Published: 2026-03-19

---

**You can check the shadps4-emu build status via the GitHub Actions tab, the README badge, or programmatically using the GitHub API and CLI.**

The shadps4-emu/shadPS4 project uses GitHub Actions to automate compilation across Windows, macOS, and Linux. Monitoring the shadps4-emu build status is essential for developers who need to verify commits compile successfully and for users who want to download the latest pre-release artifacts.

## Where to Check shadps4-emu Build Status

### GitHub Actions Dashboard

The primary location to view the shadps4-emu build status is the **Actions** tab of the repository. The workflow defined in [`.github/workflows/build.yml`](https://github.com/shadps4-emu/shadPS4/blob/main/.github/workflows/build.yml) triggers on every push to `main` and every pull request.

When viewing a specific workflow run, you will see individual jobs for:
- **reuse** – License compliance checking
- **clang-format** – Code style verification
- **get-info** – Metadata collection for artifact naming
- **windows-sdl**, **macos-sdl**, **linux-sdl**, **linux-sdl-gcc** – Platform-specific compilation
- **pre-release** – Artifact packaging and GitHub release creation (main branch only)

Each job displays a status icon: green checkmark for success, red X for failure, or yellow circle for in-progress.

### README Status Badge

The repository README displays a live build status badge that reflects the latest workflow run on the main branch. This badge is generated using the following markdown:

```markdown
[![Build Status](https://github.com/shadps4-emu/shadPS4/actions/workflows/build.yml/badge.svg)](https://github.com/shadps4-emu/shadPS4/actions/workflows/build.yml)

```

You can embed this badge in your own documentation to display the current shadps4-emu build status externally.

## Understanding the CI Pipeline Architecture

The workflow file [`.github/workflows/build.yml`](https://github.com/shadps4-emu/shadPS4/blob/main/.github/workflows/build.yml) implements several optimizations to ensure reliable and efficient builds.

### Concurrency Control

The workflow uses a concurrency group defined as `ci-${{ github.event_name }}-${{ github.ref }}`. This ensures that for any given branch or pull request, only the latest workflow run executes while older, pending runs are automatically cancelled. This prevents redundant CI minutes and resource contention.

### Caching Strategy

The pipeline leverages `actions/cache@v5` and `hendrikmuhs/ccache-action@v1.2.21` to cache CMake configuration and compiled objects across runs. This dramatically reduces build times for incremental changes.

### Toolchain Configuration

Each platform job specifies explicit compiler settings:
- **Windows**: Uses `clang-cl` with `ccache`
- **macOS**: Uses `sccache` and forces `x86_64` architecture
- **Linux**: Builds with either `clang-19` (default) or `gcc-14` (gcc variant)

## Programmatically Checking Build Status

For automation scripts or external monitoring, you can query the shadps4-emu build status programmatically.

### Using the GitHub CLI

Check the conclusion of the latest build workflow run:

```bash
gh run list --workflow=build.yml --limit 1 --json conclusion -q '.[0].conclusion'

```

This returns `success`, `failure`, or `cancelled`.

### Using the REST API

Query the latest workflow run status using curl and jq:

```bash
curl -s \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/shadps4-emu/shadPS4/actions/workflows/build.yml/runs?per_page=1 \
| jq '.workflow_runs[0].conclusion'

```

To fetch a summary including status and timestamps:

```bash
curl -s \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/shadps4-emu/shadPS4/actions/runs?per_page=1 \
| jq '.workflow_runs[0] | {id, status, conclusion, created_at}'

```

### Downloading Artifacts

To download the latest successful Linux artifact programmatically:

```bash

# Get the run ID of the most recent successful linux-sdl job

RUN_ID=$(gh run list --workflow=build.yml --status=success --branch=main \
          --json databaseId,name -q '.[] | select(.name=="linux-sdl") | .databaseId' | head -n1)

# Download the artifact

gh run download $RUN_ID --name "shadps4-ubuntu64-$(date +%Y-%m-%d)-*"

```

## Summary

- The shadps4-emu build status is visible in the **GitHub Actions** tab, where the workflow defined in [`.github/workflows/build.yml`](https://github.com/shadps4-emu/shadPS4/blob/main/.github/workflows/build.yml) runs jobs for Windows, macOS, and Linux compilation.
- A **live status badge** in the README provides at-a-glance build health for the main branch.
- The CI pipeline uses **concurrency groups** to cancel stale runs and **caching** (ccache/sccache) to accelerate builds across `clang-cl`, `clang-19`, and `gcc-14` toolchains.
- You can **programmatically check status** using the GitHub CLI (`gh run list`), the REST API, or by querying workflow run conclusions via curl and jq.

## Frequently Asked Questions

### How do I check if the latest shadPS4 commit built successfully?

Navigate to the **Actions** tab in the shadps4-emu/shadPS4 repository and look at the most recent workflow run for the `main` branch. If the conclusion shows a green checkmark, the commit compiled successfully on all platforms. You can also check the README badge, which displays the latest main branch status.

### What does the yellow dot next to a commit mean?

A yellow dot or circle indicates that the GitHub Actions workflow is currently **in progress**. The commit is being compiled and tested across the Windows, macOS, and Linux jobs defined in [`.github/workflows/build.yml`](https://github.com/shadps4-emu/shadPS4/blob/main/.github/workflows/build.yml). Once the jobs complete, the indicator will change to a green checkmark for success or a red X for failure.

### Can I download shadPS4 binaries without compiling?

Yes. The CI pipeline automatically uploads compiled binaries as **artifacts** for every successful workflow run. You can download these from the **Artifacts** section of any completed run in the Actions tab. Additionally, the `pre-release` job publishes automated pre-releases to the repository's releases page, containing packaged binaries for Windows, Linux, and macOS.

### Why did the build fail on my pull request?

Pull request builds typically fail due to **clang-format** violations or compilation errors. The workflow runs a `clang-format` job that executes [`./.ci/clang-format.sh`](https://github.com/shadps4-emu/shadPS4/blob/main/./.ci/clang-format.sh) to verify code style against the project's standards. If your code formatting is incorrect, this job will fail. Additionally, any compilation errors in the `windows-sdl`, `macos-sdl`, or `linux-sdl` jobs will result in a failed status. Check the job logs in the Actions tab for specific error details.