All Projects → yourbase → Yb

yourbase / Yb

Licence: apache-2.0
A new build tool optimized for local + remote development

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Yb

Captain
Captain - Convert your Git workflow to Docker 🐳 containers
Stars: ✭ 739 (+2448.28%)
Mutual labels:  build-tool, cli, ci
Mbt
The most flexible build tool for monorepo
Stars: ✭ 184 (+534.48%)
Mutual labels:  build-tool, cli, ci
Travis Watch
Stream live travis test results of the current commit to your terminal!
Stars: ✭ 294 (+913.79%)
Mutual labels:  cli, ci
Reviewdog
🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
Stars: ✭ 4,541 (+15558.62%)
Mutual labels:  cli, ci
Pundle
👾 peaceful bundles - js bundler, built from the ground up for speed and extensibility
Stars: ✭ 354 (+1120.69%)
Mutual labels:  build-tool, cli
Create Elm App
🍃 Create Elm apps with zero configuration
Stars: ✭ 1,650 (+5589.66%)
Mutual labels:  build-tool, cli
Foy
A simple, light-weight and modern task runner for general purpose.
Stars: ✭ 157 (+441.38%)
Mutual labels:  build-tool, cli
Ui5 Tooling
An open and modular toolchain to develop state of the art applications based on the UI5 framework
Stars: ✭ 339 (+1068.97%)
Mutual labels:  build-tool, cli
Cypress Terminal Report
Better terminal and file output for cypress test logs.
Stars: ✭ 200 (+589.66%)
Mutual labels:  cli, ci
Mask
🎭 A CLI task runner defined by a simple markdown file
Stars: ✭ 495 (+1606.9%)
Mutual labels:  build-tool, cli
Cbt
CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Stars: ✭ 489 (+1586.21%)
Mutual labels:  build-tool, cli
Gg Shield
Detect secret in source code, scan your repo for leaks. Find secrets with GitGuardian and prevent leaked credentials. GitGuardian is an automated secrets detection & remediation service.
Stars: ✭ 708 (+2341.38%)
Mutual labels:  cli, ci
Buildpipeline
AWS-powered serverless build, test and deploy pipeline ft. multiple environments
Stars: ✭ 105 (+262.07%)
Mutual labels:  build-tool, ci
Docker Builder
Docker builder builds Docker images from a friendly config file.
Stars: ✭ 81 (+179.31%)
Mutual labels:  build-tool, ci
Handroll
🍣 Expertly rolled JavaScript. CLI + library for bundling JavaScript with Rollup.js
Stars: ✭ 66 (+127.59%)
Mutual labels:  build-tool, cli
Horusec
Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Stars: ✭ 311 (+972.41%)
Mutual labels:  cli, ci
Npmvet
A simple CLI tool for vetting npm package versions
Stars: ✭ 193 (+565.52%)
Mutual labels:  cli, ci
Lighthouse Ci
A useful wrapper around Google Lighthouse CLI
Stars: ✭ 198 (+582.76%)
Mutual labels:  cli, ci
Xcodegen
A Swift command line tool for generating your Xcode project
Stars: ✭ 5,032 (+17251.72%)
Mutual labels:  cli, ci
Toast
Containerize your development and continuous integration environments. 🥂
Stars: ✭ 748 (+2479.31%)
Mutual labels:  build-tool, ci

YourBase

YourBase Community Slack

yb build all-the-things!

YourBase is a build tool that makes working on projects much more delightful. Stop worrying about dependencies, keep your CI build process in-sync with your local development process and onboard new team members with ease.

The primary features of the YB tooling are:

  • Consistent local and CI tooling How a project is built as part of the CI/CD process should not be any different than how it is built on a developer's machine. Keeping tooling in-sync means predictable results and a better developer experience for everyone. (Although local builds are not fully isolated yet)

  • Accelerated on-boarding Many projects have long sets of instructions that are required for a developer to get started. With YB, the experience is as simple as getting source code and running yb build - batteries included!

  • Programmatic dependency management No need to have developers manually install and manage different versions of Go, Node, Java, etc. By describing these tools in codified build-packs, these can be installed and configured automatically on a per-project basis. Manage containers and other runtime dependencies programmatically and in a consistent manner.

  • Remote builds Run your work and tests in the cloud just like you would locally or as part of CI! Stream the results back to your machine in real-time to offload the work.

magic!

Installation

yb uses Docker for isolating the build environment. You can install Docker here: https://hub.docker.com/search/?type=edition&offering=community

If you're using WSL on Windows, you will need to use Docker in WSL2.

macOS

You can install yb using Homebrew:

brew install yourbase/yourbase/yb

or you can download a binary from the latest GitHub release and place it in your PATH.

Linux (and WSL2)

On Debian-based distributions (including Ubuntu), you can use our APT repository:

# Import the signing key
sudo curl -fsSLo /etc/apt/trusted.gpg.d/yourbase.asc https://apt.yourbase.io/signing-key.asc

# Add the YourBase APT repository to the list of sources
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/yourbase.asc] https://apt.yourbase.io stable main" | sudo tee /etc/apt/sources.list.d/yourbase.list

# Update the package list and install yb
sudo apt-get update && sudo apt-get install yb

For Red Hat, Fedora, or CentOS, you can install the RPM from the latest GitHub release. For other distributions, copy the Linux binary from the release into your PATH.

Getting Started

To use yb, you need a .yourbase.yml file at the top of your project directory. You can run yb init to generate one:

cd path/to/my/project
yb init

The YourBase configuration was designed from the ground up to be a fast, composable and easy to use method to declare build targets. Targets defined in the configuration are built in an isolated and uniform container, so local builds are similar to remote builds.

The YourBase YAML replaces both legacy CI configs and container build configuration formats like Dockerfile. It uses containers underneath and you can still run things on the side like MySQL, Postgres, Redis or any service from a container image.

For more examples and a complete reference to the YAML configuration syntax, see https://docs.yourbase.io/configuration/yourbase_yaml.html

Run your first local build

If you created a default target, you can build it with:

yb build

If you've changed your target's name or added a new one, for example foo, run:

yb build foo

Run your first remote build

To use remote builds, first you have to sign-in to YourBase.io. Run this to get a sign-in URL:

yb login

Then try to run a remote build. To build the default target, just do:

yb remotebuild

or if you have a different target in your config:

yb remotebuild <target>

You can watch the build/test stream both locally and in the build dashboard at https://app.yourbase.io

Triggering Builds from GitHub pushes

You can also build code after every push to a GitHub repository. Install the GitHub application, then push a change to your repository. After you do, you should see a new build in the YourBase dashboard.

By default, the YourBase Accelerated CI runs all build targets whenever there is a GitHub push event. You can change it to only build after certain events or targets by specifying conditions for build service builds:

ci:
  builds:
    - name: tests
      build_target: default
      when: branch is 'master' OR action is 'pull_request'

Inspecting the Build Environment

If you want to run tools inside your local build environment, you can use yb run. This will use the exact same version of the tools as what you specified in your .yourbase.yml file.

yb run python myscript.py

You can even pull up a shell and run commands interactively:

yb run bash

yb run will use the target named default if you do not specify a target. If you want to use a different target:

yb run --target=foo bash

Documentation

More documentation available at http://docs.yourbase.io

Contributing

We welcome contributions to this project! Please see the contributor's guide for more information.

License

This project is licensed under an Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].