Surf is a minimalist, multi-platform, language-agnostic build server designed specifically for GitHub. It aims to simplify continuous integration by integrating directly with Git and GitHub workflows, supporting builds even without webhooks or complex firewall configurations (requiring only outgoing HTTP requests). The package, `surf-build` (version 2.0.0), provides both the `surf-run` server component and the `surf-build` command-line tool. It differentiates itself from more feature-rich CI solutions like Jenkins by offering a simple, opinionated approach. It automatically detects and builds projects using common tools (Node.js, Rust, .NET, Autotools, CMake, Xcode) or executes custom scripts (`build.sh`, `script/ci`). It lacks a dedicated UI, a plugin ecosystem, and does not support version control systems other than Git/GitHub.
npm install surf-buildVerified import paths — ran on the pinned version, not inferred.
Demonstrates the global installation of `surf-build` and the command-line usage of `surf-run` (the build server) and `surf-build` (the one-off builder), including setting the necessary GitHub access token.
Migrate to a currently maintained CI/CD platform such as GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, or Travis CI. Evaluate alternatives based on your project's specific needs for features, support, and community.
Ensure your project is hosted on GitHub. If not, consider migrating to a different CI solution that supports your chosen VCS/hosting platform.
Developers must rely on terminal output and potentially external logging tools for build monitoring. If a UI is critical, consider alternatives like Jenkins or CircleCI.
For projects requiring extensive customization, integrations with various tools, or a rich ecosystem of plugins, a more robust and extensible CI system is recommended.
Before running `surf-run`, ensure the `GITHUB_TOKEN` environment variable is correctly set with a valid GitHub Personal Access Token (PAT) that has appropriate repository permissions.
Run `npm install -g surf-build` to install the package globally. Verify your PATH includes the npm global executable directory.
Set the `GITHUB_TOKEN` environment variable before running `surf-run`. Example: `export GITHUB_TOKEN='YOUR_TOKEN_HERE'` (Linux/macOS) or `set GITHUB_TOKEN=YOUR_TOKEN_HERE` (Windows CMD).
Review the preceding terminal output for error messages from your build script or the underlying build tools (e.g., `npm`, `cargo`, `msbuild`). Debug your project's build process locally.
Ensure your repository has a `package.json` in its root if you expect a Node.js build. Verify the `--repo` and `--sha` parameters are correct for `surf-build`.
No dependency data recorded yet.