GithubHelp home page GithubHelp logo

paulinholeo / circleci-cli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from circleci-public/circleci-cli

0.0 1.0 0.0 19.51 MB

Use CircleCI from the command line

Home Page: https://circleci-public.github.io/circleci-cli/

License: MIT License

Makefile 0.24% Go 97.88% Dockerfile 0.03% Shell 1.85%

circleci-cli's Introduction

circleci-cli

This project is the seed for CircleCI's new command-line application.

Documentation | Code of Conduct | Contribution Guidelines | Hacking

CircleCI GitHub release GoDoc Codecov License

Getting Started

From Scratch

Install script

If you're installing the new circleci CLI for the first time, run the following command:

curl -fLSs https://circle.ci/cli | bash

By default, the circleci app will be installed to the /usr/local/bin directory. If you do not have write permissions to /usr/local/bin, you may need to run the above command with sudo:

curl -fLSs https://circle.ci/cli | sudo bash

Alternatively, you can install to an alternate location by defining the DESTDIR environment variable when invoking bash:

curl -fLSs https://circle.ci/cli | DESTDIR=/opt/bin bash

You can also set a specific version of the CLI to install with the VERSION environment variable:

curl -fLSs https://circle.ci/cli | VERSION=0.1.5222 sudo bash

Homebrew

brew install circleci

Snapcraft

sudo snap install circleci

Upgrade from existing CLI

If you installed the old CLI before, and you're on version less than 0.1.6, you need to run the following commands:

circleci update
circleci switch

This command may require sudo if your user doesn't have write permissions to the install directory, /usr/local/bin. Otherwise, you may see the following error:

mv: cannot move 'circleci' to '/usr/local/bin/circleci': Permission denied

Updating after install

The CLI comes with a built in version managment system. You can check if there any updates pending and update if so using the following commands:

circleci update check
circleci update install

Configure the CLI

After installing the latest version of our CLI, you must run setup to configure the tool.

$ circleci setup

You should be prompted to enter the CircleCI API Token you generated from the Personal API Token tab

✔ CircleCI API Token:

API token has been set.

✔ CircleCI Host: https://circleci.com

CircleCI host has been set.

Setup complete. Your configuration has been saved.

If you are using this tool on circleci.com. accept the provided default CircleCI Host.

Server users will have to change the default value to your custom address (i.e. circleci.my-org.com).

Note: Server does not yet support config processing and orbs, you will only be able to use circleci local execute (previously circleci build) for now.

Validate A Build Config

To ensure that the tool is installed, you can use it to validate a build config file.

$ circleci config validate

Config file at .circleci/config.yml is valid

Docker

The CLI may also be used without installation by using Docker.

docker run --rm -v $(pwd):/data circleci/circleci-cli:alpine config validate /data/.circleci/config.yml --token $TOKEN

circleci-agent

In order to maintain backwards compatibility with the circleci binary present in builds, some commands are proxied to a program called circleci-agent.

This program must exist in your $PATH as is the case inside of a job.

The following commands are affected:

  • circleci tests split
  • circleci step halt
  • circleci config migrate

Platforms, Deployment and Package Managers

The tool is deployed through a number of channels. The primary release channel is through GitHub Releases. Green builds on the master branch will publish a new GitHub release. These releases contain binaries for macOS, Linux and Windows. These releases are published from (CircleCI)[https://app.circleci.com/pipelines/github/CircleCI-Public/circleci-cli] using (GoReleaser)[https://goreleaser.com/].

Homebrew

We publish the tool to Homebrew. The tool is part of homebrew-core, and therefore the maintainers of the tool are obligated to follow the guidelines for acceptable Homebrew formulae. You should familairise yourself with the guidelines before making changes to the Homebrew deployment system.

The particular considerations that we make are:

  1. Since Homebrew doesn't "like tools that upgrade themselves", we disable the circleci update command when the tool is released through homebrew. We do this by defining the PackageManager constant to homebrew, which allows us to disable the update command at runtime.
  2. We want to avoid every push to master from creating a Pull Request to the circleci formula on Homebrew. We want to avoid overloading the Homebrew team with pull requests to update our formula for small changes (changes to docs or other files that don't change functionality in the tool).

Snapcraft

We publish Linux builds of the tool to the Snapcraft package manager.

Contributing

Development instructions for the CircleCI CLI can be found in HACKING.md.

More

Please see the documentation or circleci help for more.

circleci-cli's People

Contributors

alexfornuto avatar antzshrek avatar bradylill avatar cans avatar circlecai avatar dcarley avatar dnephin avatar eddiewebb avatar eric-hu avatar felicianotech avatar freedomben avatar greenled avatar h-matsuo avatar hannahhenderson avatar iynere avatar johnswanson avatar lokst avatar marcomorain avatar matfax avatar mjcbsn22 avatar ndintenfass avatar nmiyake avatar royvandewater avatar samchapler avatar yangkookkim avatar yundt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.